diff --git a/.rubocop.yml b/.rubocop.yml index e7d729cc..8e00e2dc 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -47,3 +47,7 @@ Style/Documentation: Style/MultilineOperationIndentation: EnforcedStyle: indented + +Style/BlockDelimiters: + Enabled: true + EnforcedStyle: line_count_based diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 36ce4dfc..f55d9335 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,23 +1,12 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2015-08-31 04:23:33 -0500 using RuboCop version 0.33.0. +# on 2015-09-20 17:56:22 -0500 using RuboCop version 0.34.0. # 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 # versions of RuboCop, may require this file to be generated again. -# Offense count: 1 -# Configuration parameters: AllowSafeAssignment. -Lint/AssignmentInCondition: - Exclude: - - 'lib/active_model/serializer/adapter/json_api.rb' - -# Offense count: 1 -Lint/EmptyEnsure: - Exclude: - - 'test/serializers/adapter_for_test.rb' - -# Offense count: 1 +# Offense count: 2 Lint/HandleExceptions: Exclude: - 'Rakefile' @@ -28,11 +17,10 @@ Lint/UnusedBlockArgument: Exclude: - 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb' -# Offense count: 9 +# Offense count: 7 # Cop supports --auto-correct. Lint/UnusedMethodArgument: Exclude: - - 'lib/active_model/serializer/adapter.rb' - 'lib/active_model/serializer/adapter/null.rb' - 'lib/active_model/serializer/pass_through_serializer.rb' - 'test/fixtures/poro.rb' @@ -43,12 +31,11 @@ Lint/UselessAccessModifier: Exclude: - 'lib/active_model/serializable_resource.rb' -# Offense count: 3 +# Offense count: 2 Lint/UselessAssignment: Exclude: - 'bench/perf.rb' - 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb' - - 'test/test_helper.rb' # Offense count: 1 # Configuration parameters: EnforcedStyle, SupportedStyles. @@ -56,7 +43,7 @@ Rails/Date: Exclude: - 'test/fixtures/poro.rb' -# Offense count: 8 +# Offense count: 4 # Configuration parameters: EnforcedStyle, SupportedStyles. Rails/TimeZone: Exclude: @@ -78,20 +65,13 @@ Style/AndOr: Exclude: - 'lib/active_model/serializer/lint.rb' -# Offense count: 6 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods. -Style/BlockDelimiters: - Enabled: false - -# Offense count: 46 +# Offense count: 25 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/BracesAroundHashParameters: Exclude: - 'test/action_controller/adapter_selector_test.rb' - 'test/action_controller/json_api/pagination_test.rb' - - 'test/action_controller/serialization_test.rb' - 'test/adapter/json_api/linked_test.rb' - 'test/adapter/json_api/pagination_links_test.rb' - 'test/adapter/null_test.rb' @@ -103,9 +83,8 @@ Style/BracesAroundHashParameters: - 'test/serializers/attributes_test.rb' - 'test/serializers/fieldset_test.rb' - 'test/serializers/root_test.rb' - - 'test/serializers/urls_test.rb' -# Offense count: 167 +# Offense count: 174 # Configuration parameters: EnforcedStyle, SupportedStyles. Style/ClassAndModuleChildren: Enabled: false @@ -126,12 +105,11 @@ Style/EachWithObject: Exclude: - 'lib/active_model/serializer/fieldset.rb' -# Offense count: 3 +# Offense count: 2 # Configuration parameters: MinBodyLength. Style/GuardClause: Exclude: - 'lib/active_model/serializer.rb' - - 'lib/active_model/serializer/adapter/json_api.rb' - 'test/capture_warnings.rb' # Offense count: 12 @@ -155,34 +133,12 @@ Style/IndentArray: Style/IndentHash: Enabled: false -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -Style/IndentationConsistency: - Exclude: - - 'test/action_controller/serialization_scope_name_test.rb' - -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: Width. -Style/IndentationWidth: - Exclude: - - 'lib/active_model/serializable_resource.rb' - - 'lib/active_model/serializer/fieldset.rb' - # Offense count: 1 # Cop supports --auto-correct. Style/Lambda: Exclude: - 'lib/active_model/serializer.rb' -# Offense count: 2 -# Cop supports --auto-correct. -Style/MethodCallParentheses: - Exclude: - - 'lib/active_model/serializer/adapter/json.rb' - - 'lib/active_model/serializer/adapter/json_api.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. @@ -201,24 +157,11 @@ Style/NegatedIf: Exclude: - 'lib/action_controller/serialization.rb' -# Offense count: 1 -# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles. -Style/Next: - Exclude: - - 'lib/active_model/serializer/adapter/json_api.rb' - # Offense count: 1 # Cop supports --auto-correct. Style/NumericLiterals: MinDigits: 7 -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: PreferredDelimiters. -Style/PercentLiteralDelimiters: - Exclude: - - 'active_model_serializers.gemspec' - # Offense count: 2 # Cop supports --auto-correct. Style/PerlBackrefs: @@ -226,20 +169,17 @@ Style/PerlBackrefs: - 'test/fixtures/poro.rb' - 'test/serializers/associations_test.rb' -# Offense count: 6 +# Offense count: 3 # Configuration parameters: NamePrefix, NamePrefixBlacklist. Style/PredicateName: Exclude: - - 'lib/active_model/serializer/adapter.rb' - - 'lib/active_model/serializer/adapter/json_api.rb' - 'lib/active_model/serializer/associations.rb' - 'test/action_controller/json_api/linked_test.rb' -# Offense count: 7 +# Offense count: 5 # Cop supports --auto-correct. Style/RedundantSelf: Exclude: - - 'lib/active_model/serializer.rb' - 'lib/active_model/serializer/associations.rb' - 'test/fixtures/poro.rb' @@ -250,13 +190,11 @@ Style/Semicolon: Exclude: - 'lib/active_model/serializer/fieldset.rb' -# Offense count: 6 +# Offense count: 3 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. Style/SignalException: Exclude: - - 'lib/active_model/serializer.rb' - - 'lib/active_model/serializer/adapter.rb' - 'lib/active_model/serializer/fieldset.rb' - 'lib/active_model/serializer/pass_through_serializer.rb' @@ -299,7 +237,7 @@ Style/TrailingBlankLines: - 'test/serializers/fieldset_test.rb' - 'test/support/stream_capture.rb' -# Offense count: 6 +# Offense count: 5 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles. Style/TrailingComma: diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index 832fe3f4..61a86e1c 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -58,12 +58,12 @@ module ActiveModel return adapter if adapter.is_a?(Class) adapter_name = adapter.to_s.underscore # 2. return if registered - adapter_map.fetch(adapter_name) { + adapter_map.fetch(adapter_name) do # 3. try to find adapter class from environment adapter_class = find_by_name(adapter_name) register(adapter_name, adapter_class) adapter_class - } + end rescue NameError, ArgumentError => e failure_message = "NameError: #{e.message}. Unknown adapter: #{adapter.inspect}. Valid adapters are: #{adapters}" diff --git a/lib/active_model/serializer/array_serializer.rb b/lib/active_model/serializer/array_serializer.rb index 7a5aed20..9c7b2b93 100644 --- a/lib/active_model/serializer/array_serializer.rb +++ b/lib/active_model/serializer/array_serializer.rb @@ -11,9 +11,9 @@ module ActiveModel @root = options[:root] @object = resources @serializers = resources.map do |resource| - serializer_class = options.fetch(:serializer) { + serializer_class = options.fetch(:serializer) do ActiveModel::Serializer.serializer_for(resource) - } + end if serializer_class.nil? fail NoSerializerError, "No serializer found for resource: #{resource.inspect}" diff --git a/lib/active_model/serializer/include_tree.rb b/lib/active_model/serializer/include_tree.rb index 6d675e11..8a8f1c12 100644 --- a/lib/active_model/serializer/include_tree.rb +++ b/lib/active_model/serializer/include_tree.rb @@ -16,9 +16,9 @@ module ActiveModel when Symbol { included => {} } when Hash - included.each_with_object({}) { |(key, value), hash| + included.each_with_object({}) do |(key, value), hash| hash[key] = include_args_to_hash(value) - } + end when Array included.reduce({}) { |a, e| a.merge!(include_args_to_hash(e)) } when String diff --git a/test/action_controller/serialization_test.rb b/test/action_controller/serialization_test.rb index acf62a47..e9288d56 100644 --- a/test/action_controller/serialization_test.rb +++ b/test/action_controller/serialization_test.rb @@ -400,25 +400,25 @@ module ActionController end def test_warn_overridding_use_adapter_as_falsy_on_controller_instance - controller = Class.new(ImplicitSerializationTestController) { + controller = Class.new(ImplicitSerializationTestController) do def use_adapter? false end - }.new - assert_match(/adapter: false/, (capture(:stderr) { + end.new + assert_match(/adapter: false/, (capture(:stderr) do controller.get_serializer(Profile.new) - })) + end)) end def test_dont_warn_overridding_use_adapter_as_truthy_on_controller_instance - controller = Class.new(ImplicitSerializationTestController) { + controller = Class.new(ImplicitSerializationTestController) do def use_adapter? true end - }.new - assert_equal '', (capture(:stderr) { + end.new + assert_equal '', (capture(:stderr) do controller.get_serializer(Profile.new) - }) + end) end end end diff --git a/test/capture_warnings.rb b/test/capture_warnings.rb index 5acdb3a0..7a39e7c2 100644 --- a/test/capture_warnings.rb +++ b/test/capture_warnings.rb @@ -28,9 +28,9 @@ class CaptureWarnings # rubocop:disable Metrics/AbcSize def after_tests(lines) - app_warnings, other_warnings = lines.partition { |line| + app_warnings, other_warnings = lines.partition do |line| line.include?(app_root) && !line.include?(bundle_dir) - } + end header = "#{'-' * 22} app warnings: #{'-' * 22}" output.puts