Sha256: f5e2c72a15dc71034289623c70d25b826ceeda80ebcdd3a3c74d3fa9099aba8a

Contents?: true

Size: 1.97 KB

Versions: 30

Compression:

Stored size: 1.97 KB

Contents

require 'generators/ninja_model'

module NinjaModel
  module Generators
    class ScaffoldGenerator < ModelGenerator
      argument :attributes, :type => :array, :default => [], :banner => 'field:type field:type'

      def initialize(*args, &block)
        super

        @controller_actions = []
        actions.each do |action|

        end
      end

      def create_controller
        template 'controller.rb', "app/controllers/#{plural_name}_controller.rb"
        unless options.skip_helper?
          template 'helper.rb', "app/helpers/#{plural_name}_helper.rb"File.join(plugin_path, 'app/helpers',
                                          "#{plural_file_path}_helper.rb")
        end

        controller_actions.each do |action|
          if %w[index show new edit].include?(action)
            template "views/#{action}.html.erb", File.join(plugin_path,
                                                           "app/views/#{plural_name}/#{action}.html.erb")


          end
        end
        template 'views/_form.html.erb', File.join(plugin_path, "app/views/#{plural_name}/_form.html.erb")

        if class_path.length < 0
          plugin_route("resources #{plural_file_name.to_sym.inspect},
                       :controller => '#{(class_path + [plural_name]).join('/')}")
        else
          plugin_route("resources #{plural_name.to_sym.inspect}")
        end
      end

      protected

      attr_reader :controller_actions

      def controller_methods(dir)
        controller_actions.map do |action|
          read_template("#{dir}/#{action}.rb")
        end.join("\n").strip
      end

      def read_template(relative_path)
        ERB.new(File.read(find_in_source_paths(relative_path)), nil, '-').result(binding)
      end

      def all_actions
        %w[index show new create edit update destroy]
      end

      def action?(name)
        controller_actions.include? name.to_s
      end

      def actions?(*names)
        names.all? { |name| action? name }
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
ninja-model-1.0.5 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-1.0.4 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-1.0.3 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-1.0.2 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-1.0.1 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-1.0.0 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.6 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.5 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.4 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.3 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.2 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.1 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.9.0 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.8.1 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.8.0 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.7.3 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.7.2 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.7.1 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.7.0 lib/generators/ninja_model/scaffold/scaffold_generator.rb
ninja-model-0.6.2 lib/generators/ninja_model/scaffold/scaffold_generator.rb