Class: Rseed::Generators::ConverterGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/rseed/converter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



10
11
12
# File 'lib/generators/rseed/converter.rb', line 10

def self.source_root
  @source_root ||= File.join(File.dirname(__FILE__), 'templates')
end

Instance Method Details

#create_filesObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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