diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4f48ae3c..49185b4b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -45,14 +45,6 @@ Style/ClassAndModuleChildren: -# 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: 3 # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist. # NamePrefix: is_, has_, have_ diff --git a/Rakefile b/Rakefile index 241e4398..1c2fb947 100644 --- a/Rakefile +++ b/Rakefile @@ -100,4 +100,4 @@ else end desc 'CI test task' -task :ci => [:default] +task ci: [:default] diff --git a/lib/active_model_serializers/railtie.rb b/lib/active_model_serializers/railtie.rb index c7d6c0d1..d6843c9c 100644 --- a/lib/active_model_serializers/railtie.rb +++ b/lib/active_model_serializers/railtie.rb @@ -23,7 +23,7 @@ module ActiveModelSerializers # This hook is run after the action_controller railtie has set the configuration # based on the *environment* configuration and before any config/initializers are run # and also before eager_loading (if enabled). - initializer 'active_model_serializers.set_configs', :after => 'action_controller.set_configs' do + initializer 'active_model_serializers.set_configs', after: 'action_controller.set_configs' do ActiveModelSerializers.logger = Rails.configuration.action_controller.logger ActiveModelSerializers.config.perform_caching = Rails.configuration.action_controller.perform_caching # We want this hook to run after the config has been set, even if ActionController has already loaded. diff --git a/lib/active_model_serializers/register_jsonapi_renderer.rb b/lib/active_model_serializers/register_jsonapi_renderer.rb index 813503f5..39442959 100644 --- a/lib/active_model_serializers/register_jsonapi_renderer.rb +++ b/lib/active_model_serializers/register_jsonapi_renderer.rb @@ -53,7 +53,7 @@ module ActiveModelSerializers::Jsonapi def self.parser lambda do |body| data = JSON.parse(body) - data = { :_json => data } unless data.is_a?(Hash) + data = { _json: data } unless data.is_a?(Hash) data.with_indifferent_access end end diff --git a/lib/generators/rails/serializer_generator.rb b/lib/generators/rails/serializer_generator.rb index c564a7c9..16a47a61 100644 --- a/lib/generators/rails/serializer_generator.rb +++ b/lib/generators/rails/serializer_generator.rb @@ -2,11 +2,11 @@ module Rails module Generators class SerializerGenerator < NamedBase source_root File.expand_path('../templates', __FILE__) - check_class_collision :suffix => 'Serializer' + check_class_collision suffix: 'Serializer' - argument :attributes, :type => :array, :default => [], :banner => 'field:type field:type' + argument :attributes, type: :array, default: [], banner: 'field:type field:type' - class_option :parent, :type => :string, :desc => 'The parent class for the generated serializer' + class_option :parent, type: :string, desc: 'The parent class for the generated serializer' def create_serializer_file template 'serializer.rb.erb', File.join('app/serializers', class_path, "#{file_name}_serializer.rb") diff --git a/test/action_controller/json_api/errors_test.rb b/test/action_controller/json_api/errors_test.rb index bdc8643f..dd1249f2 100644 --- a/test/action_controller/json_api/errors_test.rb +++ b/test/action_controller/json_api/errors_test.rb @@ -8,12 +8,11 @@ module ActionController get :render_resource_with_errors expected_errors_object = { - :errors => - [ - { :source => { :pointer => '/data/attributes/name' }, :detail => 'cannot be nil' }, - { :source => { :pointer => '/data/attributes/name' }, :detail => 'must be longer' }, - { :source => { :pointer => '/data/attributes/id' }, :detail => 'must be a uuid' } - ] + errors: [ + { source: { pointer: '/data/attributes/name' }, detail: 'cannot be nil' }, + { source: { pointer: '/data/attributes/name' }, detail: 'must be longer' }, + { source: { pointer: '/data/attributes/id' }, detail: 'must be a uuid' } + ] }.to_json assert_equal json_reponse_body.to_json, expected_errors_object end diff --git a/test/action_controller/json_api/linked_test.rb b/test/action_controller/json_api/linked_test.rb index 6e59e4ea..efcf4d99 100644 --- a/test/action_controller/json_api/linked_test.rb +++ b/test/action_controller/json_api/linked_test.rb @@ -87,7 +87,7 @@ module ActionController setup do @routes = Rails.application.routes.draw do ActiveSupport::Deprecation.silence do - match ':action', :to => LinkedTestController, via: [:get, :post] + match ':action', to: LinkedTestController, via: [:get, :post] end end end diff --git a/test/active_model_serializers/key_transform_test.rb b/test/active_model_serializers/key_transform_test.rb index d6e9e637..2cd91cfc 100644 --- a/test/active_model_serializers/key_transform_test.rb +++ b/test/active_model_serializers/key_transform_test.rb @@ -5,16 +5,16 @@ class ActiveModelSerializers::KeyTransformTest < ActiveSupport::TestCase obj = Object.new scenarios = [ { - value: { :"some-key" => 'value' }, - expected: { :SomeKey => 'value' } + value: { "some-key": 'value' }, + expected: { SomeKey: 'value' } }, { - value: { :someKey => 'value' }, - expected: { :SomeKey => 'value' } + value: { someKey: 'value' }, + expected: { SomeKey: 'value' } }, { - value: { :some_key => 'value' }, - expected: { :SomeKey => 'value' } + value: { some_key: 'value' }, + expected: { SomeKey: 'value' } }, { value: { 'some-key' => 'value' }, @@ -71,16 +71,16 @@ class ActiveModelSerializers::KeyTransformTest < ActiveSupport::TestCase obj = Object.new scenarios = [ { - value: { :"some-key" => 'value' }, - expected: { :someKey => 'value' } + value: { "some-key": 'value' }, + expected: { someKey: 'value' } }, { - value: { :SomeKey => 'value' }, - expected: { :someKey => 'value' } + value: { SomeKey: 'value' }, + expected: { someKey: 'value' } }, { - value: { :some_key => 'value' }, - expected: { :someKey => 'value' } + value: { some_key: 'value' }, + expected: { someKey: 'value' } }, { value: { 'some-key' => 'value' }, @@ -137,24 +137,24 @@ class ActiveModelSerializers::KeyTransformTest < ActiveSupport::TestCase obj = Object.new scenarios = [ { - value: { :some_key => 'value' }, - expected: { :"some-key" => 'value' } + value: { some_key: 'value' }, + expected: { "some-key": 'value' } }, { value: { 'some_key' => 'value' }, expected: { 'some-key' => 'value' } }, { - value: { :SomeKey => 'value' }, - expected: { :"some-key" => 'value' } + value: { SomeKey: 'value' }, + expected: { "some-key": 'value' } }, { value: { 'SomeKey' => 'value' }, expected: { 'some-key' => 'value' } }, { - value: { :someKey => 'value' }, - expected: { :"some-key" => 'value' } + value: { someKey: 'value' }, + expected: { "some-key": 'value' } }, { value: { 'someKey' => 'value' }, @@ -199,24 +199,24 @@ class ActiveModelSerializers::KeyTransformTest < ActiveSupport::TestCase obj = Object.new scenarios = [ { - value: { :"some-key" => 'value' }, - expected: { :some_key => 'value' } + value: { "some-key": 'value' }, + expected: { some_key: 'value' } }, { value: { 'some-key' => 'value' }, expected: { 'some_key' => 'value' } }, { - value: { :SomeKey => 'value' }, - expected: { :some_key => 'value' } + value: { SomeKey: 'value' }, + expected: { some_key: 'value' } }, { value: { 'SomeKey' => 'value' }, expected: { 'some_key' => 'value' } }, { - value: { :someKey => 'value' }, - expected: { :some_key => 'value' } + value: { someKey: 'value' }, + expected: { some_key: 'value' } }, { value: { 'someKey' => 'value' }, diff --git a/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb b/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb index 14e32535..9ba79e22 100644 --- a/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb +++ b/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb @@ -44,7 +44,7 @@ class JsonApiRendererTest < ActionDispatch::IntegrationTest Rails.application.routes.draw do ActiveSupport::Deprecation.silence do - match ':action', :to => TestController, via: [:get, :post] + match ':action', to: TestController, via: [:get, :post] end end end @@ -95,7 +95,7 @@ class JsonApiRendererTest < ActionDispatch::IntegrationTest Rails.application.routes.draw do ActiveSupport::Deprecation.silence do - match ':action', :to => TestController, via: [:get, :post] + match ':action', to: TestController, via: [:get, :post] end end end diff --git a/test/adapter/json/transform_test.rb b/test/adapter/json/transform_test.rb index acef81f9..e99c77a3 100644 --- a/test/adapter/json/transform_test.rb +++ b/test/adapter/json/transform_test.rb @@ -63,7 +63,7 @@ module ActiveModelSerializers def test_transform_dash mock_request(:dash) assert_equal({ - blog: { id: 1, :"special-attribute" => 'neat', articles: nil } + blog: { id: 1, "special-attribute": 'neat', articles: nil } }, @adapter.serializable_hash) end diff --git a/test/adapter/json_api/errors_test.rb b/test/adapter/json_api/errors_test.rb index fc44ffd0..cae7a5a6 100644 --- a/test/adapter/json_api/errors_test.rb +++ b/test/adapter/json_api/errors_test.rb @@ -23,7 +23,7 @@ module ActiveModelSerializers assert_equal serializable_resource.serializer_instance.object, @resource expected_errors_object = { - :errors => [ + errors: [ { source: { pointer: '/data/attributes/name' }, detail: 'cannot be nil' @@ -48,10 +48,10 @@ module ActiveModelSerializers assert_equal serializable_resource.serializer_instance.object, @resource expected_errors_object = { - :errors => [ - { :source => { :pointer => '/data/attributes/name' }, :detail => 'cannot be nil' }, - { :source => { :pointer => '/data/attributes/name' }, :detail => 'must be longer' }, - { :source => { :pointer => '/data/attributes/id' }, :detail => 'must be a uuid' } + errors: [ + { source: { pointer: '/data/attributes/name' }, detail: 'cannot be nil' }, + { source: { pointer: '/data/attributes/name' }, detail: 'must be longer' }, + { source: { pointer: '/data/attributes/id' }, detail: 'must be a uuid' } ] } assert_equal serializable_resource.as_json, expected_errors_object diff --git a/test/adapter/json_api/linked_test.rb b/test/adapter/json_api/linked_test.rb index b5d79ba0..159e2bec 100644 --- a/test/adapter/json_api/linked_test.rb +++ b/test/adapter/json_api/linked_test.rb @@ -370,7 +370,7 @@ module ActiveModelSerializers expected = [ type: 'nested-posts', id: '2', relationships: { - :"nested-posts" => { + "nested-posts": { data: [ { type: 'nested-posts', id: '1' }, { type: 'nested-posts', id: '2' } diff --git a/test/adapter/json_api/links_test.rb b/test/adapter/json_api/links_test.rb index 6be6ead6..3d22a36a 100644 --- a/test/adapter/json_api/links_test.rb +++ b/test/adapter/json_api/links_test.rb @@ -82,10 +82,10 @@ module ActiveModelSerializers } }, author: 'http://example.com/link_authors/1337', - :"link-authors" => 'http://example.com/link_authors', + "link-authors": 'http://example.com/link_authors', resource: 'http://example.com/resource', posts: 'http://example.com/link_authors/1337/posts', - :"yet-another" => 'http://example.com/resource/1337' + "yet-another": 'http://example.com/resource/1337' } assert_equal(expected, hash[:data][:links]) end diff --git a/test/adapter/json_api/resource_meta_test.rb b/test/adapter/json_api/resource_meta_test.rb index 5b58db9f..147309ae 100644 --- a/test/adapter/json_api/resource_meta_test.rb +++ b/test/adapter/json_api/resource_meta_test.rb @@ -54,7 +54,7 @@ module ActiveModel adapter: :json_api ).serializable_hash expected = { - :"comments-count" => @post.comments.count + "comments-count": @post.comments.count } assert_equal(expected, hash[:data][:meta]) end @@ -68,9 +68,9 @@ module ActiveModel adapter: :json_api ).serializable_hash expected = { - :data => [ - { :id => '1337', :type => 'posts', :meta => { :"comments-count" => 0 } }, - { :id => '1339', :type => 'posts', :meta => { :"comments-count" => 1 } } + data: [ + { id: '1337', type: 'posts', meta: { "comments-count": 0 } }, + { id: '1339', type: 'posts', meta: { "comments-count": 1 } } ] } assert_equal(expected, hash) diff --git a/test/adapter/json_api/transform_test.rb b/test/adapter/json_api/transform_test.rb index 217e6599..3b6e6849 100644 --- a/test/adapter/json_api/transform_test.rb +++ b/test/adapter/json_api/transform_test.rb @@ -76,7 +76,7 @@ module ActiveModelSerializers attributes: { title: 'Title 1', body: 'Body 1', - :"publish-at" => @publish_at + "publish-at": @publish_at }, relationships: { author: { @@ -91,10 +91,10 @@ module ActiveModelSerializers }, links: { self: 'http://example.com/posts/1337', - :"post-authors" => 'http://example.com/posts/1337/authors', - :"subscriber-comments" => 'http://example.com/posts/1337/comments' + "post-authors": 'http://example.com/posts/1337/authors', + "subscriber-comments": 'http://example.com/posts/1337/comments' }, - meta: { rating: 5, :"favorite-count" => 10 } + meta: { rating: 5, "favorite-count": 10 } } }, result) end @@ -185,7 +185,7 @@ module ActiveModelSerializers attributes: { title: 'Title 1', body: 'Body 1', - :"publish-at" => @publish_at + "publish-at": @publish_at }, relationships: { author: { @@ -200,10 +200,10 @@ module ActiveModelSerializers }, links: { self: 'http://example.com/posts/1337', - :"post-authors" => 'http://example.com/posts/1337/authors', - :"subscriber-comments" => 'http://example.com/posts/1337/comments' + "post-authors": 'http://example.com/posts/1337/authors', + "subscriber-comments": 'http://example.com/posts/1337/comments' }, - meta: { rating: 5, :"favorite-count" => 10 } + meta: { rating: 5, "favorite-count": 10 } } }, result) end @@ -332,14 +332,14 @@ module ActiveModelSerializers adapter = ActiveModelSerializers::Adapter::JsonApi.new(serializer, @options) result = adapter.serializable_hash expected_errors_object = { - :errors => [ + errors: [ { - :source => { :pointer => '/data/attributes/published-at' }, - :detail => 'must be in the future' + source: { pointer: '/data/attributes/published-at' }, + detail: 'must be in the future' }, { - :source => { :pointer => '/data/attributes/title' }, - :detail => 'must be longer' + source: { pointer: '/data/attributes/title' }, + detail: 'must be longer' } ] } @@ -357,14 +357,14 @@ module ActiveModelSerializers adapter.serializable_hash end expected_errors_object = { - :Errors => [ + Errors: [ { - :Source => { :Pointer => '/data/attributes/PublishedAt' }, - :Detail => 'must be in the future' + Source: { Pointer: '/data/attributes/PublishedAt' }, + Detail: 'must be in the future' }, { - :Source => { :Pointer => '/data/attributes/Title' }, - :Detail => 'must be longer' + Source: { Pointer: '/data/attributes/Title' }, + Detail: 'must be longer' } ] } @@ -382,14 +382,14 @@ module ActiveModelSerializers adapter.serializable_hash end expected_errors_object = { - :Errors => [ + Errors: [ { - :Source => { :Pointer => '/data/attributes/PublishedAt' }, - :Detail => 'must be in the future' + Source: { Pointer: '/data/attributes/PublishedAt' }, + Detail: 'must be in the future' }, { - :Source => { :Pointer => '/data/attributes/Title' }, - :Detail => 'must be longer' + Source: { Pointer: '/data/attributes/Title' }, + Detail: 'must be longer' } ] } @@ -408,14 +408,14 @@ module ActiveModelSerializers result = adapter.serializable_hash expected_errors_object = { - :errors => [ + errors: [ { - :source => { :pointer => '/data/attributes/published-at' }, - :detail => 'must be in the future' + source: { pointer: '/data/attributes/published-at' }, + detail: 'must be in the future' }, { - :source => { :pointer => '/data/attributes/title' }, - :detail => 'must be longer' + source: { pointer: '/data/attributes/title' }, + detail: 'must be longer' } ] } @@ -434,9 +434,9 @@ module ActiveModelSerializers result = adapter.serializable_hash expected_errors_object = { - :errors => [ - { :source => { :pointer => '/data/attributes/published_at' }, :detail => 'must be in the future' }, - { :source => { :pointer => '/data/attributes/title' }, :detail => 'must be longer' } + errors: [ + { source: { pointer: '/data/attributes/published_at' }, detail: 'must be in the future' }, + { source: { pointer: '/data/attributes/title' }, detail: 'must be longer' } ] } assert_equal expected_errors_object, result @@ -470,9 +470,9 @@ module ActiveModelSerializers result = adapter.serializable_hash expected_errors_object = { - :Errors => [ - { :Source => { :Pointer => '/data/attributes/PublishedAt' }, :Detail => 'must be in the future' }, - { :Source => { :Pointer => '/data/attributes/Title' }, :Detail => 'must be longer' } + Errors: [ + { Source: { Pointer: '/data/attributes/PublishedAt' }, Detail: 'must be in the future' }, + { Source: { Pointer: '/data/attributes/Title' }, Detail: 'must be longer' } ] } assert_equal expected_errors_object, result @@ -490,9 +490,9 @@ module ActiveModelSerializers result = adapter.serializable_hash expected_errors_object = { - :errors => [ - { :source => { :pointer => '/data/attributes/publishedAt' }, :detail => 'must be in the future' }, - { :source => { :pointer => '/data/attributes/title' }, :detail => 'must be longer' } + errors: [ + { source: { pointer: '/data/attributes/publishedAt' }, detail: 'must be in the future' }, + { source: { pointer: '/data/attributes/title' }, detail: 'must be longer' } ] } assert_equal expected_errors_object, result diff --git a/test/serializable_resource_test.rb b/test/serializable_resource_test.rb index 69849ac5..3df71a17 100644 --- a/test/serializable_resource_test.rb +++ b/test/serializable_resource_test.rb @@ -51,8 +51,8 @@ module ActiveModelSerializers } ) expected_response_document = { - :errors => [ - { :source => { :pointer => '/data/attributes/name' }, :detail => 'must be awesome' } + errors: [ + { source: { pointer: '/data/attributes/name' }, detail: 'must be awesome' } ] } assert_equal serializable_resource.as_json(options), expected_response_document @@ -72,8 +72,8 @@ module ActiveModelSerializers } ) expected_response_document = { - :errors => [ - { :source => { :pointer => '/data/attributes/title' }, :detail => 'must be amazing' } + errors: [ + { source: { pointer: '/data/attributes/title' }, detail: 'must be amazing' } ] } assert_equal serializable_resource.as_json(options), expected_response_document diff --git a/test/serializers/associations_test.rb b/test/serializers/associations_test.rb index 218e0d72..9032f31c 100644 --- a/test/serializers/associations_test.rb +++ b/test/serializers/associations_test.rb @@ -143,12 +143,12 @@ module ActiveModel ) actual = serializable(post, adapter: :attributes, serializer: InlineAssociationTestPostSerializer).as_json expected = { - :comments => [ - { :id => 1, :contents => 'first comment' }, - { :id => 2, :contents => 'last comment' } + comments: [ + { id: 1, contents: 'first comment' }, + { id: 2, contents: 'last comment' } ], - :last_comments => [ - { :id => 2, :contents => 'last comment' } + last_comments: [ + { id: 2, contents: 'last comment' } ] } diff --git a/test/serializers/attribute_test.rb b/test/serializers/attribute_test.rb index 5a914495..b0f97763 100644 --- a/test/serializers/attribute_test.rb +++ b/test/serializers/attribute_test.rb @@ -22,7 +22,7 @@ module ActiveModel inherited_klass = Class.new(AlternateBlogSerializer) blog_serializer = inherited_klass.new(@blog) adapter = ActiveModelSerializers::Adapter::Attributes.new(blog_serializer) - assert_equal({ :id => 1, :title => 'AMS Hints' }, adapter.serializable_hash) + assert_equal({ id: 1, title: 'AMS Hints' }, adapter.serializable_hash) end def test_multiple_calls_with_the_same_attribute diff --git a/test/serializers/fieldset_test.rb b/test/serializers/fieldset_test.rb index 38222761..5b99d57a 100644 --- a/test/serializers/fieldset_test.rb +++ b/test/serializers/fieldset_test.rb @@ -5,7 +5,7 @@ module ActiveModel class FieldsetTest < ActiveSupport::TestCase def test_fieldset_with_hash fieldset = ActiveModel::Serializer::Fieldset.new('post' => %w(id title), 'comment' => ['body']) - expected = { :post => [:id, :title], :comment => [:body] } + expected = { post: [:id, :title], comment: [:body] } assert_equal(expected, fieldset.fields) end