diff --git a/lib/active_model_serializers.rb b/lib/active_model_serializers.rb index c13e14a2..00cdec54 100644 --- a/lib/active_model_serializers.rb +++ b/lib/active_model_serializers.rb @@ -3,6 +3,17 @@ require "active_support/core_ext/string/inflections" require "active_model" require "active_model/serializer" +if defined?(Rails) + module ActiveModel + class Railtie < Rails::Railtie + generators do |app| + Rails::Generators.configure!(app.config.generators) + require "generators/resource_override" + end + end + end +end + module ActiveModel::SerializerSupport extend ActiveSupport::Concern diff --git a/lib/generators/resource_override.rb b/lib/generators/resource_override.rb new file mode 100644 index 00000000..1b48a12e --- /dev/null +++ b/lib/generators/resource_override.rb @@ -0,0 +1,13 @@ +require "rails/generators" +require "rails/generators/rails/resource/resource_generator" + +module Rails + module Generators + ResourceGenerator.class_eval do + def add_serializer + invoke "serializer" + end + end + end +end + diff --git a/lib/generators/serializer/serializer_generator.rb b/lib/generators/serializer/serializer_generator.rb index 6ea4e500..8192cecb 100644 --- a/lib/generators/serializer/serializer_generator.rb +++ b/lib/generators/serializer/serializer_generator.rb @@ -30,7 +30,7 @@ module Rails # Only works on 3.2 # elsif (n = Rails::Generators.namespace) && n.const_defined?(:ApplicationSerializer) # "ApplicationSerializer" - elsif Object.const_defined?(:ApplicationSerializer) + elsif defined?(:ApplicationSerializer) "ApplicationSerializer" else "ActiveModel::Serializer"