Class: Mongoid::Generators::ModelGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/mongoid/model/model_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ ModelGenerator

Returns a new instance of ModelGenerator.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/mongoid/model/model_generator.rb', line 15

def initialize(*args, &block)
  super

  @model_attributes = []

  attributes.each do |arg|
    if arg.include?(':')
      @model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
    else
      @model_attributes << Rails::Generators::GeneratedAttribute.new(arg, "string")            
    end
  end

  @model_attributes.uniq!

  if @model_attributes.empty?
    if model_exists?
      model_columns_for_attributes.each do |column|
        @model_attributes << Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
      end
    else
      @model_attributes << Rails::Generators::GeneratedAttribute.new('name', 'string')
    end
  end
end

Instance Attribute Details

#model_attributesObject

Returns the value of attribute model_attributes.



13
14
15
# File 'lib/generators/mongoid/model/model_generator.rb', line 13

def model_attributes
  @model_attributes
end

Class Method Details



70
71
72
# File 'lib/generators/mongoid/model/model_generator.rb', line 70

def self.banner
  "#{$0} mongoid:#{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
end

.source_rootObject



66
67
68
# File 'lib/generators/mongoid/model/model_generator.rb', line 66

def self.source_root
  @source_root ||= File.expand_path('../templates', __FILE__)
end

Instance Method Details

#create_model_fileObject



41
42
43
# File 'lib/generators/mongoid/model/model_generator.rb', line 41

def create_model_file
  template 'model.rb', "app/models/#{singular_name}.rb"        
end