Module: ActionController::Routing
- Defined in:
- lib/action_controller/routing.rb
Overview
Defined Under Namespace
Modules: NamedRoutes
Classes: Component, ControllerComponent, DynamicComponent, PathComponent, Route, RouteSet, StaticComponent
Constant Summary
collapse
- Routes =
RouteSet.new
Class Method Summary
collapse
Class Method Details
.controller_relative_to(controller, previous) ⇒ Object
14
15
16
17
18
19
20
|
# File 'lib/action_controller/routing.rb', line 14
def controller_relative_to(controller, previous)
if controller.nil? then previous
elsif controller[0] == ?/ then controller[1..-1]
elsif %r{^(.*)/} =~ previous then "#{$1}/#{controller}"
else controller
end
end
|
.expiry_hash(options, recall) ⇒ Object
4
5
6
7
8
9
|
# File 'lib/action_controller/routing.rb', line 4
def expiry_hash(options, recall)
k = v = nil
expire_on = {}
options.each {|k, v| expire_on[k] = ((rcv = recall[k]) && (rcv != v))}
expire_on
end
|
11
12
13
|
# File 'lib/action_controller/routing.rb', line 11
def (parameter) CGI.escape((parameter.respond_to?(:to_param) ? parameter.to_param : parameter).to_s)
end
|
.test_condition(expression, condition) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/action_controller/routing.rb', line 34
def test_condition(expression, condition)
case condition
when String then "(#{expression} == #{condition.inspect})"
when Regexp then
condition = Regexp.new("^#{condition.source}$") unless /^\^.*\$$/ =~ condition.source
"(#{condition.inspect} =~ #{expression})"
when Array then
conds = condition.collect do |condition|
cond = test_condition(expression, condition)
(cond[0, 1] == '(' && cond[-1, 1] == ')') ? cond : "(#{cond})"
end
"(#{conds.join(' || ')})"
when true then expression
when nil then "! #{expression}"
else
raise ArgumentError, "Valid criteria are strings, regular expressions, true, or nil"
end
end
|
.treat_hash(hash, keys_to_delete = []) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/action_controller/routing.rb', line 22
def treat_hash(hash, keys_to_delete = [])
k = v = nil
hash.each do |k, v|
if v then hash[k] = (v.respond_to? :to_param) ? v.to_param.to_s : v.to_s
else
hash.delete k
keys_to_delete << k
end
end
hash
end
|