Class: ActionController::Routing::PathComponent

Inherits:
DynamicComponent show all
Defined in:
lib/action_controller/routing.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Result

Instance Attribute Summary

Attributes inherited from DynamicComponent

#key

Instance Method Summary collapse

Methods inherited from DynamicComponent

#add_segments_to, #assign_default, #assign_result, #default_check, #dynamic?, #initialize, #recognition_check, #write_continue_generation, #write_dropout_generation

Methods inherited from Component

#dynamic?, #key, new

Constructor Details

This class inherits a constructor from ActionController::Routing::DynamicComponent

Instance Method Details

#conditionObject



245
# File 'lib/action_controller/routing.rb', line 245

def condition() nil  end

#defaultObject



244
# File 'lib/action_controller/routing.rb', line 244

def default()   []  end

#default=(value) ⇒ Object

Raises:

  • (RoutingError)


247
248
249
# File 'lib/action_controller/routing.rb', line 247

def default=(value)
  raise RoutingError, "All path components have an implicit default of []" unless value == []
end

#optional?Boolean

Returns:

  • (Boolean)


243
# File 'lib/action_controller/routing.rb', line 243

def optional?() true end

#write_generation(g) ⇒ Object

Raises:

  • (RoutingError)


251
252
253
254
255
256
257
258
# File 'lib/action_controller/routing.rb', line 251

def write_generation(g)
  raise RoutingError, 'Path components must occur last' unless g.after.empty?
  g.if("#{g.hash_value(key, true)} && ! #{g.hash_value(key, true)}.empty?") do
    g << "#{g.hash_value(key, true)} = #{g.hash_value(key, true)}.join('/') unless #{g.hash_value(key, true)}.is_a?(String)"
    g.add_segment("\#{CGI.escape_skipping_slashes(#{g.hash_value(key, true)})}") {|gp| gp.finish }
  end
  g.else { g.finish }
end

#write_recognition(g) ⇒ Object

Raises:

  • (RoutingError)


260
261
262
263
264
265
266
267
268
269
# File 'lib/action_controller/routing.rb', line 260

def write_recognition(g)
  raise RoutingError, "Path components must occur last" unless g.after.empty?
    
  start = g.index_name
  start = "(#{start})" unless /^\w+$/ =~ start
    
  value_expr = "#{g.path_name}[#{start}..-1] || []"
  g.result key, "ActionController::Routing::PathComponent::Result.new_escaped(#{value_expr})"
  g.finish(false)
end