Sha256: 556e474aa388a48a30096b559da6f381f23aae9339b7fdf97351a57bc85beb01

Contents?: true

Size: 1.61 KB

Versions: 9

Compression:

Stored size: 1.61 KB

Contents

require "generators/rich_cms"

module Rich
  module Generators

    class CmsContentGenerator < ::RichCms::Generators::Base

      include Rails::Generators::Migration
      include RichCms::Generators::Migration

      desc         "Creates Rich-CMS content model and migration and also registers content to Rich-CMS."
      argument     :model_name, :type => :string , :default => "cms_content"
      class_option :migrate   , :type => :boolean, :default => false, :aliases => "-m", :desc => "Run 'rake db:migrate' after generating model and migration"

      def register_content
        filename = "config/initializers/enrichments.rb"
        line     = "\nRich::Cms::Engine.register(\".#{model_file_name}\", {:class_name => \"#{model_class_name}\"})"

        create_file filename unless File.exists?(filename)
        return if File.open(filename).readlines.collect(&:strip).include? line.strip

        File.open(filename, "a+") do |file|
          file << line
        end
      end

      def generate_model
        invoke "active_record:model", [model_file_name], :migration => false
      end

      def generate_migration
        migration_template "migration.rb", "db/migrate/create_#{table_name}"
      end

      def migrate
        rake "db:migrate" if options[:migrate]
      end

    protected

      def model_file_name
        model_name.underscore
      end

      def model_class_name
        model_name.classify
      end

      def migration_class_name
        migration_file_name.pluralize.camelize
      end

      def table_name
        model_file_name.underscore.gsub("/", "_").pluralize
      end

    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rich_cms-3.0.2 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-3.0.1 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-3.0.0 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.7 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.6 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.5 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.4 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.3 lib/generators/rich/cms_content/cms_content_generator.rb
rich_cms-2.1.2 lib/generators/rich/cms_content/cms_content_generator.rb