class Transit::Rails::Renderer
Attributes
io[R]
Public Class Methods
new(obj, options={}, io=StringIO.new)
click to toggle source
# File lib/transit/rails/renderer.rb, line 10 def initialize(obj, options={}, io=StringIO.new) @object = obj @format = options[:verbose] ? :json_verbose : :json @handlers = TRANSIT_HANDLERS.merge(options[:handlers] || {}) @io = io @symbolize_keys = options[:symbolize_keys] end
Public Instance Methods
render()
click to toggle source
# File lib/transit/rails/renderer.rb, line 23 def render return @rendered if defined?(@rendered) write @io.rewind @rendered = @io.read end
to_s()
click to toggle source
# File lib/transit/rails/renderer.rb, line 30 def to_s render end
Also aliased as: to_str
write()
click to toggle source
# File lib/transit/rails/renderer.rb, line 18 def write serialized = serialize_for_transit(@object) Transit::Writer.new(@format, @io, handlers: @handlers).write(serialized) end
Private Instance Methods
serialize_for_transit(obj)
click to toggle source
# File lib/transit/rails/renderer.rb, line 36 def serialize_for_transit(obj) return obj if String === obj if obj.respond_to?(:as_transit) obj.as_transit elsif obj.respond_to?(:serializable_hash) if @symbolize_keys obj.serializable_hash.symbolize_keys else obj.serializable_hash end elsif obj.respond_to?(:to_ary) obj.to_ary.map {|o| serialize_for_transit(o)} else obj end end