Merge pull request #1560 from groyoh/update_rubocop

Update rubocop
This commit is contained in:
L. Preston Sego III 2016-03-08 17:24:39 -05:00
commit f8d2aabf38
27 changed files with 94 additions and 150 deletions

View File

@ -4,15 +4,20 @@ AllCops:
Exclude:
- config/initializers/forbidden_yaml.rb
- !ruby/regexp /(vendor|bundle|bin|db|tmp)\/.*/
RunRailsCops: true
DisplayCopNames: true
DisplayStyleGuide: true
Rails:
Enabled: true
Lint/NestedMethodDefinition:
Enabled: false
Exclude:
- test/action_controller/serialization_test.rb
Style/Alias:
EnforcedStyle: prefer_alias
Style/StringLiterals:
EnforcedStyle: single_quotes
@ -59,6 +64,18 @@ Style/BlockDelimiters:
Enabled: true
EnforcedStyle: line_count_based
Style/SignalException:
EnforcedStyle: semantic
Style/TrailingCommaInLiteral:
EnforcedStyleForMultiline: no_comma
Style/ConditionalAssignment:
Enabled: false
Style/DotPosition:
EnforcedStyle: leading
########## test_helper.rb sanity
Style/EndBlock:
Exclude:

View File

@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2015-09-20 17:56:22 -0500 using RuboCop version 0.34.0.
# on 2016-03-08 22:29:52 +0100 using RuboCop version 0.37.2.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@ -13,49 +13,31 @@ Lint/HandleExceptions:
# Offense count: 2
# Cop supports --auto-correct.
Lint/UnusedBlockArgument:
Exclude:
- 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb'
# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
Lint/UnusedMethodArgument:
Exclude:
- 'lib/active_model/serializer/adapter/null.rb'
- 'lib/active_model/serializer/pass_through_serializer.rb'
- 'test/fixtures/poro.rb'
- 'test/lint_test.rb'
# Offense count: 2
Lint/UselessAssignment:
Exclude:
- 'bench/perf.rb'
- 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb'
# Offense count: 1
# Configuration parameters: EnforcedStyle, SupportedStyles.
Rails/Date:
Exclude:
- 'test/fixtures/poro.rb'
# Offense count: 4
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: strict, flexible
Rails/TimeZone:
Exclude:
- 'test/action_controller/serialization_test.rb'
- 'test/fixtures/poro.rb'
- 'test/serializers/cache_test.rb'
# Offense count: 16
# Cop supports --auto-correct.
# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
Style/AlignHash:
Exclude:
- 'test/action_controller/json_api/pagination_test.rb'
# Offense count: 25
# Offense count: 27
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: braces, no_braces, context_dependent
Style/BracesAroundHashParameters:
Exclude:
- 'test/action_controller/adapter_selector_test.rb'
@ -67,17 +49,16 @@ Style/BracesAroundHashParameters:
- 'test/collection_serializer_test.rb'
- 'test/serializable_resource_test.rb'
- 'test/serializers/associations_test.rb'
- 'test/serializers/attribute_test.rb'
- 'test/serializers/attributes_test.rb'
- 'test/serializers/fieldset_test.rb'
- 'test/serializers/root_test.rb'
# Offense count: 174
# Offense count: 271
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: nested, compact
Style/ClassAndModuleChildren:
Enabled: false
# Offense count: 5
# Offense count: 6
# Cop supports --auto-correct.
Style/CommentIndentation:
Exclude:
@ -89,34 +70,29 @@ Style/DoubleNegation:
- 'lib/active_model/serializable_resource.rb'
# Offense count: 1
Style/EachWithObject:
Exclude:
- 'lib/active_model/serializer/fieldset.rb'
# Offense count: 2
# Configuration parameters: MinBodyLength.
Style/GuardClause:
Exclude:
- 'lib/active_model/serializer.rb'
# Offense count: 12
# Offense count: 58
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
# SupportedStyles: ruby19, ruby19_no_mixed_keys, hash_rockets
Style/HashSyntax:
Enabled: false
# Offense count: 9
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
# SupportedStyles: special_inside_parentheses, consistent, align_brackets
Style/IndentArray:
Exclude:
- 'test/adapter/json/has_many_test.rb'
- 'test/adapter/json_api/json_api_test.rb'
- 'test/adapter/json_api/pagination_links_test.rb'
- 'test/adapter/json_test.rb'
Enabled: false
# Offense count: 8
# Offense count: 10
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
# SupportedStyles: special_inside_parentheses, consistent, align_braces
Style/IndentHash:
Enabled: false
@ -129,12 +105,14 @@ Style/Lambda:
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline
Style/MethodDefParentheses:
Enabled: false
# Offense count: 3
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
# SupportedStyles: aligned, indented
Style/MultilineOperationIndentation:
Enabled: false
@ -146,45 +124,26 @@ Style/NegatedIf:
# Offense count: 1
# Cop supports --auto-correct.
Style/NumericLiterals:
MinDigits: 7
# Offense count: 2
# Cop supports --auto-correct.
Style/PerlBackrefs:
Exclude:
- 'test/fixtures/poro.rb'
- 'test/serializers/associations_test.rb'
# Offense count: 3
# Configuration parameters: NamePrefix, NamePrefixBlacklist.
# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
# NamePrefix: is_, has_, have_
# NamePrefixBlacklist: is_, has_, have_
# NameWhitelist: is_a?
Style/PredicateName:
Exclude:
- 'lib/active_model/serializer/associations.rb'
- 'test/action_controller/json_api/linked_test.rb'
# Offense count: 5
# Offense count: 1
# Cop supports --auto-correct.
Style/RedundantSelf:
Exclude:
- 'lib/active_model/serializer/associations.rb'
- 'test/fixtures/poro.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: AllowAsExpressionSeparator.
Style/Semicolon:
Exclude:
- 'lib/active_model/serializer/fieldset.rb'
# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
Style/SignalException:
Exclude:
- 'lib/active_model/serializer/fieldset.rb'
- 'lib/active_model/serializer/pass_through_serializer.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: AllowIfMethodIsEmpty.
@ -192,48 +151,17 @@ Style/SingleLineMethods:
Exclude:
- 'test/serializers/serializer_for_test.rb'
# Offense count: 2
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: single_quotes, double_quotes
Style/StringLiteralsInInterpolation:
Enabled: false
# Offense count: 1
Style/StructInheritance:
Exclude:
- 'bench/perf.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: IgnoredMethods.
Style/SymbolProc:
Exclude:
- 'lib/generators/serializer/serializer_generator.rb'
# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: final_newline, final_blank_line
Style/TrailingBlankLines:
Exclude:
- 'lib/active_model/serializer/pass_through_serializer.rb'
- 'lib/generators/serializer/serializer_generator.rb'
- 'test/adapter/fragment_cache_test.rb'
- 'test/adapter/json_api/json_api_test.rb'
- 'test/adapter/null_test.rb'
- 'test/serializers/cache_test.rb'
- 'test/serializers/fieldset_test.rb'
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
Style/TrailingComma:
Exclude:
- 'test/action_controller/adapter_selector_test.rb'
- 'test/action_controller/serialization_test.rb'
- 'test/adapter/json_api/belongs_to_test.rb'
- 'test/adapter/json_api/linked_test.rb'
# Offense count: 1
Style/UnlessElse:
Exclude:
- 'lib/active_model/serializer.rb'

View File

@ -31,6 +31,7 @@ Fixes:
- [#1488](https://github.com/rails-api/active_model_serializers/pull/1488) Require ActiveSupport's string inflections (@nate00)
Misc:
- [#1560](https://github.com/rails-api/active_model_serializers/pull/1560) Update rubocop and address its warnings. (@bf4 @groyoh)
- [#1545](https://github.com/rails-api/active_model_serializers/pull/1545) Document how to pass arbitrary options to the
serializer (@CodedBeardedSignedTaylor)
- [#1496](https://github.com/rails-api/active_model_serializers/pull/1496) Run all branches against JRuby on CI (@nadavshatz)

View File

@ -44,5 +44,5 @@ group :test do
end
group :development, :test do
gem 'rubocop', '~> 0.34.0', require: false
gem 'rubocop', '~> 0.36', require: false
end

View File

@ -33,7 +33,7 @@ module ActiveModel
def adapter
@adapter ||= ActiveModelSerializers::Adapter.create(serializer_instance, adapter_opts)
end
alias_method :adapter_instance, :adapter
alias adapter_instance adapter
def serializer_instance
@serializer_instance ||= serializer.new(resource, serializer_opts)
@ -54,7 +54,7 @@ module ActiveModel
@serializer
end
end
alias_method :serializer_class, :serializer
alias serializer_class serializer
# True when no explicit adapter given, or explicit appear is truthy (non-nil)
# False when explicit adapter is falsy (nil or false)
@ -63,7 +63,7 @@ module ActiveModel
end
def serializer?
use_adapter? && !!(serializer)
use_adapter? && !!serializer
end
protected

View File

@ -92,7 +92,7 @@ module ActiveModel
self._cache_key = options.delete(:key)
self._cache_only = options.delete(:only)
self._cache_except = options.delete(:except)
self._cache_options = (options.empty?) ? nil : options
self._cache_options = options.empty? ? nil : options
end
end
end

View File

@ -14,7 +14,7 @@ module ActiveModel
serializer_context_class = options.fetch(:serializer_context_class, ActiveModel::Serializer)
serializer_class = options.fetch(:serializer) { serializer_context_class.serializer_for(resource) }
if serializer_class.nil?
if serializer_class.nil? # rubocop:disable Style/GuardClause
fail NoSerializerError, "No serializer found for resource: #{resource.inspect}"
else
serializer_class.new(resource, options.except(:serializer))

View File

@ -1,5 +1,5 @@
module ActiveModel
class Serializer
VERSION = '0.10.0.rc4'
VERSION = '0.10.0.rc4'.freeze
end
end

View File

@ -1,7 +1,7 @@
module ActiveModelSerializers
module Adapter
UnknownAdapterError = Class.new(ArgumentError)
ADAPTER_MAP = {}
ADAPTER_MAP = {} # rubocop:disable Style/MutableConstant
private_constant :ADAPTER_MAP if defined?(private_constant)
require 'active_model_serializers/adapter/fragment_cache'
require 'active_model_serializers/adapter/cached_serializer'
@ -49,7 +49,7 @@ module ActiveModelSerializers
# 'Json' will both register as 'json'.
def register(name, klass = name)
name = name.to_s.gsub(/\AActiveModelSerializers::Adapter::/, ''.freeze)
adapter_map.update(name.underscore => klass)
adapter_map[name.underscore] = klass
self
end

View File

@ -38,7 +38,7 @@ module ActiveModelSerializers
def object_cache_key
object_time_safe = @cached_serializer.object.updated_at
object_time_safe = object_time_safe.strftime('%Y%m%d%H%M%S%9N') if object_time_safe.respond_to?(:strftime)
(@klass._cache_key) ? "#{@klass._cache_key}/#{@cached_serializer.object.id}-#{object_time_safe}" : @cached_serializer.object.cache_key
@klass._cache_key ? "#{@klass._cache_key}/#{@cached_serializer.object.id}-#{object_time_safe}" : @cached_serializer.object.cache_key
end
# find all cache_key for the collection_serializer

View File

@ -46,7 +46,7 @@ module ActiveModelSerializers
# 3. Add non-cached attributes to non-cached Serializer
def cached_attributes(klass, serializers)
attributes = serializer.class._attributes
cached_attributes = (klass._cache_only) ? klass._cache_only : attributes.reject { |attr| klass._cache_except.include?(attr) }
cached_attributes = klass._cache_only ? klass._cache_only : attributes.reject { |attr| klass._cache_except.include?(attr) }
non_cached_attributes = attributes - cached_attributes
cached_attributes.each do |attribute|

View File

@ -188,7 +188,7 @@ module ActiveModelSerializers
end
polymorphic = (options[:polymorphic] || []).include?(assoc_name.to_sym)
hash.merge!("#{prefix_key}_type".to_sym => assoc_data['type']) if polymorphic
hash["#{prefix_key}_type".to_sym] = assoc_data['type'] if polymorphic
hash
end

View File

@ -8,7 +8,7 @@ module ActiveModelSerializers
no_root_cache = cached_hash.delete_if { |key, _value| key == core_cached[0] }
no_root_non_cache = non_cached_hash.delete_if { |key, _value| key == core_non_cached[0] }
cached_resource = (core_cached[1]) ? core_cached[1].deep_merge(core_non_cached[1]) : core_non_cached[1]
hash = (root) ? { root => cached_resource } : cached_resource
hash = root ? { root => cached_resource } : cached_resource
hash.deep_merge no_root_non_cache.deep_merge no_root_cache
end

View File

@ -38,12 +38,10 @@ module ActiveModelSerializers
def data_for(serializer, options)
if serializer.respond_to?(:each)
serializer.map { |s| ResourceIdentifier.new(s).as_json }
else
if options[:virtual_value]
options[:virtual_value]
elsif serializer && serializer.object
ResourceIdentifier.new(serializer).as_json
end
elsif options[:virtual_value]
options[:virtual_value]
elsif serializer && serializer.object
ResourceIdentifier.new(serializer).as_json
end
end
end

View File

@ -33,7 +33,7 @@ module ActiveModelSerializers
alias_method old, name
class_eval do
define_method(name) do |*args, &block|
target = self.is_a?(Module) ? "#{self}." : "#{self.class}#"
target = is_a?(Module) ? "#{self}." : "#{self.class}#"
msg = ["NOTE: #{target}#{name} is deprecated",
replacement == :none ? ' with no replacement' : "; use #{replacement} instead",
"\n#{target}#{name} called from #{ActiveModelSerializers.location_of_caller.join(":")}"

View File

@ -36,7 +36,7 @@ module ActionController
type: 'profiles',
attributes: {
name: 'Name 1',
description: 'Description 1',
description: 'Description 1'
}
}
}

View File

@ -8,8 +8,8 @@ module ActionController
module Serialization
class JsonApi
class PaginationTest < ActionController::TestCase
KAMINARI_URI = 'http://test.host/action_controller/serialization/json_api/pagination_test/pagination_test/render_pagination_using_kaminari'
WILL_PAGINATE_URI = 'http://test.host/action_controller/serialization/json_api/pagination_test/pagination_test/render_pagination_using_will_paginate'
KAMINARI_URI = 'http://test.host/action_controller/serialization/json_api/pagination_test/pagination_test/render_pagination_using_kaminari'.freeze
WILL_PAGINATE_URI = 'http://test.host/action_controller/serialization/json_api/pagination_test/pagination_test/render_pagination_using_will_paginate'.freeze
class PaginationTestController < ActionController::Base
def setup

View File

@ -91,7 +91,7 @@ module ActionController
expires_in = [
PostSerializer._cache_options[:expires_in],
CommentSerializer._cache_options[:expires_in],
CommentSerializer._cache_options[:expires_in]
].max + 200
Timecop.travel(Time.zone.now + expires_in) do

View File

@ -43,7 +43,7 @@ module ActiveModelSerializers
type: 'posts',
attributes: {
title: 'New Post',
body: 'Body',
body: 'Body'
},
relationships: {
comments: { data: [{ type: 'comments', id: '1' }] },

View File

@ -60,7 +60,7 @@ module ActiveModelSerializers
actual = ActiveModel::SerializableResource.new(
[@first_post, @second_post], adapter: :json_api,
fields: { posts: %w(title comments blog author) })
.serializable_hash
.serializable_hash
expected = [
{
id: '1',

View File

@ -98,7 +98,7 @@ module ActiveModelSerializers
id: '2',
type: 'comments',
attributes: {
body: 'ZOMG ANOTHER COMMENT',
body: 'ZOMG ANOTHER COMMENT'
},
relationships: {
post: { data: { type: 'posts', id: '10' } },
@ -141,7 +141,7 @@ module ActiveModelSerializers
type: 'bios',
attributes: {
rating: nil,
content: 'Rails Contributor',
content: 'Rails Contributor'
},
relationships: {
author: { data: { type: 'authors', id: '2' } }
@ -314,7 +314,7 @@ module ActiveModelSerializers
def test_no_duplicates
hash = ActiveModel::SerializableResource.new(@post1, adapter: :json_api,
include: '*.*')
.serializable_hash
.serializable_hash
expected = [
{
type: 'authors', id: '1',
@ -343,7 +343,7 @@ module ActiveModelSerializers
hash = ActiveModel::SerializableResource.new(
[@post1, @post2], adapter: :json_api,
include: '*.*')
.serializable_hash
.serializable_hash
expected = [
{
type: 'authors', id: '1',

View File

@ -8,7 +8,7 @@ module ActiveModelSerializers
module Adapter
class JsonApi
class PaginationLinksTest < ActiveSupport::TestCase
URI = 'http://example.com'
URI = 'http://example.com'.freeze
def setup
ActionController::Base.cache_store.clear

View File

@ -77,22 +77,22 @@ module ActiveModelSerializers
end
def test_relationship_block_link
links = { self: proc { "#{object.id}" } }
expected = { links: { self: "#{@blog.id}" } }
links = { self: proc { object.id.to_s } }
expected = { links: { self: @blog.id.to_s } }
test_relationship(expected, links: links)
end
def test_relationship_block_link_with_meta
links = {
self: proc do
href "#{object.id}"
href object.id.to_s
meta(id: object.id)
end
}
expected = {
links: {
self: {
href: "#{@blog.id}",
href: @blog.id.to_s,
meta: { id: @blog.id }
}
}
@ -122,7 +122,7 @@ module ActiveModelSerializers
links = {
self: 'a link',
related: proc do
href "#{object.id}"
href object.id.to_s
meta object.id
end

View File

@ -15,11 +15,11 @@ class ActiveModelSerializers::GrapeTest < ActiveSupport::TestCase
def self.all
@all ||=
begin
model1.save!
model2.save!
ARModels::Post.all
end
begin
model1.save!
model2.save!
ARModels::Post.all
end
end
end

View File

@ -60,8 +60,8 @@ module ActiveModel
def test_serializer_options_are_passed_into_associations_serializers
association = @post_serializer
.associations
.detect { |assoc| assoc.key == :comments }
.associations
.detect { |assoc| assoc.key == :comments }
assert association.serializer.first.custom_options[:custom_options]
end
@ -143,11 +143,11 @@ module ActiveModel
)
actual = serializable(post, adapter: :attributes, serializer: InlineAssociationTestPostSerializer).as_json
expected = {
:comments => [
:comments => [
{ :id => 1, :contents => 'first comment' },
{ :id => 2, :contents => 'last comment' }
],
:last_comments => [
:last_comments => [
{ :id => 2, :contents => 'last comment' }
]
}

View File

@ -1,7 +1,7 @@
module Rails5Shims
module ControllerTests
# https://github.com/rails/rails/blob/b217354/actionpack/lib/action_controller/test_case.rb
REQUEST_KWARGS = [:params, :session, :flash, :method, :body, :xhr]
REQUEST_KWARGS = [:params, :session, :flash, :method, :body, :xhr].freeze
# Fold kwargs from test request into args
# Band-aid for DEPRECATION WARNING

View File

@ -21,7 +21,7 @@ module SerializationTesting
ensure
ActiveModelSerializers.config.adapter = old_adapter
end
alias_method :with_configured_adapter, :with_adapter
alias with_configured_adapter with_adapter
def with_config(hash)
old_config = config.dup