diff --git a/lib/active_model_serializers/railtie.rb b/lib/active_model_serializers/railtie.rb index 5a04b536..6d2ddfb6 100644 --- a/lib/active_model_serializers/railtie.rb +++ b/lib/active_model_serializers/railtie.rb @@ -2,13 +2,14 @@ require 'rails/railtie' module ActiveModelSerializers class Railtie < Rails::Railtie + config.to_prepare do + ActiveModel::Serializer.serializers_cache.clear + end + initializer 'active_model_serializers.action_controller' do ActiveSupport.on_load(:action_controller) do ActiveSupport.run_load_hooks(:active_model_serializers, ActiveModelSerializers) include ::ActionController::Serialization - ActionDispatch::Reloader.to_prepare do - ActiveModel::Serializer.serializers_cache.clear - end end end @@ -25,9 +26,8 @@ module ActiveModelSerializers end end - initializer 'active_model_serializers.generators' do |app| - app.load_generators - require 'generators/serializer/resource_override' + generators do + require 'generators/rails/resource_override' end if Rails.env.test? diff --git a/lib/generators/serializer/USAGE b/lib/generators/rails/USAGE similarity index 100% rename from lib/generators/serializer/USAGE rename to lib/generators/rails/USAGE diff --git a/lib/generators/serializer/resource_override.rb b/lib/generators/rails/resource_override.rb similarity index 72% rename from lib/generators/serializer/resource_override.rb rename to lib/generators/rails/resource_override.rb index 6da61166..ebcba8df 100644 --- a/lib/generators/serializer/resource_override.rb +++ b/lib/generators/rails/resource_override.rb @@ -4,9 +4,7 @@ require 'rails/generators/rails/resource/resource_generator' module Rails module Generators class ResourceGenerator - def add_serializer - invoke 'serializer' - end + hook_for :serializer, default: true, boolean: true end end end diff --git a/lib/generators/serializer/serializer_generator.rb b/lib/generators/rails/serializer_generator.rb similarity index 84% rename from lib/generators/serializer/serializer_generator.rb rename to lib/generators/rails/serializer_generator.rb index 7a65fe77..c564a7c9 100644 --- a/lib/generators/serializer/serializer_generator.rb +++ b/lib/generators/rails/serializer_generator.rb @@ -15,11 +15,11 @@ module Rails private def attributes_names - [:id] + attributes.select { |attr| !attr.reference? }.map { |a| a.name.to_sym } + [:id] + attributes.reject(&:reference?).map! { |a| a.name.to_sym } end def association_names - attributes.select { |attr| attr.reference? }.map { |a| a.name.to_sym } + attributes.select(&:reference?).map! { |a| a.name.to_sym } end def parent_class_name @@ -34,4 +34,3 @@ module Rails end end end - diff --git a/lib/generators/serializer/templates/serializer.rb.erb b/lib/generators/rails/templates/serializer.rb.erb similarity index 100% rename from lib/generators/serializer/templates/serializer.rb.erb rename to lib/generators/rails/templates/serializer.rb.erb diff --git a/test/generators/scaffold_controller_generator_test.rb b/test/generators/scaffold_controller_generator_test.rb index aabe6122..183bb4f6 100644 --- a/test/generators/scaffold_controller_generator_test.rb +++ b/test/generators/scaffold_controller_generator_test.rb @@ -1,4 +1,5 @@ require 'test_helper' +require 'generators/rails/resource_override' class ResourceGeneratorTest < Rails::Generators::TestCase destination File.expand_path('../../../tmp/generators', __FILE__) diff --git a/test/generators/serializer_generator_test.rb b/test/generators/serializer_generator_test.rb index 5395dff6..562b9338 100644 --- a/test/generators/serializer_generator_test.rb +++ b/test/generators/serializer_generator_test.rb @@ -1,5 +1,6 @@ require 'test_helper' -require 'generators/serializer/serializer_generator' +require 'generators/rails/resource_override' +require 'generators/rails/serializer_generator' class SerializerGeneratorTest < Rails::Generators::TestCase destination File.expand_path('../../../tmp/generators', __FILE__)