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.



87
88
89
# File 'lib/action_dispatch/routing/route_set.rb', line 87

def initialize
  clear!
end

Instance Attribute Details

#helpersObject (readonly)

Returns the value of attribute helpers.



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

def helpers
  @helpers
end

#moduleObject (readonly)

Returns the value of attribute module.



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

def module
  @module
end

#routesObject (readonly)

Returns the value of attribute routes.



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

def routes
  @routes
end

Instance Method Details

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



104
105
106
107
# File 'lib/action_dispatch/routing/route_set.rb', line 104

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

#clear!Object Also known as: clear



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

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

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

#eachObject



117
118
119
120
# File 'lib/action_dispatch/routing/route_set.rb', line 117

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

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



109
110
111
# File 'lib/action_dispatch/routing/route_set.rb', line 109

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

#helper_namesObject



91
92
93
# File 'lib/action_dispatch/routing/route_set.rb', line 91

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

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



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

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

#lengthObject



126
127
128
# File 'lib/action_dispatch/routing/route_set.rb', line 126

def length
  routes.length
end

#namesObject



122
123
124
# File 'lib/action_dispatch/routing/route_set.rb', line 122

def names
  routes.keys
end

#reset!Object



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

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