Class: ActionDispatch::Routing::Route
- Inherits:
-
Object
- Object
- ActionDispatch::Routing::Route
- Defined in:
- actionpack/lib/action_dispatch/routing/route.rb
Overview
:nodoc:
Instance Attribute Summary (collapse)
-
- (Object) app
readonly
Returns the value of attribute app.
-
- (Object) conditions
readonly
Returns the value of attribute conditions.
-
- (Object) defaults
readonly
Returns the value of attribute defaults.
-
- (Object) name
readonly
Returns the value of attribute name.
-
- (Object) path
readonly
Returns the value of attribute path.
-
- (Object) requirements
readonly
Returns the value of attribute requirements.
-
- (Object) set
readonly
Returns the value of attribute set.
Instance Method Summary (collapse)
-
- (Route) initialize(set, app, conditions, requirements, defaults, name, anchor)
constructor
A new instance of Route.
- - (Object) segment_keys
- - (Object) to_a
- - (Object) to_s
- - (Object) verb
Constructor Details
- (Route) initialize(set, app, conditions, requirements, defaults, name, anchor)
A new instance of Route
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 7 def initialize(set, app, conditions, requirements, defaults, name, anchor) @set = set @app = app @defaults = defaults @name = name @requirements = requirements.merge(defaults) @requirements.delete(:controller) if @requirements[:controller].is_a?(Regexp) @requirements.delete_if { |k, v| v == Regexp.compile("[^#{SEPARATORS.join}]+") } if path = conditions[:path_info] @path = path conditions[:path_info] = ::Rack::Mount::Strexp.compile(path, requirements, SEPARATORS, anchor) end @conditions = Hash[conditions.map { |k,v| [k, Rack::Mount::RegexpWithNamedGroups.new(v)] }] @conditions.delete_if{ |k,v| k != :path_info && !valid_condition?(k) } @requirements.delete_if{ |k,v| !valid_condition?(k) } end |
Instance Attribute Details
- (Object) app (readonly)
Returns the value of attribute app
4 5 6 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 4 def app @app end |
- (Object) conditions (readonly)
Returns the value of attribute conditions
4 5 6 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 4 def conditions @conditions end |
- (Object) defaults (readonly)
Returns the value of attribute defaults
4 5 6 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 4 def defaults @defaults end |
- (Object) name (readonly)
Returns the value of attribute name
4 5 6 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 4 def name @name end |
- (Object) path (readonly)
Returns the value of attribute path
5 6 7 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 5 def path @path end |
- (Object) requirements (readonly)
Returns the value of attribute requirements
5 6 7 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 5 def requirements @requirements end |
- (Object) set (readonly)
Returns the value of attribute set
5 6 7 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 5 def set @set end |
Instance Method Details
- (Object) segment_keys
41 42 43 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 41 def segment_keys @segment_keys ||= conditions[:path_info].names.compact.map { |key| key.to_sym } end |
- (Object) to_a
45 46 47 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 45 def to_a [@app, @conditions, @defaults, @name] end |
- (Object) to_s
49 50 51 52 53 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 49 def to_s @to_s ||= begin "%-6s %-40s %s" % [(verb || :any).to_s.upcase, path, requirements.inspect] end end |
- (Object) verb
29 30 31 32 33 34 35 36 37 38 39 |
# File 'actionpack/lib/action_dispatch/routing/route.rb', line 29 def verb if method = conditions[:request_method] case method when Regexp source = method.source.upcase source =~ /\A\^[-A-Z|]+\$\Z/ ? source[1..-2] : source else method.to_s.upcase end end end |