Sha256: d095002efac5ecbb35f5a36e7605b78cfbddda89599448a0a3da63ab9b864687

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

class RichAuthlogicUserGenerator < Rails::Generator::Base
  def initialize(runtime_args, runtime_options = {})
    super
    @name = @args.first || "user"
  end

  def manifest
    record do |m|
      m.directory                          "app/models"
      m.template               "model.rb", "app/models/#{model_file_name}.rb"
      m.template             "session.rb", "app/models/#{model_file_name}_session.rb"
      m.template              "config.rb", "config/initializers/enrichments.rb", {:collision => :skip}
      m.migration_template "migration.rb", "db/migrate", :migration_file_name => migration_file_name
    end
  end

  def after_generate
    File.open(destination_path("config/initializers/enrichments.rb"), "a+") do |file|
      file << "\nRich::Cms::Engine.authenticate(:authlogic, {:class_name => \"#{model_class_name}\", :identifier => :email})"
    end

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

  def model_file_name
    @name.underscore
  end

  def model_class_name
    @name.classify
  end

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

  def migration_file_name
    "create_#{table_name}"
  end

  def migration_class_name
    migration_file_name.camelize
  end

protected

  def add_options!(opt)
    opt.separator ""
    opt.separator "Options:"
    opt.on("-m", "--migrate", "Run 'rake db:migrate' after generating model and migration.") { options[:migrate] = true }
  end

  def banner
    <<-EOS
Creates Authlogic model and migration and also registers authenticated model to Rich-CMS.

USAGE: #{$0} #{spec.name} [model_name]
EOS
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rich_cms-2.1.1 rails_generators/rich_authlogic_user/rich_authlogic_user_generator.rb
rich_cms-2.1.0 rails_generators/rich_authlogic_user/rich_authlogic_user_generator.rb