class Deas::RedirectProxy

Attributes

handler_class[R]
handler_class_name[R]

Public Class Methods

name() click to toggle source
# File lib/deas/redirect_proxy.rb, line 25
def self.name; 'Deas::RedirectHandler'; end
new(router, location = nil, &block) click to toggle source
# File lib/deas/redirect_proxy.rb, line 11
def initialize(router, location = nil, &block)
  @handler_class = Class.new do
    include Deas::ViewHandler

    def self.router; @router; end
    def self.router=(value)
      @router = value
    end

    def self.redirect_location; @redirect_location; end
    def self.redirect_location=(value)
      @redirect_location = value
    end

    def self.name; 'Deas::RedirectHandler'; end

    attr_reader :redirect_location

    def init!
      @redirect_location = self.class.router.prepend_base_url(
        self.instance_eval(&self.class.redirect_location)
      )
    end

    def run!
      redirect @redirect_location
    end

  end

  @handler_class.router = router
  @handler_class.redirect_location = if location.nil?
    block
  elsif location.kind_of?(Deas::Url)
    proc{ location.path_for(params) }
  else
    proc{ location }
  end
  @handler_class_name = @handler_class.name
end
redirect_location() click to toggle source
# File lib/deas/redirect_proxy.rb, line 20
def self.redirect_location; @redirect_location; end
redirect_location=(value) click to toggle source
# File lib/deas/redirect_proxy.rb, line 21
def self.redirect_location=(value)
  @redirect_location = value
end
router() click to toggle source
# File lib/deas/redirect_proxy.rb, line 15
def self.router; @router; end
router=(value) click to toggle source
# File lib/deas/redirect_proxy.rb, line 16
def self.router=(value)
  @router = value
end

Public Instance Methods

init!() click to toggle source
# File lib/deas/redirect_proxy.rb, line 29
def init!
  @redirect_location = self.class.router.prepend_base_url(
    self.instance_eval(&self.class.redirect_location)
  )
end
run!() click to toggle source
# File lib/deas/redirect_proxy.rb, line 35
def run!
  redirect @redirect_location
end
validate!() click to toggle source
# File lib/deas/redirect_proxy.rb, line 52
def validate!; end