[MacRuby] #1271: datamapper 1.0.2 failing with mismatch type errors
MacRuby
ruby-noreply at macosforge.org
Mon May 9 17:03:59 PDT 2011
#1271: datamapper 1.0.2 failing with mismatch type errors
------------------------------+---------------------------------------------
Reporter: jhamor@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
------------------------------+---------------------------------------------
When working with datamapper, i get errors in ways "regular" ruby doesnt.
This is somewhat of a reduction, as my real world test involves a custom
adapter that produces this same problem.
Here is the setup data:
<pre>
require 'stringio'
=> true
require 'rubygems'
=> false
require 'dm-core'
=> true
class User
include DataMapper::Resource
property :login, String, :key => true
property :uid, Integer
property :gecos, Text
end
=> #<DataMapper::Property::Text @model=User @name=:gecos>
User.first
User.get('jhamor')
User.get(:login => 'jhamor')
</pre>
Here is what happens in macruby:
<pre>
irb(main):001:0> require 'stringio'
=> true
irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'dm-core'
=> true
irb(main):004:0> DataMapper::Logger.new($stdout, :debug)
=> #<DataMapper::Logger:0x200426580 @init_args=[#<IO:<STDOUT>>, :debug]
@level=0 @buffer=[] @delimiter=" ~ " @auto_flush=true @log=#<IO:<STDOUT>>>
irb(main):005:0> class User
irb(main):006:1> include DataMapper::Resource
irb(main):007:1> property :login, String, :key => true
irb(main):008:0> end
=> #<DataMapper::Property::String @model=User @name=:login>
irb(main):009:0> DataMapper.finalize
=> DataMapper
irb(main):010:0> User.first
DataMapper::RepositoryNotSetupError: Adapter not set: default. Did you
forget to setup?
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/repository.rb:72:in `adapter'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/repository.rb:131:in `new_query'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/model/scope.rb:30:in `query'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/model.rb:341:in `all'
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/model.rb:319:in `each'
irb(main):011:0> User.get('jhamor')
TypeError: can't convert Hash into Integer
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/model.rb:278:in `get'
irb(main):012:0> User.get(:login => 'jhamor')
TypeError: can't convert Hash into Integer
/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems
/dm-core-1.0.2/lib/dm-core/model.rb:278:in `get'
irb(main):013:0>
</pre>
Here is what happens in normal ruby:
<pre>
[jhamor:~] jhamor% irb
>> require 'rubygems'
=> false
>> require 'dm-core'
=> true
>> class User
>> include DataMapper::Resource
>>
?> property :login, String, :key => true
>> property :uid, Integer
>> property :gecos, Text
>> end
=> #<DataMapper::Property::Text @model=User @name=:gecos>
>> User.first
DataMapper::RepositoryNotSetupError: Adapter not set: default. Did you
forget to setup?
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:72:in `adapter'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:131:in `new_query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model/scope.rb:30:in `query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model.rb:374:in `first'
from (irb):10
from :0
>> User.get('jhamor')
DataMapper::RepositoryNotSetupError: Adapter not set: default. Did you
forget to setup?
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:72:in `adapter'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:131:in `new_query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model/scope.rb:30:in `query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model.rb:374:in `first'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model.rb:278:in `get'
from (irb):11
from :0
>> User.get(:login => 'jhamor')
DataMapper::RepositoryNotSetupError: Adapter not set: default. Did you
forget to setup?
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:72:in `adapter'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/repository.rb:131:in `new_query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model/scope.rb:30:in `query'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model.rb:374:in `first'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.0.2/lib/dm-
core/model.rb:278:in `get'
from (irb):12
from :0
>>
</pre>
--
Ticket URL: <http://www.macruby.org/trac/ticket/1271>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list