Module: Kjson::Roda::ResponseMethods

Defined in:
lib/kjson/roda.rb

Instance Method Summary collapse

Instance Method Details

#data(dt) ⇒ Object



143
144
145
146
147
# File 'lib/kjson/roda.rb', line 143

def data(dt)
  @kjson_response = true
  @data = dt
  nil
end

#error(message, type = SERVICE_ERROR, cause = nil) ⇒ Object



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/kjson/roda.rb', line 149

def error(message, type=SERVICE_ERROR, cause=nil)
  @kjson_response = true
  @error = {
    "type" => type,
    "message" => message
  }
  case cause
  when Exception
    @error["cause"] = {
      "message" => cause.message,
      "backtrace" => cause.backtrace
    }
  when Hash
    @error["cause"] = cause
  end
  nil
end

#kjson_finishObject

Raises:

  • (Roda::RodaError)


167
168
169
170
171
172
173
174
# File 'lib/kjson/roda.rb', line 167

def kjson_finish
  raise Roda::RodaError, "should call #data or #error before finish response" unless @kjson_response
  write(kjson_encode(
    "data" => @data,
    "error" => @error
  ))
  finish
end