Class: Rack::Rewrite::Action

Inherits:
Object
  • Object
show all
Defined in:
lib/rack_rewrite/actions.rb

Direct Known Subclasses

Do, Fail, Pass, Redirect, Set

Defined Under Namespace

Classes: Do, Fail, Pass, Redirect, Set

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object


34
35
36
# File 'lib/rack_rewrite/actions.rb', line 34

def method_missing(method, *args, &block)
  @request.send(method, *args, &block)
end

Instance Method Details

#query_string=(params) ⇒ Object


16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rack_rewrite/actions.rb', line 16

def query_string=(params)
  env = @request.env
  env['QUERY_STRING'] = case params
  when Hash
    params.inject([]) { |qs, (k, v)| qs << "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"} * '&'
  else
    params
  end
  
  @request = Rack::Request.new(env)
end

#respond_to?(method) ⇒ Boolean

Returns:

  • (Boolean)

12
13
14
# File 'lib/rack_rewrite/actions.rb', line 12

def respond_to?(method)
  @request.respond_to?(method) || super
end

#scheme=(scheme) ⇒ Object


28
29
30
31
32
# File 'lib/rack_rewrite/actions.rb', line 28

def scheme=(scheme)
  env = @request.env
  env['rack.url_scheme'] = scheme  
  @request = Rack::Request.new(env)
end

#setup(env) ⇒ Object


8
9
10
# File 'lib/rack_rewrite/actions.rb', line 8

def setup(env)
  @request = Rack::Request.new(env)
end