class RubyBase::Router

Public Class Methods

delete(arg,&block) click to toggle source
# File lib/ruby_base/router.rb, line 26
def self.delete(arg,&block)
  @@data[:DELETE][Regexp.new arg] = block
end
get(arg,&block) click to toggle source
# File lib/ruby_base/router.rb, line 14
def self.get(arg,&block)
  @@data[:GET][Regexp.new arg] = block
end
post(arg,&block) click to toggle source
# File lib/ruby_base/router.rb, line 18
def self.post(arg,&block)
  @@data[:POST][Regexp.new arg] = block
end
put(arg,&block) click to toggle source
# File lib/ruby_base/router.rb, line 22
def self.put(arg,&block)
  @@data[:PUT][Regexp.new arg] = block
end

Public Instance Methods

route(method,route,post_data) click to toggle source
# File lib/ruby_base/router.rb, line 30
def route(method,route,post_data)
  params = {}
  params[:post] = Yajl::Parser.parse(post_data.to_s)
  @@data[method].each_key do |key|
    t = key.match(route)
    if t
      params[:match] = t
      if @@cache
        p method
        return RubyBase::Cache::proxy(method, route, @@data[method][key], params)
      end
      # non cached version
      return Yajl::Encoder.encode(@@data[method][key].call(params))
    end
  end
  return Yajl::Encoder.encode("Error, no route")
end