Skip to content

Instantly share code, notes, and snippets.

@jnicklas
Created August 4, 2008 22:05
Show Gist options
  • Save jnicklas/3982 to your computer and use it in GitHub Desktop.
Save jnicklas/3982 to your computer and use it in GitHub Desktop.
migration_test:(master) $ merb-gen model --migration Feed id:Serial url:string description:text
/usr/lib/ruby/gems/1.8/gems/merb_datamapper-0.9.4/lib/generators/model.rb:24: undefined local variable or method `migration' for Merb::Generators::DataMapperModelGenerator:Class (NameError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/lib/ruby/gems/1.8/gems/merb-gen-0.9.4/lib/merb-gen.rb:34
from /usr/lib/ruby/gems/1.8/gems/merb-gen-0.9.4/lib/merb-gen.rb:33:in `each'
from /usr/lib/ruby/gems/1.8/gems/merb-gen-0.9.4/lib/merb-gen.rb:33
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/bootloader.rb:550:in `call'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/bootloader.rb:550:in `run'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/bootloader.rb:550:in `each'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/bootloader.rb:550:in `run'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/bootloader.rb:68:in `run'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core/server.rb:51:in `start'
from /usr/lib/ruby/gems/1.8/gems/merb-core-0.9.4/lib/merb-core.rb:87:in `start'
from /usr/lib/ruby/gems/1.8/gems/merb-gen-0.9.4/bin/merb-gen:10
from /usr/bin/merb-gen:19:in `load'
from /usr/bin/merb-gen:19
module Merb::Generators
class DataMapperModelGenerator < ComponentGenerator
def self.source_root
File.join(File.dirname(__FILE__), '..', '..', 'templates')
end
desc <<-DESC
Generates a new model. You can specify an ORM different from what the rest
of the application uses.
DESC
option :orm, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
option :migration, :as => :boolean, :desc => 'Also generate a dm-migration for the model'
first_argument :name, :required => true, :desc => "model name"
second_argument :attributes, :as => :hash, :default => {}, :desc => "space separated model properties in form of name:type. Example: state:string"
template :model do
source("model.rb")
destination("app/models/#{file_name}.rb")
end
invoke :migration, :migration => true do |generator|
generator.new(destination_root, options.merge(:model => true), name, attributes)
end
def class_name
self.name.camel_case
end
def test_class_name
self.class_name + "Test"
end
def file_name
self.name.snake_case
end
def attributes?
self.attributes && !self.attributes.empty?
end
end
# this is invisible to the end user, and should never be called directly
add_private :datamapper_model, DataMapperModelGenerator
end
# The model generator invokes the datamapper_model generator if
# the orm is set to :datamapper
Merb::Generators::ModelGenerator.invoke :datamapper_model, :orm => :datamapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment