From a2d73faa63355e897873b4813b08d2db5f4a3617 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Mon, 30 Apr 2012 17:18:42 -0700 Subject: [PATCH] Generate a serializer with each new model --- lib/active_model_serializers.rb | 11 +++++++++++ lib/generators/resource_override.rb | 13 +++++++++++++ lib/generators/serializer/serializer_generator.rb | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 lib/generators/resource_override.rb 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"