Created
August 4, 2008 22:05
-
-
Save jnicklas/3982 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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