2008/5/2 Ruby Freak <twscannell / gmail.com>:
> I am reading some of the ruby files in rails and I an seeing the ||=
>  method used a lot.
>  knowing ruby the way I do, I realize that she has lots of magical
>  surprises and I really want to get to know this girl!
>
>  Consider the initialize method of resources.rb
>
>  51            def initialize(entities, options)
>  52              @plural ||= entities
>  53              @singular ||= options[:singular] ||
>  plural.to_s.singularize
>  54              @path_segment = options.delete(:as) || @plural
>  55
>  56              @options = options
>  57
>  58              arrange_actions
>  59              add_default_actions
>  60              set_prefixes
>  61            end
>
>  (OK, so one iddy bitty part of this is a rails question, and dangit,
>  this is a ruby forum, but you guys are smarter and have better
>  haircuts)
>
>  Question (1)
>  After several hours of searching I find virtually nothing that fully
>  explains the line
>  @singular ||= options[:singular] || plural.to_s.singularize
>
>  I think know what is does, It assigns @singular a value for a
>  "singular named" controller if the options hash contains the
>  symbol :singular. I am looking more for a full description of how ||=
>  and  it's friends like &&= actually work.
>
>  my current understanding shows me:
>   @singular = (options[:singular]) or (plural.to_s.singularize)
>
>  but the full logic seems to be more like:
>  if options contains a symbol named :singular then
>     @singular = plural.to_s.singularize
>  end if
>
>  But what is the value of @singular if there is no :singular symbol?
>  nil?
>
>  What I think is going on is a lot more like an IF statement than a OR
>  statement.
>
>  Question (2)
>  in the line: @plural ||= entities
>  if entities is (false?, nil? something that fails "OR") what happens
>  to @plural?
>
>  Once again, the ||= seems more like an "equals If" statement rather
>  than an "equals Or" statement.
>
>  Question (3)
>  @path_segment = options.delete(:as) || @plural
>   So @path_segment is assigned either the return from the delete
>  operation (:as) ? or the plural name of the controller. Is that
>  correct? Where in a common resourceful routes mapping is there an :as?
>
>  Thanks in advance for any help.
>
>
>



-- 
Kazuo Ishii Ph.D., Tokyo Univ. of Science
freeparis2 / gmail.com