lib/midori/api_engine.rb in em-midori-0.1.6.1 vs lib/midori/api_engine.rb in em-midori-0.1.7
- old
+ new
@@ -1,7 +1,14 @@
+##
+# Merge and manage all APIs.
+# @attr [ Hash ] routes A hash of all routes merged
class Midori::APIEngine
attr_accessor :routes
+
+ # Init an API Engine
+ # @param [ Class ] root_api API inherited from [ Midori::API ]
+ # @param [ Symbol ] type type mustermann support
def initialize(root_api, type = :sinatra)
@routes = {
GET: [],
POST: [],
PUT: [],
@@ -21,12 +28,12 @@
route.path = Mustermann.new(route.path, type: type)
end
end
end
+ # Merge all routes with a Depth-first search
def merge(prefix, root_api, middlewares)
- # Merge all routes with a Depth-first search
root_api.routes[:MOUNT].each do |mount|
root_api.routes.merge!(merge(mount[0], mount[1], root_api.scope_middlewares)) do |_key, old_val, new_val|
old_val + new_val
end
end
@@ -79,6 +86,8 @@
def self.websocket_header(key)
header = Midori::Const::WEBSOCKET_HEADER.clone
header['Sec-WebSocket-Accept'] = Digest::SHA1.base64digest(key + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')
header
end
+
+ private :merge
end