[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

problem with yaml

unbewust

8/28/2007 3:21:00 PM

i'm using a yaml file to save my preferences in a RubyCocoa
application, however i get :

/usr/lib/ruby/1.8/yaml.rb:347:in `allocate': allocator undefined for
Data (TypeError)
from /usr/lib/ruby/1.8/yaml.rb:347:in `object_maker'
from /usr/lib/ruby/1.8/yaml/rubytypes.rb:36
from /usr/lib/ruby/1.8/yaml/rubytypes.rb:34:in `call'
from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
Resources/rb_main.rb:16:in `transfer'
from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
Resources/SyncDataSource.rb:55:in `initialize'


line 55 :
o=YAML::load(File.open("#{PREFS_FILE}"))


THE file :

--- !ruby/object:Preferences
deepness: 2
root: !ruby/object:Folder
"__slave_nsobj__": !ruby/object:Data {}
enabled: -1
items:
- !ruby/object:Folder
"__slave_nsobj__": !ruby/object:Data {}
enabled: -1
items:
- !ruby/object:Folder
"__slave_nsobj__": !ruby/object:Data {}
enabled: true
items: []
name: Agenda
path: /Users/yt/Documents/OOo/Agenda
[...]


i even don't know where the lines ""__slave_nsobj__": !ruby/
object:Data {}" are coming from...

3 Answers

Jano Svitok

8/28/2007 3:39:00 PM

0

On 8/28/07, unbewusst <yvon.thoraval@gmail.com> wrote:
> i'm using a yaml file to save my preferences in a RubyCocoa
> application, however i get :
>
> /usr/lib/ruby/1.8/yaml.rb:347:in `allocate': allocator undefined for
> Data (TypeError)
> from /usr/lib/ruby/1.8/yaml.rb:347:in `object_maker'
> from /usr/lib/ruby/1.8/yaml/rubytypes.rb:36
> from /usr/lib/ruby/1.8/yaml/rubytypes.rb:34:in `call'
> from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
> Resources/rb_main.rb:16:in `transfer'
> from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
> from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
> from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
> Resources/SyncDataSource.rb:55:in `initialize'
>
>
> line 55 :
> o=YAML::load(File.open("#{PREFS_FILE}"))
>
>
> THE file :
>
> --- !ruby/object:Preferences
> deepness: 2
> root: !ruby/object:Folder
> "__slave_nsobj__": !ruby/object:Data {}
> enabled: -1
> items:
> - !ruby/object:Folder
> "__slave_nsobj__": !ruby/object:Data {}
> enabled: -1
> items:
> - !ruby/object:Folder
> "__slave_nsobj__": !ruby/object:Data {}
> enabled: true
> items: []
> name: Agenda
> path: /Users/yt/Documents/OOo/Agenda
> [...]
>
>
> i even don't know where the lines ""__slave_nsobj__": !ruby/
> object:Data {}" are coming from...

Just a blind guess: yaml doesn't know how to (de)serialize binary data
for/from RubyCocoa extension. I guess Data type means binary data that
is opaque to ruby.
__slave_nsobj__ is a member attribute of Folder.

If you can look at yaml and RubyCocoa sources, you'd find more (e.g.
what is __slave...).

unbewust

8/30/2007 9:06:00 AM

0

On 28 ao?t, 17:39, "Jano Svitok" <jan.svi...@gmail.com> wrote:
> On 8/28/07, unbewusst <yvon.thora...@gmail.com> wrote:
>
>
>
> > i'm using a yaml file to save my preferences in a RubyCocoa
> > application, however i get :
>
> > /usr/lib/ruby/1.8/yaml.rb:347:in `allocate': allocator undefined for
> > Data (TypeError)
> > from /usr/lib/ruby/1.8/yaml.rb:347:in `object_maker'
> > from /usr/lib/ruby/1.8/yaml/rubytypes.rb:36
> > from /usr/lib/ruby/1.8/yaml/rubytypes.rb:34:in `call'
> > from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
> > Resources/rb_main.rb:16:in `transfer'
> > from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
> > from /usr/lib/ruby/1.8/yaml.rb:119:in `load'
> > from /Users/yt/work/RubyCocoa/eSync/build/Release/eSync.app/Contents/
> > Resources/SyncDataSource.rb:55:in `initialize'
>
> > line 55 :
> > o=YAML::load(File.open("#{PREFS_FILE}"))
>
> > THE file :
>
> > --- !ruby/object:Preferences
> > deepness: 2
> > root: !ruby/object:Folder
> > "__slave_nsobj__": !ruby/object:Data {}
> > enabled: -1
> > items:
> > - !ruby/object:Folder
> > "__slave_nsobj__": !ruby/object:Data {}
> > enabled: -1
> > items:
> > - !ruby/object:Folder
> > "__slave_nsobj__": !ruby/object:Data {}
> > enabled: true
> > items: []
> > name: Agenda
> > path: /Users/yt/Documents/OOo/Agenda
> > [...]
>
> > i even don't know where the lines ""__slave_nsobj__": !ruby/
> > object:Data {}" are coming from...
>
> Just a blind guess: yaml doesn't know how to (de)serialize binary data
> for/from RubyCocoa extension. I guess Data type means binary data that
> is opaque to ruby.
> __slave_nsobj__ is a member attribute of Folder.
>
> If you can look at yaml and RubyCocoa sources, you'd find more (e.g.
> what is __slave...).



OK, thanks i'll avoid that Data {}

unbewust

8/30/2007 1:37:00 PM

0

On 28 ao?t, 17:39, "Jano Svitok" <jan.svi...@gmail.com> wrote:

>
> Just a blind guess: yaml doesn't know how to (de)serialize binary data
> for/from RubyCocoa extension. I guess Data type means binary data that
> is opaque to ruby.
> __slave_nsobj__ is a member attribute of Folder.


in fact, i'm using severall Folders BUT it is only the outermost
staying with this "__slave_nsobj__" i've carefully verified that my
Folder class doesn't use anymore NSSomething...

as for example NSString, i've make use of something.to_s to avoid
NSString