Sha256: f6ff25fea27af255dd7507830ad03d740ba64a031537dd6035e37ba46267c966

Contents?: true

Size: 1.37 KB

Versions: 40

Compression:

Stored size: 1.37 KB

Contents

require 'rails/generators/named_base'
require 'rails/generators/resource_helpers'

module Rails
  module Generators
    class JbuilderGenerator < NamedBase # :nodoc:
      include Rails::Generators::ResourceHelpers

      source_root File.expand_path('../templates', __FILE__)

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

      def create_root_folder
        path = File.join('app/views', controller_file_path)
        empty_directory path unless File.directory?(path)
      end

      def copy_view_files
        %w(index show).each do |view|
          filename = filename_with_extensions(view)
          template filename, File.join('app/views', controller_file_path, filename)
        end
      end


      protected
        def attributes_names
          [:id] + super
        end

        def filename_with_extensions(name)
          [name, :json, :jbuilder] * '.'
        end

        def attributes_list_with_timestamps
          attributes_list(attributes_names + %w(created_at updated_at))
        end

        def attributes_list(attributes = attributes_names)
          if self.attributes.any? {|attr| attr.name == 'password' && attr.type == :digest}
            attributes = attributes.reject {|name| %w(password password_confirmation).include? name}
          end

          attributes.map { |a| ":#{a}"} * ', '
        end
    end
  end
end

Version data entries

40 entries across 40 versions & 4 rubygems

Version Path
jbuilder-2.5.0 lib/generators/rails/jbuilder_generator.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/jbuilder-2.4.1/lib/generators/rails/jbuilder_generator.rb
jbuilder-2.4.1 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.4.0 lib/generators/rails/jbuilder_generator.rb
sc_core-0.0.7 test/dummy/vendor/bundle/ruby/2.2.0/gems/jbuilder-2.3.2/lib/generators/rails/jbuilder_generator.rb
jbuilder-2.3.2 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.3.1 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.3.0 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.16 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.14 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.13 lib/generators/rails/jbuilder_generator.rb
jwtbuilder-2.2.12.jwt lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.12 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.11 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.10 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.9 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.8 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.7 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.6 lib/generators/rails/jbuilder_generator.rb
jbuilder-2.2.5 lib/generators/rails/jbuilder_generator.rb