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]]