duck_map 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,15 +4,6 @@ module DuckMap
4
4
  module Handlers
5
5
 
6
6
  ##################################################################################
7
- # get default values and assign to local variable containing all values from a single url node
8
- # and meta tag values for the index action. the local variable is referred to as "values".
9
- # - user can override method and manipulate the default values...
10
- # index action is called.
11
- # - uses existing values generated via the index method
12
- # - gives the developer a chance to set instance values to handle special cases
13
- # lastmod is obtained from locale and merged with "values".
14
- # call sitemap_capture_attributes on the controller to capture values of the current state and merge them with "values".
15
- #
16
7
  module Index
17
8
  extend ActiveSupport::Concern
18
9
 
@@ -27,6 +18,40 @@ module DuckMap
27
18
  end
28
19
 
29
20
  ##################################################################################
21
+ # Default handler method for index actions.
22
+ #
23
+ # The source of a request for data can be from two sources.
24
+ # - sitemap requesting url nodes for a given route.
25
+ # - meta tag requesting data for HEAD section meta tags.
26
+ #
27
+ # This method will return an Array of Hashes that represent url nodes of a sitemap. Also,
28
+ # sitemap_meta_data is populated with a single Hash for meta tags. So, this is considered
29
+ # a shared method.
30
+ #
31
+ # The basic procedure is as follows:
32
+ #
33
+ # - default values are obtained from {DuckMap::Config} and stored in a return Hash.
34
+ # - if request source is :sitemap, then, the index method of the controller is called.
35
+ # This will allow you to set instance variables, etc. within the index method of a controller.
36
+ # - static last-modified date is obtained from config/locales/sitemap.yml
37
+ # - sitemap_capture_attributes is called directly on the controller. Any values are merged with the return Hash.
38
+ # - process some type of model in the following order of precedence depending on configuration.
39
+ # - process block
40
+ # if the controller was configured with a block, then, execute the block and use the return value
41
+ # as the data source for values.
42
+ # - process model configured via the handler
43
+ # if a model class was assigned to the handler, then, execute "all" method on the model and use the return value
44
+ # as the data source for values.
45
+ # - first model object automagically found on the controller
46
+ # unless "first_model" has been set to false, find the first instance of a model object on the controller
47
+ # and use it as the data source for values.
48
+ # - once a data source object has been established, call sitemap_capture_attributes to obtain values and merge
49
+ # them with the return Hash.
50
+ # - unless a canonical url has been obtained during any of the preceding steps, build the canonical url
51
+ # based on the route and data source object found during preceding steps.
52
+ # - add the return Hash to the return Array and set the meta tag instance variable.
53
+ # - done.
54
+ # @return [Array]
30
55
  def sitemap_index(options = {})
31
56
  rows = []
32
57
 
@@ -50,7 +75,6 @@ module DuckMap
50
75
 
51
76
  end
52
77
 
53
-
54
78
  lastmod = self.sitemap_static_lastmod(options[:controller_name], options[:action_name])
55
79
  unless lastmod.blank?
56
80
  values[:lastmod] = lastmod
@@ -115,6 +139,7 @@ module DuckMap
115
139
  # i'm really being lazy here, but, if the current route is
116
140
  # the root, then, reassign the url to eliminate ?format=html, etc.
117
141
  # from the url.
142
+ # index actions do not require segment keys, therefore, no need to process them.
118
143
  if !route.name.blank? && route.name.eql?("root")
119
144
  url_options.delete(:format)
120
145
  values[:canonical] = root_url(url_options)
@@ -127,6 +152,7 @@ module DuckMap
127
152
  values[:loc] = values[:canonical]
128
153
  end
129
154
 
155
+ # push the merged hash and set the instance variable for the meta tag
130
156
  rows.push(values)
131
157
 
132
158
  self.sitemap_meta_data = values
@@ -8,6 +8,60 @@ module DuckMap
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  ##################################################################################
11
+ # Default handler method for show actions.
12
+ #
13
+ # The source of a request for data can be from two sources.
14
+ # - sitemap requesting url nodes for a given route.
15
+ # - meta tag requesting data for HEAD section meta tags.
16
+ #
17
+ # This method will return an Array of Hashes that represent url nodes of a sitemap. Also,
18
+ # sitemap_meta_data is populated with a single Hash for meta tags. So, this is considered
19
+ # a shared method.
20
+ #
21
+ # The basic procedure is as follows:
22
+ #
23
+ # - default values are obtained from {DuckMap::Config} and stored in a return Hash.
24
+ # - the controller "show" action method is never called as it is not needed.
25
+ # - if the request is a meta tag, then, the show method has already been called.
26
+ # - if the request is a sitemap, then, we would looking for a list of rows instead of just one
27
+ # row, because, a show route would always be pointing to a single item and the sitemap would want to show
28
+ # all of those items or at least a defined list of them.
29
+ # - static last-modified date is obtained from config/locales/sitemap.yml
30
+ # - sitemap_capture_attributes is called directly on the controller. Any values are merged with the return Hash.
31
+ # - now, the processing splits based on the type of request.
32
+ # - if meta tag
33
+ # - first model object automagically found on the controller
34
+ # unless "first_model" has been set to false, find the first instance of a model object on the controller
35
+ # and use it as the data source for values.
36
+ # - unless a canonical url has been obtained during any of the preceding steps, build the canonical url
37
+ # based on the route and data source object found during preceding steps. the segment keys are NOT processed
38
+ # as the values should be automagically part of the url building since this is being called as part of an
39
+ # HTTP request. The segment key should simply already be there.
40
+ # - add the return Hash to the return Array and set the meta tag instance variable.
41
+ # - otherwise, assume sitemap
42
+ # - process some type of model in the following order of precedence depending on configuration.
43
+ # - process block
44
+ # if the controller was configured with a block, then, execute the block and use the return value
45
+ # as the data source for values.
46
+ # - process model configured via the handler
47
+ # if a model class was assigned to the handler, then, execute "all" method on the model and use the return value
48
+ # as the data source for values.
49
+ # - model object automagically found by the sitemap_build method.
50
+ # the "all" method is called on the model object.
51
+ # - first model object is never processed for the show method when the request is via a sitemap.
52
+ # the reason is the show method is never called, therefore, an instance of a model would not exist on the controller.
53
+ # - the goal is ALWAYS to work with a list of model objects. once a list has been established,
54
+ # process all of the model objects in the list.
55
+ # - for each object
56
+ # - build a row Hash based copied from all of the values captured thus far.
57
+ # - call sitemap_capture_attributes on the model to obtain values and merge them with the row Hash.
58
+ # - unless a canonical url has been obtained during any of the preceding steps, build the canonical url
59
+ # based on the route and data source object found during preceding steps. segment keys are build via a call
60
+ # to sitemap_capture_segments on the model.
61
+ # - add the row Hash to the return Array
62
+ # - do nothing to the meta tag instance variable.
63
+ # - done.
64
+ # @return [Array]
11
65
  def sitemap_show(options = {})
12
66
  rows = []
13
67
 
@@ -125,13 +125,11 @@ module DuckMap
125
125
  # this is where the actual filtering of routes occurs and is based on the current sitemap filter settings.
126
126
  # if the route passes the criteria, then, it is "marked" as part of the sitemap.
127
127
  # no need to evaluate it every time a sitemap is requested. evaluate it now and mark it.
128
-
129
- if !@set.routes.routes[index].blank? && @set.routes.routes[index].sitemap_route_name.blank?
130
- if @set.include_route?(@set.routes.routes[index]) && !sitemap_route_name.blank?
128
+ unless @set.routes.routes[index].blank?
129
+ if @set.routes.routes[index].sitemap_route_name.blank?
131
130
  @set.routes.routes[index].sitemap_route_name = sitemap_route_name
132
- total += 1
133
- else
134
- @set.routes.routes[index].sitemap_route_name = "do_not_use"
131
+ @set.routes.routes[index].available = @set.include_route?(@set.routes.routes[index])
132
+ total += @set.routes.routes[index].is_available? ? 1 : 0
135
133
  end
136
134
  end
137
135
 
@@ -16,260 +16,281 @@ module DuckMap
16
16
  extend ActiveSupport::Concern
17
17
  include DuckMap::ArrayHelper
18
18
 
19
- ##################################################################################
20
- #module InstanceMethods
21
-
22
- # Identifies the current routes as being a sitemap route.
23
- attr_accessor :is_sitemap
19
+ # Identifies the current routes as being a sitemap route.
20
+ attr_accessor :is_sitemap
24
21
 
25
- # The route name of the sitemap which the current route is assigned.
26
- attr_accessor :sitemap_route_name
22
+ # The route name of the sitemap which the current route is assigned.
23
+ attr_accessor :sitemap_route_name
27
24
 
28
- # The route name of the sitemap without the namespace.
29
- attr_accessor :sitemap_raw_route_name
25
+ # The route name of the sitemap without the namespace.
26
+ attr_accessor :sitemap_raw_route_name
30
27
 
31
- # Identifies that the current sitemap route was defined with a block.
32
- attr_accessor :sitemap_with_block
28
+ # Identifies that the current sitemap route was defined with a block.
29
+ attr_accessor :sitemap_with_block
33
30
 
34
- # Total amount of URL nodes allowed in the sitemap.
35
- attr_accessor :url_limit
31
+ # Total amount of URL nodes allowed in the sitemap.
32
+ attr_accessor :url_limit
36
33
 
37
- ##################################################################################
38
- # Identifies the current routes as being a sitemap route.
39
- # @return [Boolean] True if the route is a sitemap route, otherwise, false.
40
- def is_sitemap?
41
- @is_sitemap = @is_sitemap.nil? ? false : @is_sitemap
34
+ ##################################################################################
35
+ # Returns a boolean indicating if the route is available for use.
36
+ # @return [FalseClass, TrueClass]
37
+ def available
38
+ unless defined?(@available)
39
+ @available = true
42
40
  end
41
+ return @available
42
+ end
43
43
 
44
- ##################################################################################
45
- # @return [String] Namespace prefix used when creating the route.
46
- def namespace_prefix
47
- value = nil
48
-
49
- unless self.sitemap_raw_route_name.blank?
50
- value = self.sitemap_route_name.gsub(self.sitemap_raw_route_name, "")
51
- end
44
+ ##################################################################################
45
+ # Sets a boolean indicating if the route is available for use.
46
+ # @param [FalseClass, TrueClass] value Boolean indicating if the route is available for use.
47
+ # @return [FalseClass, TrueClass]
48
+ def available=(value)
49
+ @available = value
50
+ end
52
51
 
53
- return value
54
- end
52
+ ##################################################################################
53
+ # Returns a boolean indicating if the route is available for use.
54
+ # @return [FalseClass, TrueClass]
55
+ def is_available?
56
+ return self.available
57
+ end
55
58
 
56
- ##################################################################################
57
- def namespace_prefix_underscores
58
- value = 0
59
+ ##################################################################################
60
+ # Identifies the current routes as being a sitemap route.
61
+ # @return [Boolean] True if the route is a sitemap route, otherwise, false.
62
+ def is_sitemap?
63
+ @is_sitemap = @is_sitemap.nil? ? false : @is_sitemap
64
+ end
59
65
 
60
- buffer = self.namespace_prefix
61
- unless buffer.blank?
62
- value = buffer.split("_").length
63
- end
66
+ ##################################################################################
67
+ # @return [String] Namespace prefix used when creating the route.
68
+ def namespace_prefix
69
+ value = nil
64
70
 
65
- return value
71
+ unless self.sitemap_raw_route_name.blank?
72
+ value = self.sitemap_route_name.gsub(self.sitemap_raw_route_name, "")
66
73
  end
67
74
 
68
- ##################################################################################
69
- # Identifies that the current sitemap route was defined with a block.
70
- # @return [Boolean] True if the route was defined with a block, otherwise, false.
71
- def sitemap_with_block?
72
- @sitemap_with_block = @sitemap_with_block.nil? ? false : @sitemap_with_block
73
- end
75
+ return value
76
+ end
74
77
 
75
- ##################################################################################
76
- # Conveience method to return the name assigned to the route. There is no need for nil
77
- # checking the return value of this method. It will simply return an empty String.
78
- # @return [String] Name assigned to the route.
79
- def route_name
80
- return "#{self.name}"
81
- end
78
+ ##################################################################################
79
+ def namespace_prefix_underscores
80
+ value = 0
82
81
 
83
- ##################################################################################
84
- # Returns the controller_name assigned to the route.
85
- # @return [String] Controller_name name assigned to the route.
86
- def controller_name
87
- return self.requirements[:controller].blank? ? "" : self.requirements[:controller].to_s
82
+ buffer = self.namespace_prefix
83
+ unless buffer.blank?
84
+ value = buffer.split("_").length
88
85
  end
89
86
 
90
- ##################################################################################
91
- # Returns the action assigned to the route.
92
- # @return [String] Action name assigned to the route.
93
- def action_name
94
- return self.requirements[:action].blank? ? "" : self.requirements[:action].to_s
95
- end
87
+ return value
88
+ end
96
89
 
97
- ##################################################################################
98
- # The class name (as a String) of a model to be used as the source of rows for a route
99
- # when generating sitemap content.
100
- # @return [String]
101
- def model
102
- return self.defaults[:model]
103
- end
90
+ ##################################################################################
91
+ # Identifies that the current sitemap route was defined with a block.
92
+ # @return [Boolean] True if the route was defined with a block, otherwise, false.
93
+ def sitemap_with_block?
94
+ @sitemap_with_block = @sitemap_with_block.nil? ? false : @sitemap_with_block
95
+ end
104
96
 
105
- ##################################################################################
106
- # Setting changefreq directly on the route will override values set within a controller and model.
107
- # This value will be used when generating a sitemap for the specific route.
108
- #
109
- # MyApp::Application.routes.draw do
110
- #
111
- # resources :trucks, :changefreq => "daily"
112
- #
113
- # end
114
- #
115
- # produces url's like the following:
116
- #
117
- # <url>
118
- # <loc>http://localhost:3000/trucks/1.html</loc>
119
- # <lastmod>2011-10-13T06:16:24+00:00</lastmod>
120
- # <changefreq>daily</changefreq>
121
- # <priority>0.5</priority>
122
- # </url>
123
- #
124
- # @return [String] Current value of changefreq.
125
- def changefreq
126
- return self.defaults[:changefreq]
127
- end
97
+ ##################################################################################
98
+ # Conveience method to return the name assigned to the route. There is no need for nil
99
+ # checking the return value of this method. It will simply return an empty String.
100
+ # @return [String] Name assigned to the route.
101
+ def route_name
102
+ return "#{self.name}"
103
+ end
128
104
 
129
- ##################################################################################
130
- # Setting priority directly on the route will override values set within a controller and model.
131
- # This value will be used when generating a sitemap for the specific route.
132
- #
133
- # MyApp::Application.routes.draw do
134
- #
135
- # resources :trucks, :priority => "0.4"
136
- #
137
- # end
138
- #
139
- # produces url's like the following:
140
- #
141
- # <url>
142
- # <loc>http://localhost:3000/trucks/1.html</loc>
143
- # <lastmod>2011-10-13T06:16:24+00:00</lastmod>
144
- # <changefreq>monthly</changefreq>
145
- # <priority>0.4</priority>
146
- # </url>
147
- #
148
- # @return [String] Current value of priority.
149
- def priority
150
- return self.defaults[:priority]
151
- end
105
+ ##################################################################################
106
+ # Returns the controller_name assigned to the route.
107
+ # @return [String] Controller_name name assigned to the route.
108
+ def controller_name
109
+ return self.requirements[:controller].blank? ? "" : self.requirements[:controller].to_s
110
+ end
152
111
 
153
- ##################################################################################
154
- # Specifies the extension that should be used when generating a url for the route within a sitemap.
155
- #
156
- # MyApp::Application.routes.draw do
157
- #
158
- # resources :trucks, :url_format => "xml"
159
- #
160
- # end
161
- #
162
- # produces url's like the following:
163
- #
164
- # <loc>http://localhost:3000/trucks/1.xml</loc>
165
- # <loc>http://localhost:3000/trucks/2.xml</loc>
166
- #
167
- # @return [String]
168
- def url_format
169
- # a quick hack to default the extension for the root url to :none
170
- return self.defaults[:url_format].blank? && self.route_name.eql?("root") ? :none : self.defaults[:url_format]
171
- end
112
+ ##################################################################################
113
+ # Returns the action assigned to the route.
114
+ # @return [String] Action name assigned to the route.
115
+ def action_name
116
+ return self.requirements[:action].blank? ? "" : self.requirements[:action].to_s
117
+ end
172
118
 
173
- ##################################################################################
174
- def exclude_actions
175
- return self.duckmap_defaults(:exclude_actions)
176
- end
119
+ ##################################################################################
120
+ # The class name (as a String) of a model to be used as the source of rows for a route
121
+ # when generating sitemap content.
122
+ # @return [String]
123
+ def model
124
+ return self.defaults[:model]
125
+ end
177
126
 
178
- ##################################################################################
179
- def exclude_controllers
180
- return self.duckmap_defaults(:exclude_controllers)
181
- end
127
+ ##################################################################################
128
+ # Setting changefreq directly on the route will override values set within a controller and model.
129
+ # This value will be used when generating a sitemap for the specific route.
130
+ #
131
+ # MyApp::Application.routes.draw do
132
+ #
133
+ # resources :trucks, :changefreq => "daily"
134
+ #
135
+ # end
136
+ #
137
+ # produces url's like the following:
138
+ #
139
+ # <url>
140
+ # <loc>http://localhost:3000/trucks/1.html</loc>
141
+ # <lastmod>2011-10-13T06:16:24+00:00</lastmod>
142
+ # <changefreq>daily</changefreq>
143
+ # <priority>0.5</priority>
144
+ # </url>
145
+ #
146
+ # @return [String] Current value of changefreq.
147
+ def changefreq
148
+ return self.defaults[:changefreq]
149
+ end
182
150
 
183
- ##################################################################################
184
- def exclude_names
185
- return self.duckmap_defaults(:exclude_names)
186
- end
151
+ ##################################################################################
152
+ # Setting priority directly on the route will override values set within a controller and model.
153
+ # This value will be used when generating a sitemap for the specific route.
154
+ #
155
+ # MyApp::Application.routes.draw do
156
+ #
157
+ # resources :trucks, :priority => "0.4"
158
+ #
159
+ # end
160
+ #
161
+ # produces url's like the following:
162
+ #
163
+ # <url>
164
+ # <loc>http://localhost:3000/trucks/1.html</loc>
165
+ # <lastmod>2011-10-13T06:16:24+00:00</lastmod>
166
+ # <changefreq>monthly</changefreq>
167
+ # <priority>0.4</priority>
168
+ # </url>
169
+ #
170
+ # @return [String] Current value of priority.
171
+ def priority
172
+ return self.defaults[:priority]
173
+ end
187
174
 
188
- ##################################################################################
189
- def exclude_verbs
190
- return self.duckmap_defaults(:exclude_verbs)
191
- end
175
+ ##################################################################################
176
+ # Specifies the extension that should be used when generating a url for the route within a sitemap.
177
+ #
178
+ # MyApp::Application.routes.draw do
179
+ #
180
+ # resources :trucks, :url_format => "xml"
181
+ #
182
+ # end
183
+ #
184
+ # produces url's like the following:
185
+ #
186
+ # <loc>http://localhost:3000/trucks/1.xml</loc>
187
+ # <loc>http://localhost:3000/trucks/2.xml</loc>
188
+ #
189
+ # @return [String]
190
+ def url_format
191
+ # a quick hack to default the extension for the root url to :none
192
+ return self.defaults[:url_format].blank? && self.route_name.eql?("root") ? :none : self.defaults[:url_format]
193
+ end
192
194
 
193
- ##################################################################################
194
- def include_actions
195
- return self.duckmap_defaults(:include_actions)
196
- end
195
+ ##################################################################################
196
+ def exclude_actions
197
+ return self.duckmap_defaults(:exclude_actions)
198
+ end
197
199
 
198
- ##################################################################################
199
- def include_controllers
200
- return self.duckmap_defaults(:include_controllers)
201
- end
200
+ ##################################################################################
201
+ def exclude_controllers
202
+ return self.duckmap_defaults(:exclude_controllers)
203
+ end
202
204
 
203
- ##################################################################################
204
- def include_names
205
- return self.convert_to(self.duckmap_defaults(:include_names), :string)
206
- end
205
+ ##################################################################################
206
+ def exclude_names
207
+ return self.duckmap_defaults(:exclude_names)
208
+ end
207
209
 
208
- ##################################################################################
209
- def include_verbs
210
- return self.duckmap_defaults(:include_verbs)
211
- end
210
+ ##################################################################################
211
+ def exclude_verbs
212
+ return self.duckmap_defaults(:exclude_verbs)
213
+ end
212
214
 
213
- ##################################################################################
214
- def verb_symbol
215
- value = nil
216
- unless self.verb.blank?
217
- buffer = self.verb.to_s.downcase
218
- if buffer.include?("delete")
219
- value = :delete
215
+ ##################################################################################
216
+ def include_actions
217
+ return self.duckmap_defaults(:include_actions)
218
+ end
220
219
 
221
- elsif buffer.include?("get")
222
- value = :get
220
+ ##################################################################################
221
+ def include_controllers
222
+ return self.duckmap_defaults(:include_controllers)
223
+ end
223
224
 
224
- elsif buffer.include?("post")
225
- value = :post
225
+ ##################################################################################
226
+ def include_names
227
+ return self.convert_to(self.duckmap_defaults(:include_names), :string)
228
+ end
226
229
 
227
- elsif buffer.include?("put")
228
- value = :put
230
+ ##################################################################################
231
+ def include_verbs
232
+ return self.duckmap_defaults(:include_verbs)
233
+ end
229
234
 
230
- end
235
+ ##################################################################################
236
+ def verb_symbol
237
+ value = nil
238
+ unless self.verb.blank?
239
+ buffer = self.verb.to_s.downcase
240
+ if buffer.include?("delete")
241
+ value = :delete
231
242
 
232
- end
233
- return value
234
- end
243
+ elsif buffer.include?("get")
244
+ value = :get
235
245
 
236
- ##################################################################################
237
- # Indicates if the current route requirements segments keys to generate a url.
238
- # @return [Boolean] True if keys are required to generate a url, otherwise, false.
239
- def keys_required?
240
- keys = self.segment_keys.dup
241
- keys.delete(:format)
242
- return keys.length > 0 ? true : false
243
- end
246
+ elsif buffer.include?("post")
247
+ value = :post
244
248
 
245
- ##################################################################################
246
- # Looks for a key within ActionDispatch::Routing::Route.defaults.
247
- # If found:
248
- # - determine the type of value:
249
- # - If Array, return the array.
250
- # - If String, create an array, add the String to it, and return the array.
251
- # - If Symbol, create an array, add the Symbol to it, and return the array.
252
- # If nothing found, return an empty array.
253
- # returns [Array]
254
- def duckmap_defaults(key)
255
- values = []
249
+ elsif buffer.include?("put")
250
+ value = :put
256
251
 
257
- if self.defaults && self.defaults[key]
258
- if self.defaults[key].kind_of?(Array)
259
- values = self.defaults[key]
252
+ end
260
253
 
261
- elsif self.defaults[key].kind_of?(String)
262
- values.push(self.defaults[key])
254
+ end
255
+ return value
256
+ end
263
257
 
264
- elsif self.defaults[key].kind_of?(Symbol)
265
- values.push(self.defaults[key])
258
+ ##################################################################################
259
+ # Indicates if the current route requirements segments keys to generate a url.
260
+ # @return [Boolean] True if keys are required to generate a url, otherwise, false.
261
+ def keys_required?
262
+ keys = self.segment_keys.dup
263
+ keys.delete(:format)
264
+ return keys.length > 0 ? true : false
265
+ end
266
266
 
267
- end
268
- end
267
+ ##################################################################################
268
+ # Looks for a key within ActionDispatch::Routing::Route.defaults.
269
+ # If found:
270
+ # - determine the type of value:
271
+ # - If Array, return the array.
272
+ # - If String, create an array, add the String to it, and return the array.
273
+ # - If Symbol, create an array, add the Symbol to it, and return the array.
274
+ # If nothing found, return an empty array.
275
+ # returns [Array]
276
+ def duckmap_defaults(key)
277
+ values = []
278
+
279
+ if self.defaults && self.defaults[key]
280
+ if self.defaults[key].kind_of?(Array)
281
+ values = self.defaults[key]
282
+
283
+ elsif self.defaults[key].kind_of?(String)
284
+ values.push(self.defaults[key])
285
+
286
+ elsif self.defaults[key].kind_of?(Symbol)
287
+ values.push(self.defaults[key])
269
288
 
270
- return values
289
+ end
271
290
  end
272
- #end
291
+
292
+ return values
293
+ end
273
294
 
274
295
  end
275
296
  end
@@ -106,6 +106,7 @@ module DuckMap
106
106
  end
107
107
 
108
108
  list.reject! {|route| route.path.spec =~ %r{/rails/info/properties|^/assets}}
109
+ list.reject! {|route| !route.is_available?}
109
110
 
110
111
  return list
111
112
  end
@@ -1,3 +1,3 @@
1
1
  module DuckMap
2
- VERSION = "0.8.1"
2
+ VERSION = "0.8.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duck_map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-20 00:00:00.000000000 Z
12
+ date: 2013-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: highline