Module: Jellyfish

Included in:
Swagger
Defined in:
lib/jellyfish.rb,
lib/jellyfish/json.rb,
lib/jellyfish/sinatra.rb,
lib/jellyfish/swagger.rb,
lib/jellyfish/version.rb,
lib/jellyfish/newrelic.rb,
lib/jellyfish/websocket.rb,
lib/jellyfish/chunked_body.rb,
lib/jellyfish/multi_actions.rb,
lib/jellyfish/normalized_path.rb,
lib/jellyfish/normalized_params.rb

Defined Under Namespace

Modules: DSL, Json, MultiActions, NewRelic, NormalizedParams, NormalizedPath, Sinatra, WebSocket Classes: ChunkedBody, Controller, Found, InternalError, NotFound, Response, Swagger

Constant Summary collapse

Cascade =
Object.new
GetValue =
Object.new
VERSION =
'1.0.1'

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/jellyfish.rb', line 186

def call env
  ctrl = self.class.controller.new(self.class.routes, self)
  case res = catch(:halt){ ctrl.call(env) }
  when Cascade
    cascade(ctrl, env)
  when Response
    handle(ctrl, res, env['rack.errors'])
  when Array
    res
  when NilClass # make sure we return rack triple
    ctrl.block_call(nil, lambda{|_|_})
  else
    raise TypeError.new("Expect the response to be a Jellyfish::Response" \
      " or Rack triple (Array), but got: #{res.inspect}")
  end
rescue => e
  handle(ctrl, e, env['rack.errors'])
end

#initialize(app = nil) ⇒ Object




184
# File 'lib/jellyfish.rb', line 184

def initialize app=nil; @app = app; end

#log(msg, stderr) ⇒ Object



210
211
212
213
# File 'lib/jellyfish.rb', line 210

def log msg, stderr
  return unless stderr
  stderr.puts("[#{self.class.name}] #{msg}")
end

#log_error(e, stderr) ⇒ Object



205
206
207
208
# File 'lib/jellyfish.rb', line 205

def log_error e, stderr
  return unless stderr
  stderr.puts("[#{self.class.name}] #{e.inspect} #{e.backtrace}")
end