Sha256: d0c8f10cfa26eb8febc3b5a33e7ebad2c951635099ac4221ab598366d6d9df96
Contents?: true
Size: 1.95 KB
Versions: 3
Compression:
Stored size: 1.95 KB
Contents
def route_prefix @route_prefix ||= [] File.join(["/"] + @route_prefix) end # @param verb [String] has to be a valid http verb, so a string uppercase # @param url [String] if an url is provided, then it will be put in the hash # to have the same behavior as if it was specified in the what hash # \\{url: URL} # @param what [Hash] has to contain the following keys: # - :url # - :controller # - :method # # The method create a valid route, set in Nephos::Router::ROUTES # it will call the method from the controller, based on the parameters # if the client request match with the verb and the url provided. # # Checkout the documentation about the parameters and API for more informations def add_route(verb, option_url=nil, what) raise InvalidRoute, "what must be a hash" unless what.is_a? Hash what[:url] ||= option_url Array(what[:url]).each do |url| route = what.dup route[:url] = url route[:url] = File.expand_path File.join(route_prefix, route[:url]) Nephos::Router.check!(route) Nephos::Router.add_params!(route) Nephos::Router.add(route, verb) end end # @param url [String] see {#add_route} # @param what [Hash] see {#add_route} def get url=nil, what add_route "GET", url, what end # @param url [String] see {#add_route} # @param what [Hash] see {#add_route} def post url=nil, what add_route "POST", url, what end # @param url [String] see {#add_route} # @param what [Hash] see {#add_route} def put url=nil, what add_route "PUT", url, what end # @param name [String] # @param block [Bloc] # # Create a resource named based on the parameter name # Every call of {#add_route} {#get} {#post} {#put} in the bloc # will have a modified url, working with the following schema: # "/name/" + url def resource(name, &block) @route_prefix ||= [] @route_prefix << name block.call @route_prefix.pop end # An alias is an url which have the same proprieties than the previous route def alias_route raise "Not implemented yet" end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nephos-server-0.7.2 | lib/nephos-server/router/helpers.rb |
nephos-server-0.7.1 | lib/nephos-server/router/helpers.rb |
nephos-server-0.7.0 | lib/nephos-server/router/helpers.rb |