Sha256: 68037e0e929073be161010edd53f52e48b1e44a78b7d6dac23d225d79773dd8f

Contents?: true

Size: 1.66 KB

Versions: 3

Compression:

Stored size: 1.66 KB

Contents

# This will generate an ORM 'model' for your application based on the specified ORM you're using. 
# 
# Example without columns:
#   rake generate:model name=user
# 
# app/models/user.rb:
#   class User
#     include DataMapper::Resource
#     
#   end
# db/migrations/<number>_create_users.rb:
#   migration <number>, :create_users do
#     up do
#     end
#   
#     down do
#     end
#   end
# 
# Example with columns:
#   rake generate:model name=user cols=username:string,email_address:string,created_at:datetime,updated_at:datetime
# 
# app/models/user.rb:
#   class User
#     include DataMapper::Resource
# 
#     property :username, String
#     property :email_address, String
#     property :created_at, DateTime
#     property :updated_at, DateTime
#   end
# db/migrations/<number>_create_users.rb:
#   migration <number>, :create_users do
#     up do
#       create_table :users do
#         column :username, String, :size => 50
#         column :email, String, :size => 50
#         column :created_at, DateTime
#         column :updated_at, DateTime
#       end
#     end
#   
#     down do
#       drop_table :users
#     end
#   end
class ModelGenerator < Genosaurus
  
  require_param :name
  
  def setup # :nodoc:
    @name_singular = param(:name).singular.underscore
    @name_plural = @name_singular.plural.underscore
    @name_singular_camel = @name_singular.camelcase
    @name_plural_camel = @name_plural.camelcase
  end

  def after_generate # :nodoc:
    MigrationGenerator.run(@options.merge({"name" => "create_#{@name_plural}"}))
  end
  
  def migration_columns # :nodoc:
    [Mack::Genosaurus::Orm::ModelColumn.new(param(:name), "id:serial"), columns].flatten
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mack-data_mapper-0.8.2 lib/mack-data_mapper/model_generator/model_generator.rb
mack-data_mapper-0.8.3 lib/mack-data_mapper/model_generator/model_generator.rb
mack-data_mapper-0.8.3.1 lib/mack-data_mapper/model_generator/model_generator.rb