Wrap text
Theme:
Clean (Pastie)
All Hallow's Eve
Blackboard
Brilliance Black
Cobalt
Espresso Libre
IDLE
Mac Classic
MagicWB (Amiga)
Pastels on Dark
Slate
Slush and Poppies
Sunburst
Sunburst (Josh)
Twilight
Vibrant Ink
Report abuse
# Renders an object using to registered transform method based on the
# negotiated content-type, if a template does not exist. For instance, if the
# content-type is :json, Merb will first look for current_action.json.*.
# Failing that, it will run object.to_json.
#
# ==== Parameter
# object::
# An object that responds_to? the transform method registered for the
# negotiated mime-type.
# thing::
# The thing to attempt to render via #render before calling the transform
# method on the object. Defaults to nil.
# opts::
# An options hash that will be used for rendering
# (passed on to #render or serialization methods like #to_json or #to_xml)
#
# ==== Returns
# String::
# The rendered template or if no template is found, the transformed object.
#
# ==== Raises
# NotAcceptable::
# If there is no transform method for the specified mime-type or the object
# does not respond to the transform method.
#
# ==== Alternatives
# A string in the second parameter will be interpreted as a template:
# display @object, "path/to/foo"
# #=> display @object, nil, :template => "path/to/foo"
#
# A hash in the second parameters will be interpreted as opts:
# display @object, :layout => "zoo"
# #=> display @object, nil, :layout => "zoo"
#
# If you need to pass extra parameters to serialization method, for instance,
# to exclude some of attributes or serialize associations, just pass options
# for it.
# For instance,
#
# display @locations, :except => [:locatable_type, :locatable_id], :include => [:locatable]
#
# serializes object with polymorphic association, not raw locatable_* attributes.
#
#
# ==== Options
#
# :template a template to use for rendering
# :layout a layout to use for rendering
# all other options options that will be pass to serialization method
# like #to_json or #to_xml
#
# ==== Notes
# The transformed object will not be used in a layout unless a :layout is
# explicitly passed in the opts.
#
def display(object, thing = nil, opts = {})