strange thing w/ array.map

Clem Rock
Thu, 25 Jan 2007 07:01:46 -0000

Hello,

    I''m writing a method that builds rss and atom feeds and
I''ve noticed
something strange when I try updating the content array by using a map.

I''m new to ruby and must confess that I don''t know how array
maps work
so well.

I am formatting some of the rss content array by updating it''s contents
w/ a map like so:

[code]
@entities = Space.find :all

@new_entities = @entities.map do |entity|
  open_closed = entity.complete? ? "[x] " : "[ ] "
  entity.title = open_closed + entity.title
  entity.title += ('' due on '' +
local_date_time(entity.due_on)) if
entity.due_on
  entity.title += " (#{entity.status_title})"
end if @entities
[/code]

then when I try to use the @new_entities array in the feed, I get an
error

[code]
for entity in @new_entities  #-->>error!
  xml.item do
    xml.title(entity.title)
    xml.description(entity.description)
    xml.pubDate(entity.date.strftime("%a, %d %b %Y %H:%M:%S %z"))
    xml.link("http://www.recentrambles.com/pragmatic/view/" +
entity.id.to_s)
    xml.guid("http://www.recentrambles.com/pragmatic/view/" +
entity.id.to_s)
  end
end
[/code]

but, if I use the original @entities array it works perfectly
[code]
for entity in @entities   #-->>works!
  xml.item do
    xml.title(entity.title)
    xml.description(entity.description)
    xml.pubDate(entity.date.strftime("%a, %d %b %Y %H:%M:%S %z"))
    xml.link("http://www.recentrambles.com/pragmatic/view/" +
entity.id.to_s)
    xml.guid("http://www.recentrambles.com/pragmatic/view/" +
entity.id.to_s)
  end
end
[/code]


How, exactly, is that @entities array getting updated by the map?

Thanks for your help!

--
Posted via http://www.ruby-forum.com/.