class Rseed::Generators::ConverterGenerator

Public Class Methods

source_root() click to toggle source
# File lib/generators/rseed/converter.rb, line 10
def self.source_root
  @source_root ||= File.join(File.dirname(__FILE__), 'templates')
end

Public Instance Methods

create_files() click to toggle source
# File lib/generators/rseed/converter.rb, line 14
def create_files
  converter_dir = File.join("app", "rseed")
  seed_dir = File.join("db", "rseed")
  Dir.mkdir(converter_dir) unless File.directory?(converter_dir)
  @model_name = file_name
  @class_name = class_name
  @model = eval(@class_name)
  @columns = @model.columns_hash.except "id", "created_at", "updated_at"
  @relationships = {}
  @model.reflect_on_all_associations.each do |relationship|
    if relationship.macro == :belongs_to
      @relationships[relationship.name] = relationship
      @columns.delete(relationship.foreign_key)
    end
  end
  @converter_name = options.converter_name || @class_name
  @match_attribute = options.attribute
  @minimal = options.minimal

  template 'converter.rb.erb', File.join(converter_dir, "#{@converter_name.underscore}_converter.rb")
  Dir.mkdir(seed_dir) unless File.directory?(seed_dir)
  template 'data.csv.erb', File.join(seed_dir, "#{@converter_name.underscore.pluralize}.csv")
end