Class: Deas::RedirectProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/deas/redirect_proxy.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path = nil, &block) ⇒ RedirectProxy

Returns a new instance of RedirectProxy.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/deas/redirect_proxy.rb', line 9

def initialize(path = nil, &block)
  @handler_class = Class.new do
    include Deas::ViewHandler

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

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

    attr_reader :redirect_path

    def init!
      @redirect_path = self.instance_eval(&self.class.redirect_path)
    end

    def run!
      redirect @redirect_path
    end

  end

  @handler_class.redirect_path = if path.nil?
    block
  elsif path.kind_of?(Deas::Url)
    proc{ path.path_for(params) }
  else
    proc{ path }
  end
  @handler_class_name = @handler_class.name
end

Instance Attribute Details

#handler_classObject (readonly)

Returns the value of attribute handler_class.



7
8
9
# File 'lib/deas/redirect_proxy.rb', line 7

def handler_class
  @handler_class
end

#handler_class_nameObject (readonly)

Returns the value of attribute handler_class_name.



7
8
9
# File 'lib/deas/redirect_proxy.rb', line 7

def handler_class_name
  @handler_class_name
end