cartographer 1.1.0 → 1.1.1

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.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 1.1.1 / 2011-03-29
2
+
3
+ * URI escaping for paths
4
+
1
5
  === 1.1.0 / 2011-03-28
2
6
 
3
7
  * from_xml takes sitemap.xml content and integrates it into the current Cartographer object.
data/lib/cartographer.rb CHANGED
@@ -24,7 +24,7 @@ require 'nokogiri'
24
24
  # See Cartographer and Cartographer::URL RDoc for more information.
25
25
  #
26
26
  class Cartographer
27
- VERSION = '1.1.0'
27
+ VERSION = '1.1.1'
28
28
 
29
29
  ##
30
30
  # List of Cartographer::URL objects
@@ -91,7 +91,7 @@ class Cartographer
91
91
  end
92
92
  end
93
93
 
94
- uri.path = new_path
94
+ uri.path = Cartographer.escape_path(new_path)
95
95
  add URL.new(:location => uri, :lastmod => stat.mtime, :changefreq => @default_changefreq)
96
96
  end
97
97
  end
@@ -132,6 +132,13 @@ class Cartographer
132
132
  urls.uniq!
133
133
  end
134
134
 
135
+ private
136
+
137
+ def self.escape_path(path)
138
+ require 'cgi'
139
+ path.split(%r!/!, -1).map { |x| CGI.escape(x) }.join("/")
140
+ end
141
+
135
142
  ##
136
143
  # Cartographer::URL is a structure to enforce the sitemap format.
137
144
  #
@@ -57,6 +57,18 @@ class TestCartographer < MiniTest::Unit::TestCase
57
57
  )
58
58
 
59
59
  FileUtils.rm_r("test/prune_me")
60
+
61
+ FileUtils.touch('test/with spaces')
62
+
63
+ sm = Cartographer.new("http://example.org")
64
+ sm.add_tree(File.expand_path("test"))
65
+
66
+ assert_includes(
67
+ sm.urls.map(&:location),
68
+ URI.parse("http://example.org/with+spaces")
69
+ )
70
+
71
+ FileUtils.rm('test/with spaces')
60
72
  end
61
73
 
62
74
  def test_to_xml
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cartographer
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.1.0
5
+ version: 1.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Erik Hollensbe
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-03-28 00:00:00 -04:00
14
+ date: 2011-03-29 00:00:00 -04:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency