class Squad
Constants
- DEFAULT_HEADER
Public Class Methods
application(&block)
click to toggle source
# File lib/squad.rb, line 17 def self.application(&block) @app = new(&block) end
call(env)
click to toggle source
# File lib/squad.rb, line 21 def self.call(env) @app.call(env) end
new(&block)
click to toggle source
# File lib/squad.rb, line 10 def initialize(&block) instance_eval(&block) end
redis()
click to toggle source
# File lib/squad.rb, line 14 def self.redis; @redis = settings[:redis] || Redic.new end
routes()
click to toggle source
# File lib/squad.rb, line 25 def self.routes; @routes ||= {} end
settings()
click to toggle source
# File lib/squad.rb, line 15 def self.settings; @settings ||= {} end
Public Instance Methods
call(env)
click to toggle source
# File lib/squad.rb, line 31 def call(env); dup.call!(env) end
call!(env)
click to toggle source
# File lib/squad.rb, line 33 def call!(env) request = Rack::Request.new(env) seg = Seg.new(request.path_info) inbox = {} seg.capture(:segment, inbox) segment = inbox[:segment].to_sym raise BadRequestError unless klass = self.class.routes[segment] resource = klass.new(segment) resource.run(seg) resource.render(request) [resource.status, resource.header, [resource.to_json]] rescue Error => e [e.status, e.header, [JSON.dump(e.body)]] rescue Exception => e puts "message: #{e.message}, b: #{e.backtrace}" error = Error.new [error.status, error.header, [JSON.dump(error.body)]] end
resources(name, &block)
click to toggle source
# File lib/squad.rb, line 27 def resources(name, &block) self.class.routes[name] = Resource.factor(&block) end