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,


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to