Sha256: ef531adb505b021a03be2b7994dcc6384a6d38af78ee81e9dd8fc2abaca52cd4

Contents?: true

Size: 1.67 KB

Versions: 5

Compression:

Stored size: 1.67 KB

Contents

require 'rails'
require 'rails/generators/active_record'

module Coalla
  module Cms
    module News

      class ScaffoldGenerator < ::ActiveRecord::Generators::Base
        argument :name, type: :string, default: "Article"
        source_root File.expand_path("../templates", __FILE__)

        def setup_properties
          @class_name = name
          @collection_name = name.pluralize.underscore
          @instance_name = name.underscore
          @announce_image_uploader_name = "#{name}ImageUploader"
        end

        def create_model
          template "entity.rb.erb", "app/models/#{name.underscore}.rb"
          template "entity_image_uploader.rb.erb", "app/uploaders/#{name.underscore}_image_uploader.rb"
        end

        def create_model_migration
          @table_name = name.pluralize.underscore
          migration_template "migration.rb.erb", "db/migrate/create_#{name.pluralize.underscore}.rb"
        end

        def create_controller
          template 'entity_controller_template.rb.erb', "app/controllers/admin/#{name.pluralize.underscore}_controller.rb"
        end

        def add_routes
          sentinel = /namespace :admin do\s*$/
          routing_code = "  resources :#{name.pluralize.underscore}"
          inject_into_file 'config/routes.rb', "\n  #{routing_code}", {:after => sentinel, :verbose => false}
        end

        def create_views
          target_views_folder = "app/views/admin/#{@collection_name}"
          empty_directory target_views_folder
          %w(index new edit _form).each do |view_name|
            template "views/#{view_name}.haml.erb", "#{target_views_folder}/#{view_name}.haml"
          end
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
coalla-cms-0.4.2.0 lib/generators/coalla/cms/news/scaffold_generator.rb
coalla-cms-0.5.2.4 lib/generators/coalla/cms/news/scaffold_generator.rb
coalla-cms-0.4.4.3 lib/generators/coalla/cms/news/scaffold_generator.rb
coalla-cms-0.5.1.9 lib/generators/coalla/cms/news/scaffold_generator.rb
coalla-cms-0.5.1.8 lib/generators/coalla/cms/news/scaffold_generator.rb