Sha256: f06fad7acaa89a2c5163bd3bf218326c9c0a8a834a5088afa76ba37faaa3bb52

Contents?: true

Size: 994 Bytes

Versions: 2

Compression:

Stored size: 994 Bytes

Contents

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

class EavMigrationGenerator < ActiveRecord::Generators::Base

  source_root File.expand_path "../templates", __FILE__
  # small hack to override NamedBase displaying NAME
  argument :name, :required => true, :type => :string, :banner => "<ModelName>"
  argument :hash_name, :required => true, :type => :string, :banner => "<hash_name>"
  argument :custom_table_name, :required => false, :type => :string, :banner => "table_name"

  def create_eav_migration
    p name
    migration_template "eav_migration.erb", "db/migrate/#{migration_file_name}.rb"
  end

  def migration_file_name
    "create_" + table_name
  end

  def migration_name
    migration_file_name.camelize
  end

  def table_name
    custom_table_name || "#{name}_#{hash_name}".underscore.gsub(/\//, '_')
  end

  def model_name
    name
  end

  def model_association_name
    model_name.underscore.gsub(/\//,'_')
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eav_hashes-1.0.1 lib/generators/eav_migration/eav_migration.rb
eav_hashes-1.0.0 lib/generators/eav_migration/eav_migration.rb