Class: RubyRest::Atom::EntryFormatter
Instance Method Summary
collapse
#app, #initialize
Instance Method Details
239
240
241
242
243
244
245
|
# File 'lib/rubyrest/atom.rb', line 239
def format( object, params )
params[:content_type]="application/atom+xml"
xml = REXML::Document.new
xml << REXML::XMLDecl.default
format_entry( object, xml, params )
return xml
end
|
#format_entry(object, xml, params) ⇒ Object
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
|
# File 'lib/rubyrest/atom.rb', line 247
def format_entry( object, xml, params )
resource = params[:resource]
raise "no resource found for entry #{object}" if !resource
entry = xml.add_element( "entry", NAMESPACES )
entry.add_element( "title" )
entry.add_element( "author" ).add_element( "name" ).add_text( object[:modifiedby] )
entry.add_element( "updated" ).add_text( DateProperty.format_date( object[:modified] ) )
entry.add_element( "id" )
entry.add_element( "summary" )
resource.class.links.each{ |link|
render = link[:role] == nil || params[:principal].profile.split( "," ).include?( link[:role].to_s )
entry.add_element( "link", { "title" => link[:title].to_s, "rel" => link[:rel].to_s} ) if render
}
content = entry.add_element( "rubyrest:content" )
resource.class.props.each{ |map|
@parent.property( map ).format( object, map, content )
}
end
|