Sha256: 9bcc18848b523efb099b0d7043e4cfa6a5d902c395304b738ee153e79a51c0d4

Contents?: true

Size: 1.88 KB

Versions: 22

Compression:

Stored size: 1.88 KB

Contents

require 'rails'

module Alchemy
  module Generators
    class EssenceGenerator < ::Rails::Generators::Base
      desc "This generator generates an Alchemy essence for you."
      argument :essence_name, :banner => "YourEssenceName"
      source_root File.expand_path('templates', File.dirname(__FILE__))

      def init
        @essence_name = Alchemy::Content.normalize_essence_type(essence_name).underscore
        @essence_view_path = Rails.root.join('app/views/alchemy/essences')
      end

      def create_model
        invoke("model", [@essence_name])
      end

      def create_directory
        empty_directory @essence_view_path
      end

      def act_as_essence
        essence_class_file = Rails.root.join('app/models', "#{@essence_name}.rb")
        essence_class = @essence_name.classify
        inject_into_class essence_class_file, essence_class, <<-CLASSMETHOD
  acts_as_essence(
    # Your options:
    #
    # :ingredient_column =>   Symbol      # Specifies the column name you use for storing the content in the database. [Default] :body
    # :validate_column =>     Symbol      # Which column should be validated. [Default] ingredient_column
    # :preview_text_column => Symbol      # Specifies the column for the preview_text method. [Default] ingredient_column
    # :preview_text_method => Symbol      # A method called on ingredient to get the preview text.
  )
CLASSMETHOD
      end

      def copy_templates
        template "view.html.erb", "#{@essence_view_path}/_#{@essence_name}_view.html.erb"
        template "editor.html.erb", "#{@essence_view_path}/_#{@essence_name}_editor.html.erb"
      end

      def show_todo
        say "\nPlease open the generated migration file and add your columns to your table."
        say "Then run 'rake db:migrate' to update your database."
        say "Also check the generated view files and alter them to fit your needs."
      end

    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
alchemy_cms-2.6.3 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.6.2.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.6.2 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.6.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.6.0 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.6.0.rc5 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.3.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.3 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.2.2 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.2.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.2 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.0 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.0.rc3 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.0.b9 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.4.1 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.0.b5 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.5.0.b2 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.4.0 lib/rails/generators/alchemy/essence/essence_generator.rb
alchemy_cms-2.4.rc4 lib/rails/generators/alchemy/essence/essence_generator.rb