35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/brief/server/gateway.rb', line 35
def call(env)
request = Rack::Request.new(env)
params = request.params.symbolize_keys
if request.path.match(/\/all$/)
presenter = params.fetch(:presenter, 'default')
return [200, {}, [
@briefcases.values.map do |bc|
bc.present(presenter, params)
end.to_json
]]
end
name = request.path.match(/\/\w+\/(\w+)/)[1] rescue nil
if name && @briefcases[name]
@briefcases[name].server.call(env)
else
[404, {}, ["Not found: #{ name } -- #{ request.path }"]]
end
end
|