diff --git a/.rubocop.yml b/.rubocop.yml index d808271ce..d57fdc880 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,6 +8,42 @@ AllCops: DisplayCopNames: true DisplayStyleGuide: true +Style/IndentationConsistency: + Exclude: + - lib/active_model/serializer/adapter.rb + - lib/active_model/serializer/adapter/flatten_json.rb + - lib/active_model/serializer/adapter/fragment_cache.rb + - lib/active_model/serializer/adapter/json.rb + - lib/active_model/serializer/adapter/json/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api.rb + - lib/active_model/serializer/adapter/json_api/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api/pagination_links.rb + - lib/active_model/serializer/adapter/null.rb + +Style/IndentationWidth: + Exclude: + - lib/active_model/serializer/adapter.rb + - lib/active_model/serializer/adapter/flatten_json.rb + - lib/active_model/serializer/adapter/fragment_cache.rb + - lib/active_model/serializer/adapter/json.rb + - lib/active_model/serializer/adapter/json/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api.rb + - lib/active_model/serializer/adapter/json_api/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api/pagination_links.rb + - lib/active_model/serializer/adapter/null.rb + +Style/AccessModifierIndentation: + Exclude: + - lib/active_model/serializer/adapter.rb + - lib/active_model/serializer/adapter/flatten_json.rb + - lib/active_model/serializer/adapter/fragment_cache.rb + - lib/active_model/serializer/adapter/json.rb + - lib/active_model/serializer/adapter/json/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api.rb + - lib/active_model/serializer/adapter/json_api/fragment_cache.rb + - lib/active_model/serializer/adapter/json_api/pagination_links.rb + - lib/active_model/serializer/adapter/null.rb + Lint/NestedMethodDefinition: Enabled: false Exclude: diff --git a/lib/active_model/serializable_resource.rb b/lib/active_model/serializable_resource.rb index feae1e8e7..d3565f9a5 100644 --- a/lib/active_model/serializable_resource.rb +++ b/lib/active_model/serializable_resource.rb @@ -76,7 +76,7 @@ def serializer? private ActiveModelSerializers.silence_warnings do - attr_reader :resource, :adapter_opts, :serializer_opts + attr_reader :resource, :adapter_opts, :serializer_opts end end end diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index 74a997fc7..2354f7291 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -4,11 +4,11 @@ class Adapter UnknownAdapterError = Class.new(ArgumentError) ADAPTER_MAP = {} extend ActiveSupport::Autoload - require 'active_model/serializer/adapter/json' - require 'active_model/serializer/adapter/json_api' - autoload :FlattenJson - autoload :Null autoload :FragmentCache + autoload :Json + autoload :JsonApi + autoload :Null + autoload :FlattenJson def self.create(resource, options = {}) override = options.delete(:adapter) diff --git a/lib/active_model/serializer/adapter/flatten_json.rb b/lib/active_model/serializer/adapter/flatten_json.rb index 7ed570349..0c10f3e6e 100644 --- a/lib/active_model/serializer/adapter/flatten_json.rb +++ b/lib/active_model/serializer/adapter/flatten_json.rb @@ -1,7 +1,4 @@ -module ActiveModel - class Serializer - class Adapter - class FlattenJson < Json +class ActiveModel::Serializer::Adapter::FlattenJson < ActiveModel::Serializer::Adapter::Json def serializable_hash(options = {}) super @result @@ -13,7 +10,4 @@ def serializable_hash(options = {}) def include_meta(json) json end - end - end - end end diff --git a/lib/active_model/serializer/adapter/fragment_cache.rb b/lib/active_model/serializer/adapter/fragment_cache.rb index 8463b5a23..13558c088 100644 --- a/lib/active_model/serializer/adapter/fragment_cache.rb +++ b/lib/active_model/serializer/adapter/fragment_cache.rb @@ -1,7 +1,4 @@ -module ActiveModel - class Serializer - class Adapter - class FragmentCache +class ActiveModel::Serializer::Adapter::FragmentCache attr_reader :serializer def initialize(adapter, serializer, options) @@ -75,7 +72,4 @@ def fragment_serializer(name, klass) def to_valid_const_name(name) name.gsub('::', '_') end - end - end - end end diff --git a/lib/active_model/serializer/adapter/json.rb b/lib/active_model/serializer/adapter/json.rb index b3fa6e9c6..2c0b6455c 100644 --- a/lib/active_model/serializer/adapter/json.rb +++ b/lib/active_model/serializer/adapter/json.rb @@ -1,9 +1,7 @@ -require 'active_model/serializer/adapter/json/fragment_cache' +class ActiveModel::Serializer::Adapter::Json < ActiveModel::Serializer::Adapter + extend ActiveSupport::Autoload + autoload :FragmentCache -module ActiveModel - class Serializer - class Adapter - class Json < Adapter def serializable_hash(options = nil) options ||= {} if serializer.respond_to?(:each) @@ -44,9 +42,6 @@ def serializable_hash(options = nil) end def fragment_cache(cached_hash, non_cached_hash) - Json::FragmentCache.new().fragment_cache(cached_hash, non_cached_hash) + ActiveModel::Serializer::Adapter::Json::FragmentCache.new().fragment_cache(cached_hash, non_cached_hash) end - end - end - end end diff --git a/lib/active_model/serializer/adapter/json/fragment_cache.rb b/lib/active_model/serializer/adapter/json/fragment_cache.rb index 846a216ff..5e687241d 100644 --- a/lib/active_model/serializer/adapter/json/fragment_cache.rb +++ b/lib/active_model/serializer/adapter/json/fragment_cache.rb @@ -1,14 +1,5 @@ -require 'active_model/serializer/adapter/fragment_cache' -module ActiveModel - class Serializer - class Adapter - class Json < Adapter - class FragmentCache +class ActiveModel::Serializer::Adapter::Json::FragmentCache def fragment_cache(cached_hash, non_cached_hash) non_cached_hash.merge cached_hash end - end - end - end - end end diff --git a/lib/active_model/serializer/adapter/json_api.rb b/lib/active_model/serializer/adapter/json_api.rb index 48f8173c8..bba8cc1d9 100644 --- a/lib/active_model/serializer/adapter/json_api.rb +++ b/lib/active_model/serializer/adapter/json_api.rb @@ -1,10 +1,8 @@ -require 'active_model/serializer/adapter/json_api/fragment_cache' -require 'active_model/serializer/adapter/json_api/pagination_links' +class ActiveModel::Serializer::Adapter::JsonApi < ActiveModel::Serializer::Adapter + extend ActiveSupport::Autoload + autoload :PaginationLinks + autoload :FragmentCache -module ActiveModel - class Serializer - class Adapter - class JsonApi < Adapter def initialize(serializer, options = {}) super @hash = { data: [] } @@ -39,11 +37,9 @@ def serializable_hash(options = nil) def fragment_cache(cached_hash, non_cached_hash) root = false if @options.include?(:include) - JsonApi::FragmentCache.new().fragment_cache(root, cached_hash, non_cached_hash) + ActiveModel::Serializer::Adapter::JsonApi::FragmentCache.new().fragment_cache(root, cached_hash, non_cached_hash) end - private - def add_relationships(resource, name, serializers) resource[:relationships] ||= {} resource[:relationships][name] ||= { data: [] } @@ -169,17 +165,14 @@ def add_links(options) end end - def add_pagination_links(links, collection, options) - pagination_links = JsonApi::PaginationLinks.new(collection, options[:context]).serializable_hash(options) + def add_pagination_links(links, resources, options) + pagination_links = ActiveModel::Serializer::Adapter::JsonApi::PaginationLinks.new(resources, options[:context]).serializable_hash(options) links.update(pagination_links) end - def is_paginated?(collection) - collection.respond_to?(:current_page) && - collection.respond_to?(:total_pages) && - collection.respond_to?(:size) + def is_paginated?(resource) + resource.respond_to?(:current_page) && + resource.respond_to?(:total_pages) && + resource.respond_to?(:size) end - end - end - end end diff --git a/lib/active_model/serializer/adapter/json_api/fragment_cache.rb b/lib/active_model/serializer/adapter/json_api/fragment_cache.rb index 070371ac7..ab3481307 100644 --- a/lib/active_model/serializer/adapter/json_api/fragment_cache.rb +++ b/lib/active_model/serializer/adapter/json_api/fragment_cache.rb @@ -1,9 +1,4 @@ -require 'active_model/serializer/adapter/fragment_cache' -module ActiveModel - class Serializer - class Adapter - class JsonApi < Adapter - class FragmentCache +class ActiveModel::Serializer::Adapter::JsonApi::FragmentCache def fragment_cache(root, cached_hash, non_cached_hash) hash = {} core_cached = cached_hash.first @@ -15,8 +10,4 @@ def fragment_cache(root, cached_hash, non_cached_hash) hash.deep_merge no_root_non_cache.deep_merge no_root_cache end - end - end - end - end end diff --git a/lib/active_model/serializer/adapter/json_api/pagination_links.rb b/lib/active_model/serializer/adapter/json_api/pagination_links.rb index 55e3280b8..8661f3b14 100644 --- a/lib/active_model/serializer/adapter/json_api/pagination_links.rb +++ b/lib/active_model/serializer/adapter/json_api/pagination_links.rb @@ -1,8 +1,4 @@ -module ActiveModel - class Serializer - class Adapter - class JsonApi < Adapter - class PaginationLinks +class ActiveModel::Serializer::Adapter::JsonApi::PaginationLinks FIRST_PAGE = 1 attr_reader :collection, :context @@ -51,8 +47,4 @@ def original_url def query_parameters @query_parameters ||= context.query_parameters end - end - end - end - end end diff --git a/lib/active_model/serializer/adapter/null.rb b/lib/active_model/serializer/adapter/null.rb index 1728f88ed..78f9b8e3b 100644 --- a/lib/active_model/serializer/adapter/null.rb +++ b/lib/active_model/serializer/adapter/null.rb @@ -1,11 +1,5 @@ -module ActiveModel - class Serializer - class Adapter - class Null < Adapter +class ActiveModel::Serializer::Adapter::Null < ActiveModel::Serializer::Adapter def serializable_hash(options = nil) {} end - end - end - end end diff --git a/lib/active_model/serializer/fieldset.rb b/lib/active_model/serializer/fieldset.rb index 30e683344..935aea81a 100644 --- a/lib/active_model/serializer/fieldset.rb +++ b/lib/active_model/serializer/fieldset.rb @@ -18,7 +18,7 @@ def fields_for(serializer) private ActiveModelSerializers.silence_warnings do - attr_reader :raw_fields, :root + attr_reader :raw_fields, :root end def parsed_fields diff --git a/test/action_controller/serialization_scope_name_test.rb b/test/action_controller/serialization_scope_name_test.rb index 6e2b15e6e..51abf1080 100644 --- a/test/action_controller/serialization_scope_name_test.rb +++ b/test/action_controller/serialization_scope_name_test.rb @@ -25,7 +25,7 @@ def render_new_user end end - tests UserTestController + tests UserTestController def test_default_scope_name get :render_new_user diff --git a/test/serializers/adapter_for_test.rb b/test/serializers/adapter_for_test.rb index 39666bc32..076887ec2 100644 --- a/test/serializers/adapter_for_test.rb +++ b/test/serializers/adapter_for_test.rb @@ -155,12 +155,11 @@ def test_inherited_adapter_hooks_register_subclass_of_registered_adapter assert_equal ActiveModel::Serializer::Adapter.get(:my_adapter), my_adapter assert_equal ActiveModel::Serializer::Adapter.get(:my_subclassed_adapter), my_subclassed_adapter ensure - ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete("my_adapter".freeze) - ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete("my_subclassed_adapter".freeze) + ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete('my_adapter'.freeze) + ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete('my_subclassed_adapter'.freeze) Object.send(:remove_const, :MyAdapter) Object.send(:remove_const, :MySubclassedAdapter) end - end end end diff --git a/test/test_helper.rb b/test/test_helper.rb index 7872d86a7..a1916b211 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -31,12 +31,12 @@ # eager load autoloaded adapters # rubocop:disable Lint/Void require 'active_model/serializer/adapter' +ActiveModel::Serializer::Adapter ActiveModel::Serializer::Adapter::Null ActiveModel::Serializer::Adapter::Json ActiveModel::Serializer::Adapter::FlattenJson ActiveModel::Serializer::Adapter::JsonApi # rubocop:enable Lint/Void -require 'active_model/serializer/adapter' require 'support/stream_capture'