James Byrne wrote:
Can someone see what I cannot given this code?
class ForexCASource
def initialize(source=nil) xchg_source unless source puts "this is source = #{source} #{source.class}" puts "do we get here? why?" xchg_source(source) end
fx = ForexCASource.new
this is source = NilClass do we get here? why? TypeError: can't convert nil into String from /usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open' from /usr/lib/ruby/1.8/open-uri.rb:32:in `open' from /home/byrnejb/Software/Development/Projects/proforma.git/app/services/forex_ca_source.rb:58:in `xchg_source' from /home/byrnejb/Software/Development/Projects/proforma.git/app/services/forex_ca_source.rb:52:in `initialize' from (irb):1:in `new' from (irb):1
xchg_source unless source
This is a one-liner that just doesn't call xchg_source if source is nil (which it is in this case).
All other lines will execute normally so:
xchg_source(source) will call xchg_source with a nil value. Since you haven't posted the code for xchg_source it's hard to tell what's happening in there.
did you mean:
if !source puts "this is source = #{source} #{source.class}" puts "do we get here? why?" xchg_source(source) end
Cheers, Gary,