What about:
def initialize(source=nil)
  source ? xchg_source(source) : xchg_source
end

Or if you prefer longer notation
def initialize(source=nil)
  if source
    xchg_source(source)
  else
    xchg_source
end

Or like in your example:
def initialize(source=nil)
  return xchg_source unless source
  xchg_source(source)
end

On Apr 17, 9:47 pm, James Byrne <[email protected]>
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
>
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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