Class: ActionDispatch::Routing::RouteSet::NamedRouteCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/action_dispatch/routing/route_set.rb

Overview

A NamedRouteCollection instance is a collection of named routes, and also maintains an anonymous module that can be used to install helpers for the named routes.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNamedRouteCollection

Returns a new instance of NamedRouteCollection.



85
86
87
# File 'lib/action_dispatch/routing/route_set.rb', line 85

def initialize
  clear!
end

Instance Attribute Details

#helpersObject (readonly)

Returns the value of attribute helpers.



83
84
85
# File 'lib/action_dispatch/routing/route_set.rb', line 83

def helpers
  @helpers
end

#moduleObject (readonly)

Returns the value of attribute module.



83
84
85
# File 'lib/action_dispatch/routing/route_set.rb', line 83

def module
  @module
end

#routesObject (readonly)

Returns the value of attribute routes.



83
84
85
# File 'lib/action_dispatch/routing/route_set.rb', line 83

def routes
  @routes
end

Instance Method Details

#add(name, route) ⇒ Object Also known as: []=



102
103
104
105
# File 'lib/action_dispatch/routing/route_set.rb', line 102

def add(name, route)
  routes[name.to_sym] = route
  define_named_route_methods(name, route)
end

#clear!Object Also known as: clear



93
94
95
96
97
98
99
100
# File 'lib/action_dispatch/routing/route_set.rb', line 93

def clear!
  @routes = {}
  @helpers = []

  @module ||= Module.new do
    instance_methods.each { |selector| remove_method(selector) }
  end
end

#eachObject



115
116
117
118
# File 'lib/action_dispatch/routing/route_set.rb', line 115

def each
  routes.each { |name, route| yield name, route }
  self
end

#get(name) ⇒ Object Also known as: []



107
108
109
# File 'lib/action_dispatch/routing/route_set.rb', line 107

def get(name)
  routes[name.to_sym]
end

#helper_namesObject



89
90
91
# File 'lib/action_dispatch/routing/route_set.rb', line 89

def helper_names
  self.module.instance_methods.map(&:to_s)
end

#install(destinations = [ActionController::Base, ActionView::Base], regenerate = false) ⇒ Object



136
137
138
139
140
141
# File 'lib/action_dispatch/routing/route_set.rb', line 136

def install(destinations = [ActionController::Base, ActionView::Base], regenerate = false)
  reset! if regenerate
  Array(destinations).each do |dest|
    dest.__send__(:include, @module)
  end
end

#lengthObject



124
125
126
# File 'lib/action_dispatch/routing/route_set.rb', line 124

def length
  routes.length
end

#namesObject



120
121
122
# File 'lib/action_dispatch/routing/route_set.rb', line 120

def names
  routes.keys
end

#reset!Object



128
129
130
131
132
133
134
# File 'lib/action_dispatch/routing/route_set.rb', line 128

def reset!
  old_routes = routes.dup
  clear!
  old_routes.each do |name, route|
    add(name, route)
  end
end