class Natra::Generators::ModelGenerator
Attributes
class_name[R]
file_name[R]
migration_class_name[R]
migration_name[R]
model_name[R]
table_name[R]
Public Class Methods
source_root()
click to toggle source
# File lib/natra/generators/model/model_generator.rb, line 15 def self.source_root File.dirname(__FILE__) end
Public Instance Methods
create_migration()
click to toggle source
# File lib/natra/generators/model/model_generator.rb, line 41 def create_migration return unless options[:migration] migration_files = Dir.entries('db/migrate').reject { |path| File.directory? path } if duplicate = migration_files.find { |file| file.include?(migration_name) } say_status :identical, "db/migrate/#{duplicate}", :blue else version = Time.now.utc.strftime('%Y%m%d%H%M%S') migration_file_name = "#{version}_#{migration_name}.rb" template 'migration.rb.erb', File.join('db/migrate', migration_file_name) end end
create_model()
click to toggle source
# File lib/natra/generators/model/model_generator.rb, line 33 def create_model unless model_name == name say "[WARNING] The model name '#{name}' was recognized as a plural, using the singular '#{model_name}' instead." end template 'model.rb.erb', File.join('app/models', "#{file_name}.rb") end
setup()
click to toggle source
# File lib/natra/generators/model/model_generator.rb, line 19 def setup @model_name = name.singularize @class_name = model_name.camel_case @file_name = model_name.underscore @table_name = file_name.pluralize @migration_name = "create_#{table_name}" @migration_class_name = migration_name.camel_case attributes.map! do |attribute| field = attribute.split(':') { name: field[0], type: field[1] || 'string' } end end