Sha256: 8da368575c841105ee41ed2c346ad8b6df14fc049be6f509d87a3940963d541e

Contents?: true

Size: 1.45 KB

Versions: 3

Compression:

Stored size: 1.45 KB

Contents

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

module Coalla
  module Cms
    module Image
      class MountGenerator < ActiveRecord::Generators::Base
        argument :name, type: :string
        argument :field, type: :string
        class_option :prefixed, type: :boolean, default: false
        source_root File.expand_path("../templates", __FILE__)

        def setup_names
          @class_name = name
          @image_field = field
          @prefixed = options.prefixed?
        end

        def setup_fields
          @properties = {
              'file_name' => 'text',
              'content_type' => 'text',
              'size' => 'integer',
              'description' => 'text',

              'width' => 'integer',
              'height' => 'integer',

              'watermarked' => 'boolean',
              'source' => 'text'
          }
        end

        def copy_files
          migration_template "mount/migration.rb.erb", "db/migrate/add_#{@image_field}_field_to_#{@class_name.constantize.table_name}.rb"
          template "mount/uploader.rb.erb", "app/uploaders/#{@class_name.underscore}_#{@image_field}_uploader.rb"
        end

        def mount_uploader
          inject_into_class "app/models/#{@class_name.underscore}.rb", @class_name.constantize do
            "  mount_uploader :#{@image_field}, #{@class_name}#{@image_field.camelize}Uploader#{@prefixed? ", prefixed: true" : ""}\n"
          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/image/mount_generator.rb
coalla-cms-0.6.1.1 lib/generators/coalla/cms/image/mount_generator.rb
coalla-cms-0.6.0.9 lib/generators/coalla/cms/image/mount_generator.rb