class Generic::Base

Public Class Methods

after(&block) click to toggle source

After Proccess

# File lib/generic/generic.rb, line 179
def after(&block)
  after_actions << Proc.new(&block)
end
before(&block) click to toggle source

Before Proccess

# File lib/generic/generic.rb, line 174
def before(&block)
  before_actions << Proc.new(&block)
end
delete(path, options={}, &block) click to toggle source
# File lib/generic/generic.rb, line 123
def delete(path, options={}, &block)
  options[:constraints] = guard.merge(options[:constraints] || {})
  options[:constraints].merge!(:request_method => "DELETE")
  define_route(path, options, &block)
end
get(path, options={}, &block) click to toggle source

Methods

# File lib/generic/generic.rb, line 105
def get(path, options={}, &block)
  options[:constraints] = guard.merge(options[:constraints] || {})
  options[:constraints].merge!(:request_method => "GET")
  define_route(path, options, &block)
end
group(url, app=nil, &block) click to toggle source

Group Route

# File lib/generic/generic.rb, line 130
def group(url, app=nil, &block)
  scope = self.scope
  app = Class.new(self.superclass) do
    self.scope = scope
    class_eval(&block)
  end
  routes[url] = app
end
import(cls, *args, &block) click to toggle source

Import

# File lib/generic/generic.rb, line 169
def import(cls, *args, &block)
  impt << [cls, args, block]
end
library(*args, &block) click to toggle source

System Helper

# File lib/generic/generic.rb, line 158
def library(*args, &block)
  if block_given?
    args << Module.new(&block)
  end

  args.each do |m|
    scope.send :include, m
  end
end
new(app=nil) click to toggle source
# File lib/generic/generic.rb, line 65
def initialize(app=nil)
  # Rack Builder
  builder = Rack::Builder.new

  #Register Importing Classes
  self.class.impt.each do |im, args, block|
    builder.use(im, *args, &block)
  end

  # Register group nested
  self.class.routes.each do |url, a_class|
    builder.map(url) do
      use a_class
    end
  end

  builder.run Generic::Routing.new({
                                       :scope => self.class.scope,
                                       :rd => self.class.rd,
                                       :before_actions => self.class.before_actions,
                                       :after_actions => self.class.after_actions,
                                       :fail => app
                                   })

  @app = builder.to_app
end
post(path, options={}, &block) click to toggle source
# File lib/generic/generic.rb, line 111
def post(path, options={}, &block)
  options[:constraints] = guard.merge(options[:constraints] || {})
  options[:constraints].merge!(:request_method => "POST")
  define_route(path, options, &block)
end
put(path, options={}, &block) click to toggle source
# File lib/generic/generic.rb, line 117
def put(path, options={}, &block)
  options[:constraints] = guard.merge(options[:constraints] || {})
  options[:constraints].merge!(:request_method => "PUT")
  define_route(path, options, &block)
end
register(*extensions) click to toggle source

Register Extension

# File lib/generic/generic.rb, line 140
def register(*extensions)
  extensions.each do |ext|
    extend ext
    if ext.check(self)
      ext.respond_to?(:registered)
    end
  end
end
set_guard(args, &block) click to toggle source

Set Guard

# File lib/generic/generic.rb, line 150
def set_guard(args, &block)
  current = self.guard.dup
  self.guard = args
  instance_eval(&block)
  self.guard = current
end

Protected Class Methods

define_route(path, options, &block) click to toggle source

Define Framework Route

# File lib/generic/generic.rb, line 185
def define_route(path, options, &block)
  self.rd << [path, options, Proc.new(&block)]
end

Public Instance Methods

call(env) click to toggle source
# File lib/generic/generic.rb, line 93
def call(env)
  @app.call(env)
end
settings() click to toggle source
# File lib/generic/generic.rb, line 97
def settings
  self.class.settings
end