duck_map 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/duck_map/handlers/show.rb +7 -112
- data/lib/duck_map/list.rb +4 -5
- data/lib/duck_map/mapper.rb +4 -0
- data/lib/duck_map/route_set.rb +2 -0
- data/lib/duck_map/sitemap_object.rb +13 -0
- data/lib/duck_map/version.rb +1 -1
- data/lib/generators/duckmap/sitemaps/sitemaps_generator.rb +3 -3
- metadata +2 -2
@@ -10,7 +10,6 @@ module DuckMap
|
|
10
10
|
##################################################################################
|
11
11
|
def sitemap_show(options = {})
|
12
12
|
rows = []
|
13
|
-
puts YAML.dump(options)
|
14
13
|
|
15
14
|
# always start off with default values from config, then, simply overwrite them as we progress.
|
16
15
|
values = sitemap_defaults(options)
|
@@ -24,32 +23,21 @@ puts YAML.dump(options)
|
|
24
23
|
|
25
24
|
# first, capture the values from the controller.
|
26
25
|
attributes = self.sitemap_stripped_attributes(options[:action_name])
|
27
|
-
puts "............................ attributes"
|
28
|
-
puts YAML.dump(attributes)
|
29
|
-
|
30
26
|
values = values.merge(self.sitemap_capture_attributes(attributes))
|
31
|
-
puts "---------------------------------==== values"
|
32
|
-
puts YAML.dump(values)
|
33
27
|
|
34
28
|
if options[:source] == :meta_data
|
35
|
-
|
29
|
+
|
36
30
|
# capture values from the first available model unless disabled.
|
37
31
|
model_object = sitemap_first_model(options[:handler])
|
38
|
-
|
32
|
+
|
39
33
|
unless model_object.blank?
|
40
34
|
model_attributes = attributes
|
41
35
|
if model_object.is_sitemap_attributes_defined?
|
42
36
|
model_attributes = model_object.sitemap_stripped_attributes(options[:action_name])
|
43
37
|
end
|
44
|
-
puts "**********************************************==== model_attributes"
|
45
|
-
puts YAML.dump(model_attributes)
|
46
|
-
|
47
|
-
puts "wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf wtf "
|
48
|
-
puts YAML.dump(model_object.sitemap_capture_attributes(model_attributes))
|
49
38
|
|
50
39
|
values = values.merge(model_object.sitemap_capture_attributes(model_attributes))
|
51
|
-
|
52
|
-
puts YAML.dump(values)
|
40
|
+
|
53
41
|
end
|
54
42
|
|
55
43
|
if values[:canonical].blank?
|
@@ -60,8 +48,6 @@ puts YAML.dump(values)
|
|
60
48
|
else
|
61
49
|
values[:loc] = values[:canonical]
|
62
50
|
end
|
63
|
-
puts "............................ values"
|
64
|
-
puts YAML.dump(values)
|
65
51
|
|
66
52
|
rows.push(values)
|
67
53
|
|
@@ -102,8 +88,11 @@ puts YAML.dump(values)
|
|
102
88
|
# defined on the model. The model attributes win!
|
103
89
|
# same thing for segments below.
|
104
90
|
model_attributes = attributes
|
91
|
+
segment_mappings = self.sitemap_attributes(options[:action_name])[:segments]
|
92
|
+
|
105
93
|
if data_row.is_sitemap_attributes_defined?
|
106
94
|
model_attributes = data_row.sitemap_stripped_attributes(options[:action_name])
|
95
|
+
segment_mappings = data_row.sitemap_attributes(options[:action_name])[:segments]
|
107
96
|
end
|
108
97
|
|
109
98
|
row_values = values.merge(data_row.sitemap_capture_attributes(model_attributes))
|
@@ -112,7 +101,7 @@ puts YAML.dump(values)
|
|
112
101
|
|
113
102
|
if row_values[:canonical].blank?
|
114
103
|
|
115
|
-
segments = data_row.sitemap_capture_segments(
|
104
|
+
segments = data_row.sitemap_capture_segments(segment_mappings, options[:route].segments)
|
116
105
|
row_values[:canonical] = self.send("#{options[:route].name}_url", url_options.merge(segments))
|
117
106
|
row_values[:loc] = row_values[:canonical]
|
118
107
|
|
@@ -131,100 +120,6 @@ puts YAML.dump(values)
|
|
131
120
|
return sitemap_url_limit(rows, options[:handler])
|
132
121
|
end
|
133
122
|
|
134
|
-
###################################################################################
|
135
|
-
#def sitemap_show(options = {})
|
136
|
-
#rows = []
|
137
|
-
|
138
|
-
## always start off with default values from config, then, simply overwrite them as we progress.
|
139
|
-
#values = sitemap_defaults
|
140
|
-
|
141
|
-
#if options[:source] == :meta_data
|
142
|
-
|
143
|
-
## if the source is meta_data, that means this method call is the result of a user
|
144
|
-
## requesting an index page. Therefore, the controller action_name variable should be set.
|
145
|
-
## so, go ahead and use it.
|
146
|
-
|
147
|
-
#lastmod = self.sitemap_static_lastmod(controller_name, action_name)
|
148
|
-
#unless lastmod.blank?
|
149
|
-
#values[:lastmod] = lastmod
|
150
|
-
#end
|
151
|
-
|
152
|
-
## first, capture the values from the controller.
|
153
|
-
#attributes = self.sitemap_stripped_attributes(action_name)
|
154
|
-
#values = values.merge(self.sitemap_capture_attributes(attributes))
|
155
|
-
|
156
|
-
#if options[:handler][:first_model]
|
157
|
-
#model_object = sitemap_first_model(options[:handler])
|
158
|
-
#unless model_object.blank?
|
159
|
-
#values = values.merge(model_object.sitemap_capture_attributes(attributes))
|
160
|
-
#end
|
161
|
-
#end
|
162
|
-
|
163
|
-
#route = Rails.application.routes.find_route_via_path(request.path)
|
164
|
-
#values[:loc] = self.send("#{route.name}_url", params.merge({format: values[:url_format]}))
|
165
|
-
#values[:canonical] = values[:loc]
|
166
|
-
|
167
|
-
#rows.push(values)
|
168
|
-
|
169
|
-
#self.sitemap_meta_data = values
|
170
|
-
|
171
|
-
#elsif options[:source] == :sitemap
|
172
|
-
|
173
|
-
#begin
|
174
|
-
|
175
|
-
#route = options[:route]
|
176
|
-
|
177
|
-
#lastmod = self.sitemap_static_lastmod(route.controller_name, route.action_name)
|
178
|
-
#unless lastmod.blank?
|
179
|
-
#values[:lastmod] = lastmod
|
180
|
-
#end
|
181
|
-
|
182
|
-
#attributes = self.sitemap_stripped_attributes(options[:action_name])
|
183
|
-
#values = values.merge(self.sitemap_capture_attributes(attributes))
|
184
|
-
|
185
|
-
#data_rows = []
|
186
|
-
|
187
|
-
#if !options[:handler][:block].blank?
|
188
|
-
|
189
|
-
#data_rows = options[:handler][:block].call(options)
|
190
|
-
|
191
|
-
#elsif !options[:handler][:model].blank?
|
192
|
-
|
193
|
-
#data_rows = options[:handler][:model].send(:all)
|
194
|
-
|
195
|
-
#elsif !options[:model].blank?
|
196
|
-
|
197
|
-
#data_rows = options[:model].send(:all)
|
198
|
-
|
199
|
-
#end
|
200
|
-
|
201
|
-
#unless data_rows.kind_of?(Array)
|
202
|
-
#if data_rows.kind_of?(ActiveRecord::Base)
|
203
|
-
#data_rows = [data_rows]
|
204
|
-
#end
|
205
|
-
#end
|
206
|
-
|
207
|
-
#data_rows.each do |data_row|
|
208
|
-
|
209
|
-
#row_values = values.merge(data_row.sitemap_capture_attributes(attributes))
|
210
|
-
|
211
|
-
#segments = data_row.sitemap_capture_segments(attributes, route.segments)
|
212
|
-
|
213
|
-
#row_values[:canonical] = self.send("#{route.name}_url", {format: row_values[:url_format]}.merge(segments))
|
214
|
-
#row_values[:loc] = row_values[:canonical]
|
215
|
-
#rows.push(row_values)
|
216
|
-
|
217
|
-
#end
|
218
|
-
|
219
|
-
#rescue Exception => e
|
220
|
-
#DuckMap.logger.exception(e)
|
221
|
-
#end
|
222
|
-
|
223
|
-
#end
|
224
|
-
|
225
|
-
#return sitemap_url_limit(rows, values)
|
226
|
-
#end
|
227
|
-
|
228
123
|
end
|
229
124
|
|
230
125
|
end
|
data/lib/duck_map/list.rb
CHANGED
@@ -9,9 +9,9 @@ module DuckMap
|
|
9
9
|
|
10
10
|
key = options[:key].blank? ? :all : options[:key].to_s.downcase.to_sym
|
11
11
|
|
12
|
-
|
12
|
+
verbose = options.has_key?(:verbose) ? true : false
|
13
13
|
|
14
|
-
|
14
|
+
verbose = key.eql?(:all) ? verbose : true
|
15
15
|
|
16
16
|
puts "Searching for route: #{key}"
|
17
17
|
|
@@ -46,12 +46,11 @@ module DuckMap
|
|
46
46
|
|
47
47
|
puts %(#{"".ljust(40)} #{route.path.spec})
|
48
48
|
|
49
|
-
if
|
49
|
+
if verbose
|
50
50
|
|
51
51
|
sitemap_routes = Rails.application.routes.sitemap_routes(route)
|
52
52
|
if sitemap_routes.length > 0
|
53
|
-
|
54
|
-
#puts %(#{"".ljust(5)} path)
|
53
|
+
|
55
54
|
puts %(#{"".ljust(5)} --------------------------------------------------------------)
|
56
55
|
|
57
56
|
sitemap_routes.each do |sitemap_route|
|
data/lib/duck_map/mapper.rb
CHANGED
@@ -35,6 +35,10 @@ module DuckMap
|
|
35
35
|
@set.routes.last.sitemap_route_name = last_route_name
|
36
36
|
@set.routes.last.sitemap_raw_route_name = sitemap_raw_route_name
|
37
37
|
|
38
|
+
# this is how I am faking to always point to the SitemapController
|
39
|
+
# regardless of namespace
|
40
|
+
@set.routes.last.defaults[:controller] = "sitemap"
|
41
|
+
|
38
42
|
# determine if we added a duplicate route.
|
39
43
|
# The gem defines a default sitemap in config/routes.rb (inside the gem, not the app).
|
40
44
|
# So, it is very likely that most apps will be creating duplicates since most of the code is geared towards
|
data/lib/duck_map/route_set.rb
CHANGED
@@ -178,6 +178,19 @@ module DuckMap
|
|
178
178
|
keys.push(key)
|
179
179
|
end
|
180
180
|
|
181
|
+
if values[:lastmod].kind_of?(String)
|
182
|
+
begin
|
183
|
+
|
184
|
+
buffer = LastMod.to_date(values[:lastmod])
|
185
|
+
if buffer.kind_of?(Time)
|
186
|
+
values[:lastmod] = buffer
|
187
|
+
end
|
188
|
+
|
189
|
+
rescue Exception => e
|
190
|
+
# TODO logging
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
181
194
|
# process all of the keys in the list.
|
182
195
|
keys.each do |key|
|
183
196
|
|
data/lib/duck_map/version.rb
CHANGED
@@ -12,7 +12,7 @@ module Duckmap
|
|
12
12
|
required: false,
|
13
13
|
optional: true
|
14
14
|
|
15
|
-
class_option :
|
15
|
+
class_option :verbose, desc: "Include the routes contained in a sitemap"
|
16
16
|
|
17
17
|
def self.source_root
|
18
18
|
File.join(File.dirname(__FILE__), "templates")
|
@@ -22,8 +22,8 @@ module Duckmap
|
|
22
22
|
|
23
23
|
config = {key: key}
|
24
24
|
|
25
|
-
unless options[:
|
26
|
-
config[:
|
25
|
+
unless options[:verbose].blank?
|
26
|
+
config[:verbose] = options[:verbose]
|
27
27
|
end
|
28
28
|
|
29
29
|
DuckMap::List.new.build(config)
|
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.
|
4
|
+
version: 0.8.1
|
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-
|
12
|
+
date: 2013-02-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: highline
|