From: Tom S. <tra...@tr...> - 2003-01-04 02:03:32
|
trying to YAML.load in my mod_ruby/eruby web app and get this: src/emitter.rb:1450:in `initialize': wrong # of arguments(0 for 1)=20 (ArgumentError) from src/emitter.rb:1450:in `new' from src/emitter.rb:1450:in `module_eval' from src/emitter.rb:1446:in `call' from src/emitter.rb:953:in `transfer_method' from src/yaml.y:661:in `attach_transfer' from src/yaml.y:54:in `_reduce_12' from /usr/local/lib/ruby/site_ruby/1.6/racc/parser.rb:114:in=20 `_racc_do_parse_c' from /usr/local/lib/ruby/site_ruby/1.6/racc/parser.rb:114:in `cat= ch' ... 11 levels... from /usr/lib/ruby/1.6/apache/eruby-run.rb:112:in `load' from /usr/lib/ruby/1.6/apache/eruby-run.rb:112:in `run' from /usr/lib/ruby/1.6/apache/eruby-run.rb:78:in `handler' from ruby:0 any ideas? -thanks tom |
From: why t. l. s. <yam...@wh...> - 2003-01-05 00:02:46
|
Tom Sawyer (tra...@tr...) wrote: > trying to YAML.load in my mod_ruby/eruby web app and get this: > > src/emitter.rb:1450:in `initialize': wrong # of arguments(0 for 1) > (ArgumentError) > from src/emitter.rb:1450:in `new' > from src/emitter.rb:1450:in `module_eval' > from src/emitter.rb:1446:in `call' > from src/emitter.rb:953:in `transfer_method' > from src/yaml.y:661:in `attach_transfer' Well, this appears to be an error caused by loading a typed node. The `tranfer_method' call is supposed to call a type handler (usually registered with YAML.add_private_type or YAML.add_domain_type methods). Are you loading ruby objects (!ruby/object:Test) or are you loading other types? _why |
From: Tom S. <tra...@tr...> - 2003-01-05 01:03:25
|
On Saturday 04 January 2003 05:13 pm, why the lucky stiff wrote: > Tom Sawyer (tra...@tr...) wrote: > > trying to YAML.load in my mod_ruby/eruby web app and get this: > > > > src/emitter.rb:1450:in `initialize': wrong # of arguments(0 for 1) > > (ArgumentError) > > from src/emitter.rb:1450:in `new' > > from src/emitter.rb:1450:in `module_eval' > > from src/emitter.rb:1446:in `call' > > from src/emitter.rb:953:in `transfer_method' > > from src/yaml.y:661:in `attach_transfer' > > Well, this appears to be an error caused by loading a typed node. The > `tranfer_method' call is supposed to call a type handler (usually > registered with YAML.add_private_type or YAML.add_domain_type methods). > Are you loading ruby objects (!ruby/object:Test) or are you loading > other types? ruby objects, albiet complex ones. here's a (partial) example: class ZenPurchase < ZenRecord # data attr_reader :date attr_reader :description attr_reader :v_ref attr_reader :discount attr_reader :terms_daysdue attr_reader :terms_penalty attr_reader :terms_daysdisc attr_reader :terms_disc attr_reader :taxes_prcnt attr_reader :message # subrecords attr_reader :detail # peer records attr_reader :vendor def initialize super # data @date =3D Time.new.strftime('%Y-%m-%d') @description =3D '' @v_ref =3D nil @discount =3D 0.0 @terms_daysdue =3D 0 @terms_penalty =3D 0.0 @terms_daysdisc =3D 0 @terms_disc =3D 0.0 @taxes_prcnt =3D 0.0 @message =3D '' # sub records @detail =3D ZenPurchaseDetails.new(self) # peer records @vendor =3D ZenVendor.new(:v_ref) end def qtytotal qt =3D 0.0 @detail.each do |d| qt +=3D d.qty end return qt end def subtotal st =3D 0.0 @detail.each do |d| st +=3D d.ext end return st end def tax return ((subtotal * (taxes_prcnt / 100.0) * 100.0).round) / 100.0 end def total return subtotal + tax end def date=3D(x) @date =3D x.to_s end def description=3D(x) @description =3D x.to_s end def v_ref=3D(x) @v_ref =3D x.to_i =3D=3D 0 ? nil : x.to_i end def discount=3D(x) @discount =3D x.to_f end def terms_daysdue=3D(x) @terms_daysdue =3D x.to_i end def terms_penalty=3D(x) @terms_penalty =3D x.to_f end def terms_daysdisc=3D(x) @terms_daysdisc =3D x.to_i end def terms_disc=3D(x) @terms_disc =3D x.to_f end def taxes_prcnt=3D(x) @taxes_prcnt =3D x.to_f end def message=3D(x) @message =3D x.to_s end =20 # server-side validation def valid v =3D true return v end def table() 'po' end end # ZenPurchase |