duck_map 0.8.4 → 0.8.6

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 305fb5ad0e27605cee8fc74c2a2e4503a1df9a83
4
+ data.tar.gz: 20c88d54a9cfb4ed011fe8cb260f2e1af0936f45
5
+ SHA512:
6
+ metadata.gz: 1f69066f412ac398337f4a8a3d2e3087a586303488eabe15a6bc442d76fe4ff02d7e684497ef3a54d89df361dc92e15c86c40c9e2ecc9b78101b990d098c7a64
7
+ data.tar.gz: 8505654b66ebe33decedb58ee7ee3be7ffdf0a31230acb74253ee1632aab9db0c491d1aeda80cde93b3bb750cef45f1b47a38dc13d88758237573c43a4573364
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  module DuckMap
3
2
 
4
3
  # This is a small helper used to ensure values in an Array of are a certain type.
@@ -1,12 +1,11 @@
1
- # DONE
2
1
  require 'active_support/concern'
3
2
 
4
3
  module DuckMap
5
4
 
6
5
  ##################################################################################
7
6
  # This module has a single purpose. To declare a class-level attribute using the Rails class_attribute method.
8
- # Also, we are using {ActiveSupport::Concern} and the included block. This module is included in
9
- # {ActionController::Base}, so, every controller object will have the attribute.
7
+ # Also, we are using ActiveSupport::Concern and the included block. This module is included in
8
+ # ActionController::Base, so, every controller object will have the attribute.
10
9
  #
11
10
  # See {DuckMap::Attributes::ClassMethods#sitemap_attributes} for an explanation.
12
11
  module InheritableClassAttributes
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  module DuckMap
3
2
 
4
3
  ##################################################################################
@@ -1,5 +1,3 @@
1
- require 'journey'
2
-
3
1
  module DuckMap
4
2
  extend ActiveSupport::Autoload
5
3
 
@@ -33,7 +31,7 @@ module DuckMap
33
31
 
34
32
  end
35
33
 
36
- class DuckMapEngine < Rails::Engine
34
+ class Engine < Rails::Engine
37
35
 
38
36
  # # this is so I can develop the gem
39
37
  # # run dev.com, make changes to files in lib/duck_captcha, refresh browser.
@@ -49,7 +47,7 @@ module DuckMap
49
47
  seo: "%a, %d %b %Y %H:%M:%S %Z")
50
48
  end
51
49
 
52
- Journey::Route.send :include, Route
50
+ ActionDispatch::Journey::Route.send :include, Route
53
51
 
54
52
  ActionDispatch::Routing::RouteSet.send :include, RouteSet
55
53
  ActionDispatch::Routing::RouteSet.send :include, RouteFilter
@@ -64,11 +62,13 @@ module DuckMap
64
62
  ActiveRecord::Base.send :include, SitemapObject
65
63
  end
66
64
 
67
- ActiveSupport.on_load(:action_controller) do
65
+ ActiveSupport.on_load(:after_initialize) do
68
66
  ActionController::Base.send :include, InheritableClassAttributes
69
67
  ActionController::Base.send :include, Attributes
70
68
  ActionController::Base.send :include, ControllerHelpers
71
69
  ActionController::Base.send :include, Handlers::Base
70
+ ActionController::Base.send :include, Handlers::Edit
71
+ ActionController::Base.send :include, Handlers::New
72
72
  ActionController::Base.send :include, Handlers::Index
73
73
  ActionController::Base.send :include, Handlers::Show
74
74
  ActionController::Base.send :include, Model
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  require 'active_support/concern'
3
2
 
4
3
  module DuckMap
@@ -3,6 +3,8 @@ require 'active_support/concern'
3
3
  module DuckMap
4
4
  module Handlers
5
5
 
6
+ autoload :Edit, "duck_map/handlers/edit"
7
+ autoload :New, "duck_map/handlers/new"
6
8
  autoload :Index, "duck_map/handlers/index"
7
9
  autoload :Show, "duck_map/handlers/show"
8
10
 
@@ -0,0 +1,19 @@
1
+ require 'active_support/concern'
2
+
3
+ module DuckMap
4
+ module Handlers
5
+
6
+ ##################################################################################
7
+ module Edit
8
+ extend ActiveSupport::Concern
9
+
10
+ ##################################################################################
11
+ # Not implemented yet.
12
+ def sitemap_edit(options = {})
13
+ return []
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
@@ -7,16 +7,6 @@ module DuckMap
7
7
  module Index
8
8
  extend ActiveSupport::Concern
9
9
 
10
- ##################################################################################
11
- def sitemap_new(options = {})
12
- return []
13
- end
14
-
15
- ##################################################################################
16
- def sitemap_edit(options = {})
17
- return []
18
- end
19
-
20
10
  ##################################################################################
21
11
  # Default handler method for index actions.
22
12
  #
@@ -0,0 +1,19 @@
1
+ require 'active_support/concern'
2
+
3
+ module DuckMap
4
+ module Handlers
5
+
6
+ ##################################################################################
7
+ module New
8
+ extend ActiveSupport::Concern
9
+
10
+ ##################################################################################
11
+ # Not implemented yet.
12
+ def sitemap_new(options = {})
13
+ return []
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  module DuckMap
3
2
 
4
3
  ##################################################################################
@@ -9,7 +8,7 @@ module DuckMap
9
8
  # Parses a DateTime represented as a String into a DateTime value. If value is String, then, it is parsed
10
9
  # and returns a DateTime Object if valid. Otherwise, it returns nil. If the value passed is a Date, Time, or DateTime, then,
11
10
  # it is returned as is.
12
- # @param [String] A DateTime represented as a String to parse or can be a Date, Time, or DateTime value.
11
+ # @param [String] value A DateTime represented as a String to parse or can be a Date, Time, or DateTime value.
13
12
  # @return [DateTime] DateTime value.
14
13
  def self.to_date(value)
15
14
  date_value = nil
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  module DuckMap
3
2
 
4
3
  # Logger class generates logging information in log/duckmap.log
@@ -11,6 +11,12 @@ module DuckMap
11
11
 
12
12
  ##################################################################################
13
13
  # Defines a sitemap for a Rails app.
14
+ #
15
+ #
16
+ # You can find a few examples and apps at:
17
+ # - (http://www.jeffduckett.com/blog/11/defining-rails-3-x-sitemaps-using-duckmap.html)
18
+ # - (http://www.jeffduckett.com/blog/12/multiple-sitemap-definitions.html)
19
+ #
14
20
  # @return [Nil]
15
21
  def sitemap(name = :sitemap, options = {}, &block)
16
22
  options = name.kind_of?(Hash) ? name : options
@@ -20,14 +26,15 @@ module DuckMap
20
26
  sitemap_raw_route_name = "#{name}_sitemap"
21
27
 
22
28
  # create a route for the sitemap using the name that was passed to the sitemap method inside config/routes.
23
- match %(/#{name}.:format), controller: config[:controller], action: name, as: sitemap_raw_route_name
29
+ match %(/#{name}.:format), controller: config[:controller], action: name, via: [:get], as: sitemap_raw_route_name
24
30
 
25
31
  # the current Rails implementation keeps the routes in an array. Also, it does nothing to prevent duplicate routes from being added.
26
32
  # at the time of development, the route is always at the end of the list, so, it is pretty safe to assume
27
33
  # the last route in the list is the sitemap route we just added.
28
-
34
+
29
35
  # last_route_name is used after we check to see if we just added a duplicate route.
30
- last_route_name = @set.routes.last.route_name
36
+ #last_route_name = @set.routes.last.route_name
37
+ last_route_name = @set.routes.last.name
31
38
 
32
39
  # identify the route as a "sitemap" route and build it's full name.
33
40
  @set.routes.last.is_sitemap = true
@@ -145,7 +152,7 @@ module DuckMap
145
152
  extend ActiveSupport::Concern
146
153
 
147
154
  ##################################################################################
148
- # See {DuckMap::Sitemap::RouteFilter::InstanceMethods#blank_route_name blank_route_name}
155
+ # See {DuckMap::RouteFilter#blank_route_name blank_route_name}
149
156
  def allow_blank_route_name(value)
150
157
  @set.blank_route_name = value
151
158
  end
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  require 'active_support/concern'
3
2
 
4
3
  module DuckMap
@@ -20,6 +20,8 @@ module DuckMap
20
20
  ##################################################################################
21
21
  # Mixin module for ActionDispatch::Routing::RouteSet. This module is responsible for evaluating each route
22
22
  # for consideration to be included in a sitemap.
23
+ #
24
+ # You can find a few examples and apps at: (http://www.jeffduckett.com/blog/15/route-filters.html)
23
25
  module RouteFilter
24
26
  extend ActiveSupport::Concern
25
27
 
@@ -10,8 +10,8 @@ module DuckMap
10
10
 
11
11
  ##################################################################################
12
12
  # Builds a list of routes associated with a sitemap. The actual list of routes returned is based
13
- # on {DuckMap::Sitemap::Route::InstanceMethods#sitemap_route_name sitemap_route_name}, which is the named route of the sitemap.
14
- # @note See {DuckMap::Sitemap::Mapper::InstanceMethods#sitemap} for a full explanation of how to define a sitemap and how those rules affect this method.
13
+ # on {DuckMap::Route#sitemap_route_name sitemap_route_name}, which is the named route of the sitemap.
14
+ # @note See {DuckMap::Mapper#sitemap} for a full explanation of how to define a sitemap and how those rules affect this method.
15
15
  # @param [String] name_or_path The request.path of the current sitemap url or the name assigned to the sitemap via config/routes.rb.
16
16
  # @return [Array]
17
17
  def find_sitemap_route(name_or_path)
@@ -35,9 +35,9 @@ module DuckMap
35
35
 
36
36
  ##################################################################################
37
37
  # Builds a list of routes associated with a sitemap route. The actual list of routes returned is based
38
- # on {DuckMap::Sitemap::Route::InstanceMethods#sitemap_route_name sitemap_route_name}, which is the named
38
+ # on {DuckMap::Route#sitemap_route_name sitemap_route_name}, which is the named
39
39
  # route of the sitemap.
40
- # @note See {DuckMap::Sitemap::Mapper::InstanceMethods#sitemap} for a full explanation of how to define a sitemap and how those rules affect this method.
40
+ # @note See {DuckMap::Mapper#sitemap} for a full explanation of how to define a sitemap and how those rules affect this method.
41
41
  # @param [String] sitemap_route A sitemap route.
42
42
  # @return [Array]
43
43
  def sitemap_routes(sitemap_route)
@@ -58,7 +58,6 @@ module DuckMap
58
58
  else
59
59
 
60
60
  candidates = self.routes.find_all {|route| !route.is_sitemap?}
61
-
62
61
  potential_owners = self.routes.find_all {|route| route.is_sitemap?}
63
62
  potential_owners.sort! { |a,b| b.namespace_prefix_underscores <=> a.namespace_prefix_underscores}
64
63
 
@@ -106,6 +105,7 @@ module DuckMap
106
105
  end
107
106
 
108
107
  list.reject! {|route| route.path.spec =~ %r{/rails/info/properties|^/assets}}
108
+ list.reject! {|route| route.name.eql?("rails_info")}
109
109
  list.reject! {|route| !route.is_available?}
110
110
 
111
111
  return list
@@ -155,7 +155,7 @@ module DuckMap
155
155
  ##################################################################################
156
156
  def find_route_via_path(path, environment = {})
157
157
  method = (environment[:method] || "GET").to_s.upcase
158
- path = Journey::Router::Utils.normalize_path(path) unless path =~ %r{://}
158
+ path = ActionDispatch::Journey::Router::Utils.normalize_path(path) unless path =~ %r{://}
159
159
 
160
160
  begin
161
161
  env = Rack::MockRequest.env_for(path, {:method => method})
@@ -167,13 +167,13 @@ module DuckMap
167
167
  @router.recognize(req) do |route, matches, params|
168
168
  params.each do |key, value|
169
169
  if value.is_a?(String)
170
- value = value.dup.force_encoding(Encoding::BINARY) if value.encoding_aware?
170
+ value = value.dup.force_encoding(Encoding::BINARY)# if value.encoding_aware?
171
171
  params[key] = URI.parser.unescape(value)
172
172
  end
173
173
  end
174
174
 
175
175
  dispatcher = route.app
176
- #while dispatcher.is_a?(Mapper::Constraints) && dispatcher.matches?(env) do
176
+
177
177
  while dispatcher.is_a?(ActionDispatch::Routing::Mapper::Constraints) && dispatcher.matches?(env) do
178
178
  dispatcher = dispatcher.app
179
179
  end
@@ -187,10 +187,6 @@ module DuckMap
187
187
  raise ActionController::RoutingError, "No route matches #{path.inspect}"
188
188
  end
189
189
 
190
-
191
-
192
-
193
-
194
190
  end
195
191
 
196
192
  end
@@ -1,4 +1,3 @@
1
- # DONE i think. need to proof read and re-verify
2
1
  require 'active_support/concern'
3
2
 
4
3
  module DuckMap
@@ -131,7 +130,7 @@ module DuckMap
131
130
  # @option options [Symbol] :keywords Default value: :keywords
132
131
  # @option options [Symbol] :lastmod Default value: :updated_at
133
132
  # @option options [Symbol] :priority Valid static values range from 0.0 to 1.0
134
- # @option options [Symbol] :segments Sub-hash containing attributes for the segments. See {#segments_handler segments_handler}
133
+ # @option options [Symbol] :segments Sub-hash containing attributes for the segments. See {#sitemap_segments sitemap_segments}
135
134
  # @option options [Symbol] :title Default value: :title
136
135
  # @option options [Symbol] :url_format Default value: "html"
137
136
  # @option options [Symbol] :url_limit Default value: 50000
@@ -329,7 +328,7 @@ module DuckMap
329
328
  # - :my_title is a Symbol, however, a matching attribute/method does NOT exist on the target object, so,
330
329
  # it is ignored and not included in the returning Hash.
331
330
  #
332
- # @param [Hash] options Options hash. Can be any combination of key/value pairs (one-dimensional).
331
+ # @param [Hash] attributes Options hash. Can be any combination of key/value pairs (one-dimensional).
333
332
  # return [Hash]
334
333
  def sitemap_capture_attributes(attributes = {})
335
334
  values = {}
@@ -1,3 +1,3 @@
1
1
  module DuckMap
2
- VERSION = "0.8.4"
2
+ VERSION = "0.8.6"
3
3
  end
@@ -1,4 +1,3 @@
1
- # DONE
2
1
  require 'active_support/concern'
3
2
 
4
3
  module DuckMap
@@ -11,13 +10,12 @@ module DuckMap
11
10
  ##################################################################################
12
11
  # View helper method to generate the content of a sitemap. Loops through all of the current
13
12
  # Hashes contained in {DuckMap::Model#sitemap_model}.
14
- # @param [Block] A block to execute for each row contained in {DuckMap::Model#sitemap_model}.
15
- #
16
13
  #
17
14
  # To see it in action, have a look at the file.
18
15
  #
19
16
  # /app/views/sitemap/default_template.xml.erb
20
17
  #
18
+ # @param [Block] block A block to execute for each row contained in {DuckMap::Model#sitemap_model}.
21
19
  # @return [NilClass]
22
20
  def sitemap_content(&block)
23
21
 
data/lib/duck_map.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "duck_map/engine"
2
+
1
3
  module DuckMap
2
- require "duck_map/engine" if defined?(Rails)
3
4
  end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :duck_map do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,33 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duck_map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
5
- prerelease:
4
+ version: 0.8.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeff Duckett
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-26 00:00:00.000000000 Z
11
+ date: 2013-11-26 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
14
41
  - !ruby/object:Gem::Dependency
15
42
  name: highline
16
43
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
44
  requirements:
19
- - - ! '>='
45
+ - - '>='
20
46
  - !ruby/object:Gem::Version
21
47
  version: '0'
22
48
  type: :runtime
23
49
  prerelease: false
24
50
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
51
  requirements:
27
- - - ! '>='
52
+ - - '>='
28
53
  - !ruby/object:Gem::Version
29
54
  version: '0'
30
- description: Duck Map is a Rails 3.x compliant gem providing support for dynamically
55
+ description: Duck Map is a Rails 4.x compliant gem providing support for dynamically
31
56
  generating sitemaps and meta tags in HTML page headers.
32
57
  email:
33
58
  - jeff.duckett@gmail.com
@@ -41,6 +66,7 @@ files:
41
66
  - lib/generators/duckmap/sync/USAGE
42
67
  - lib/generators/duckmap/sitemaps/sitemaps_generator.rb
43
68
  - lib/generators/duckmap/sitemaps/USAGE
69
+ - lib/tasks/duck_map_tasks.rake
44
70
  - lib/duck_map/sync.rb
45
71
  - lib/duck_map/mapper.rb
46
72
  - lib/duck_map/sitemap_object.rb
@@ -57,6 +83,8 @@ files:
57
83
  - lib/duck_map/model.rb
58
84
  - lib/duck_map/route.rb
59
85
  - lib/duck_map/handlers/base.rb
86
+ - lib/duck_map/handlers/edit.rb
87
+ - lib/duck_map/handlers/new.rb
60
88
  - lib/duck_map/handlers/index.rb
61
89
  - lib/duck_map/handlers/show.rb
62
90
  - lib/duck_map/static.rb
@@ -71,28 +99,26 @@ files:
71
99
  - config/routes.rb
72
100
  homepage: http://www.jeffduckett.com/
73
101
  licenses: []
102
+ metadata: {}
74
103
  post_install_message:
75
104
  rdoc_options: []
76
105
  require_paths:
77
106
  - lib
78
107
  required_ruby_version: !ruby/object:Gem::Requirement
79
- none: false
80
108
  requirements:
81
- - - ! '>='
109
+ - - '>='
82
110
  - !ruby/object:Gem::Version
83
111
  version: '0'
84
112
  required_rubygems_version: !ruby/object:Gem::Requirement
85
- none: false
86
113
  requirements:
87
- - - ! '>='
114
+ - - '>='
88
115
  - !ruby/object:Gem::Version
89
116
  version: '0'
90
117
  requirements: []
91
118
  rubyforge_project: duck_map
92
- rubygems_version: 1.8.24
119
+ rubygems_version: 2.1.11
93
120
  signing_key:
94
- specification_version: 3
95
- summary: Duck Map is a Rails 3.x compliant gem providing support for dynamically generating
121
+ specification_version: 4
122
+ summary: Duck Map is a Rails 4.x compliant gem providing support for dynamically generating
96
123
  sitemaps and meta tags in HTML page headers.
97
124
  test_files: []
98
- has_rdoc: