Sha256: 0d77bd5a3aa1f23a547bd87f7a68e6b4a9623619f2b1c8e10879c526fe88ab40

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

module Rails
  module Generators
    class SerializerGenerator < NamedBase
      source_root File.expand_path("../templates", __FILE__)
      check_class_collision suffix: "Serializer"

      argument :attributes, type: :array, default: [], banner: "field:type field:type"

      class_option :parent, type: :string, desc: "The parent class for the generated serializer"

      def create_serializer_file
        template 'serializer.rb', File.join('app/serializers', class_path, "#{file_name}_serializer.rb")
      end

      private

      def attributes_names
        [:id] + attributes.select { |attr| !attr.reference? }.map { |a| a.name.to_sym }
      end

      def association_names
        attributes.select { |attr| attr.reference? }.map { |a| a.name.to_sym }
      end

      def parent_class_name
        if options[:parent]
          options[:parent]
        elsif defined?(::ApplicationSerializer)
          "ApplicationSerializer"
        else
          "ActiveModel::Serializer"
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gpi-active_model_serializers-0.8.5 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.5.alpha1 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4.alpha5 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4.alpha4 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4.alpha3 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4.alpha2 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.4.alpha1 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.3.rc1 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.3.alpha2 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.3.alpha1 lib/generators/serializer/serializer_generator.rb
gpi-active_model_serializers-0.8.2 lib/generators/serializer/serializer_generator.rb