lib/hyperdrive/server.rb in hyperdrive-0.0.4 vs lib/hyperdrive/server.rb in hyperdrive-0.0.5
- old
+ new
@@ -8,14 +8,26 @@
private
def self.server
Rack::Builder.new do
+ use Rack::Runtime
+ use Rack::Lint
+ use Rack::Head
+
+ map '/' do
+ info = ''
+ hyperdrive.resources.each do |type, resource|
+ info += %Q({"id":"#{resource.endpoint}","name":"#{resource.name}","desc":"#{resource.desc}","type":"#{type}"})
+ end
+
+ run ->(env) {
+ [200, { 'Content-Type' => 'application/json', 'Allow' => Hyperdrive::Values.request_methods.join(",") }, ["[#{info}]"]]
+ }
+ end
+
hyperdrive.resources.each do |key, resource|
map resource.endpoint do
- use Rack::Runtime
- use Rack::Lint
- use Rack::Head
run ->(env) {
begin
Hyperdrive::Response.new(env, resource).response
rescue Hyperdrive::Errors::HTTPError => error
[error.http_status_code, { 'Allow' => resource.allowed_methods.join(',') }, [error.message]]