Sha256: c1a87cbe6c98d37bd8c166b6ebf323a3b06f8325dfa621326bbbebd13db7696e

Contents?: true

Size: 1.83 KB

Versions: 5

Compression:

Stored size: 1.83 KB

Contents

require 'rails/generators'
require 'rails/generators/migration'
module Redactor
  module Generators
    class InstallGenerator < ::Rails::Generators::Base
      include ::Rails::Generators::Migration
      desc "Generates migration for Tag and Tagging models"

      class_option :orm, :type => :string, :default => "active_record",
	:desc => "Backend processor for upload support"

      class_option :backend, :type => :string, :default => 'carrierwave',
	:desc => "carrierwave(default)"

      def self.source_root
	@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
      end

      def self.next_migration_number(dirname)
	Time.now.strftime("%Y%m%d%H%M%S")
      end

      def mount_engine
	route "mount RedactorRails::Engine => '/redactor_rails'"
      end

      def create_models
	[:asset, :picture, :attachment_file].each do |filename|
	  template "#{generator_dir}/redactor/#{filename}.rb",
	  File.join('app/models', redactor_dir, "#{filename}.rb")
	end

	if backend == "carrierwave"
	  template "#{uploaders_dir}/uploaders/redactor_rails_attachment_file_uploader.rb",
	    File.join("app/uploaders", "redactor_rails_attachment_file_uploader.rb")

	  template "#{uploaders_dir}/uploaders/redactor_rails_picture_uploader.rb",
	    File.join("app/uploaders", "redactor_rails_picture_uploader.rb")
	end
      end

      def create_migration
	migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_redactor_assets.rb")
      end

      protected

      def redactor_dir
	'redactor_rails'
      end

      def generator_dir
	@generator_dir ||= [orm, backend].join('/')
      end

      def uploaders_dir
	@uploaders_dir ||= ['base', 'carrierwave'].join('/')
      end

      def orm
	options[:orm] || "active_record"
      end

      def backend
	options[:backend] || "carrierwave"
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
redactor-rails-0.2.3 lib/generators/redactor/install_generator.rb
redactor-rails-0.2.1 lib/generators/redactor/install_generator.rb
redactor-rails-0.2.0 lib/generators/redactor/install_generator.rb
redactor-rails-0.1.1 lib/generators/redactor/install_generator.rb
redactor-rails-0.1.0 lib/generators/redactor/install_generator.rb