[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