module Sinatra::JSON
Public Class Methods
encode(object)
click to toggle source
# File lib/mihari/web/helpers/json.rb, line 10 def encode(object) ::MultiJson.dump(object) end
Public Instance Methods
json(object, options = {})
click to toggle source
# File lib/mihari/web/helpers/json.rb, line 15 def json(object, options = {}) object = object.to_camelback_keys content_type resolve_content_type(options) resolve_encoder_action object, resolve_encoder(options) end
Private Instance Methods
resolve_content_type(options = {})
click to toggle source
# File lib/mihari/web/helpers/json.rb, line 24 def resolve_content_type(options = {}) options[:content_type] || settings.json_content_type end
resolve_encoder(options = {})
click to toggle source
# File lib/mihari/web/helpers/json.rb, line 28 def resolve_encoder(options = {}) options[:json_encoder] || settings.json_encoder end
resolve_encoder_action(object, encoder)
click to toggle source
# File lib/mihari/web/helpers/json.rb, line 32 def resolve_encoder_action(object, encoder) [:encode, :generate].each do |method| return encoder.send(method, object) if encoder.respond_to? method end if encoder.is_a? Symbol object.__send__(encoder) else fail "#{encoder} does not respond to #generate nor #encode" end end