Skip to content

Instantly share code, notes, and snippets.

@practicingruby
Created October 2, 2010 17:50
Show Gist options
  • Save practicingruby/607826 to your computer and use it in GitHub Desktop.
Save practicingruby/607826 to your computer and use it in GitHub Desktop.
require "rubygems"
require "builder"
class Roster
def initialize
@members = []
@members_cache = []
@content = nil
end
attr_reader :members
def to_xml
if @members_cache == @members
@content ||= render_xml_roster
else
@content = render_xml_roster
@members_cache = @members
end
return @content
end
private
def render_xml_roster
builder = Builder::XmlMarkup.new
builder.roster do |r|
members.each do |m|
r.member(m)
end
end
end
end
r = Roster.new
r.members << "Gregory Brown"
r.members << "David Black"
r.members << "Jeremy McAnally"
puts r.to_xml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment