[MacRuby] #1271: datamapper 1.0.2 failing with mismatch type errors
MacRuby
ruby-noreply at macosforge.org
Tue May 10 12:56:34 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:
------------------------------+---------------------------------------------
Description changed by eloy.de.enige@…:
Old description:
> 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>
New description:
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:
{{{
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')
}}}
Here is what happens in macruby:
{{{
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>
}}}
Here is what happens in normal ruby:
{{{
[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
>>
}}}
--
--
Ticket URL: <http://www.macruby.org/trac/ticket/1271#comment:1>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list