module Wunderbar::Template::Json

Public Class Methods

ext() click to toggle source
# File lib/wunderbar/sinatra.rb, line 121
def self.ext; ['json.rb', :_json]; end
mime() click to toggle source
# File lib/wunderbar/sinatra.rb, line 122
def self.mime; 'application/json;charset=utf-8'; end

Public Instance Methods

evaluate(scope, locals, &block) click to toggle source
# File lib/wunderbar/sinatra.rb, line 124
def evaluate(scope, locals, &block)
  builder = JsonBuilder.new(scope)
  begin
    result = _evaluate(builder, scope, locals, &block)

    # if no output was produced, use the result
    builder._! result if builder.target? == {} and result

  rescue Exception => exception
    scope.content_type self.class.default_mime_type, :charset => 'utf-8'
    scope.response.status = Wunderbar::ServerError.status
    builder._exception exception
  end
  scope.cache_control :no_cache
  builder.target!
end