Sha256: dc3739d0254be5b0cad31901f7682f777bb438d2f9538f06b6873a4f972f5805

Contents?: true

Size: 1.3 KB

Versions: 3

Compression:

Stored size: 1.3 KB

Contents

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

module Coalla
  module Cms
    module Slider
      class InitGenerator < ActiveRecord::Generators::Base
        argument :name, type: :string, default: 'SliderImage'
        source_root File.expand_path('../templates', __FILE__)

        def setup
          @class_name = name
          @uploader_name = "#{@class_name}Uploader"
          @table_name = @class_name.pluralize.underscore
        end

        def create_model
          template 'slider_image.rb.erb', "app/models/#{@class_name.underscore}.rb"
          template 'slider_image_uploader.rb.erb', "app/uploaders/#{@uploader_name.underscore}.rb"
        end

        def create_upload_migration
          migration_template 'migration.rb.erb', "db/migrate/create_#{@table_name}.rb"
        end

        def create_upload_controller
          template 'slider_upload_controller.rb.erb', "app/controllers/admin/#{@class_name.pluralize.underscore}_controller.rb"

          sentinel = /namespace :admin do\s*$/
          routing_code = "  resource :#{@class_name.underscore}, only: :create, as: :upload_#{@class_name.underscore}"
          in_root do
            inject_into_file 'config/routes.rb', "\n  #{routing_code}", {:after => sentinel, :verbose => false}
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
coalla-cms-0.7.0.0 lib/generators/coalla/cms/slider/init_generator.rb
coalla-cms-0.6.1.1 lib/generators/coalla/cms/slider/init_generator.rb
coalla-cms-0.6.0.9 lib/generators/coalla/cms/slider/init_generator.rb