escape_utils 0.1.9 → 0.2.0

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.
@@ -0,0 +1,17 @@
1
+ # encoding: UTF-8
2
+ require 'mkmf'
3
+ require 'rbconfig'
4
+
5
+ $CFLAGS << ' -Wall -funroll-loops'
6
+ $CFLAGS << ' -Wextra -O0 -ggdb3' if ENV['DEBUG']
7
+
8
+ if try_compile(<<SRC)
9
+ #include <ruby.h>
10
+ int main(void) { rb_cvar_set(Qnil, Qnil, Qnil); return 0; }
11
+ SRC
12
+ $CFLAGS << " -DRB_CVAR_SET_ARITY=3 "
13
+ else
14
+ $CFLAGS << " -DRB_CVAR_SET_ARITY=4 "
15
+ end
16
+
17
+ create_makefile("escape_utils")
data/lib/escape_utils.rb CHANGED
@@ -1,22 +1,13 @@
1
1
  # encoding: utf-8
2
-
3
- require 'escape_utils_ext'
2
+ require 'escape_utils/escape_utils'
3
+ require 'escape_utils/version' unless defined? EscapeUtils::VERSION
4
4
 
5
5
  EscapeUtils.send(:extend, EscapeUtils)
6
6
  module EscapeUtils
7
- VERSION = "0.1.9"
8
-
9
7
  # turn on/off the escaping of the '/' character during HTML escaping
10
8
  # Escaping '/' is recommended by the OWASP - http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#RULE_.231_-_HTML_Escape_Before_Inserting_Untrusted_Data_into_HTML_Element_Content
11
9
  # This is because quotes around HTML attributes are optional in most/all modern browsers at the time of writing (10/15/2010)
12
10
  @@html_secure = true
13
11
 
14
- def self.html_secure
15
- @@html_secure
16
- end
17
- def self.html_secure=(val)
18
- @@html_secure = val
19
- end
20
-
21
12
  autoload :HtmlSafety, 'escape_utils/html_safety'
22
13
  end
@@ -7,13 +7,13 @@ module EscapeUtils
7
7
  if s.html_safe?
8
8
  s.to_s.html_safe
9
9
  else
10
- EscapeUtils.escape_html(s.to_s, EscapeUtils.html_secure).html_safe
10
+ EscapeUtils.escape_html(s.to_s).html_safe
11
11
  end
12
12
  end
13
13
  else
14
14
  def _escape_html(s)
15
- EscapeUtils.escape_html(s.to_s, EscapeUtils.html_secure)
15
+ EscapeUtils.escape_html(s.to_s)
16
16
  end
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -0,0 +1,3 @@
1
+ module EscapeUtils
2
+ VERSION = "0.2.0"
3
+ end
@@ -33,9 +33,11 @@ describe EscapeUtils, "escape_html" do
33
33
  end
34
34
 
35
35
  if RUBY_VERSION =~ /^1.9/
36
- it "should default to utf-8 if Encoding.default_internal is nil" do
36
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
37
37
  Encoding.default_internal = nil
38
- EscapeUtils.escape_html("<b>Bourbon & Branch</b>").encoding.should eql(Encoding.find('utf-8'))
38
+ str = "<b>Bourbon & Branch</b>"
39
+ str = str.encode('us-ascii')
40
+ EscapeUtils.escape_html(str).encoding.should eql(Encoding.find('us-ascii'))
39
41
  end
40
42
 
41
43
  it "should use Encoding.default_internal" do
@@ -22,10 +22,17 @@ describe EscapeUtils, "unescape_html" do
22
22
  EscapeUtils.unescape_html("&lt;b&gt;Bourbon &amp; Branch&lt;&#47;b&gt;").should eql("<b>Bourbon & Branch</b>")
23
23
  end
24
24
 
25
+ it "should pass through incompletely escaped tags" do
26
+ EscapeUtils.unescape_html("&").should eql("&")
27
+ EscapeUtils.unescape_html("&lt").should eql("&lt")
28
+ end
29
+
25
30
  if RUBY_VERSION =~ /^1.9/
26
- it "should default to utf-8 if Encoding.default_internal is nil" do
31
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
27
32
  Encoding.default_internal = nil
28
- EscapeUtils.unescape_html("&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;").encoding.should eql(Encoding.find('utf-8'))
33
+ str = "&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;"
34
+ str = str.encode('us-ascii')
35
+ EscapeUtils.unescape_html(str).encoding.should eql(Encoding.find('us-ascii'))
29
36
  end
30
37
 
31
38
  it "should use Encoding.default_internal" do
@@ -24,9 +24,11 @@ describe EscapeUtils, "escape_javascript" do
24
24
  end
25
25
 
26
26
  if RUBY_VERSION =~ /^1.9/
27
- it "should default to utf-8 if Encoding.default_internal is nil" do
27
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
28
28
  Encoding.default_internal = nil
29
- EscapeUtils.escape_javascript(%(dont </close> tags)).encoding.should eql(Encoding.find('utf-8'))
29
+ str = %(dont </close> tags)
30
+ str = str.encode('us-ascii')
31
+ EscapeUtils.escape_javascript(str).encoding.should eql(Encoding.find('us-ascii'))
30
32
  end
31
33
 
32
34
  it "should use Encoding.default_internal" do
@@ -23,10 +23,16 @@ describe EscapeUtils, "unescape_javascript" do
23
23
  EscapeUtils.unescape_javascript(%(dont <\\/close> tags)).should eql(%(dont </close> tags))
24
24
  end
25
25
 
26
+ it "should pass through standalone '\'" do
27
+ EscapeUtils.unescape_javascript("\\").should eql("\\")
28
+ end
29
+
26
30
  if RUBY_VERSION =~ /^1.9/
27
- it "should default to utf-8 if Encoding.default_internal is nil" do
31
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
28
32
  Encoding.default_internal = nil
29
- EscapeUtils.unescape_javascript(%(dont <\\/close> tags)).encoding.should eql(Encoding.find('utf-8'))
33
+ str = %(dont <\\/close> tags)
34
+ str = str.encode('us-ascii')
35
+ EscapeUtils.unescape_javascript(str).encoding.should eql(Encoding.find('us-ascii'))
30
36
  end
31
37
 
32
38
  it "should use Encoding.default_internal" do
@@ -37,9 +37,11 @@ describe EscapeUtils, "escape_url" do
37
37
  end
38
38
 
39
39
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to utf-8 if Encoding.default_internal is nil" do
40
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
41
  Encoding.default_internal = nil
42
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.find('utf-8'))
42
+ str = "http://www.homerun.com/"
43
+ str = str.encode('us-ascii')
44
+ EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('us-ascii'))
43
45
  end
44
46
 
45
47
  it "should use Encoding.default_internal" do
@@ -37,9 +37,11 @@ describe EscapeUtils, "unescape_url" do
37
37
  end
38
38
 
39
39
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to utf-8 if Encoding.default_internal is nil" do
40
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
41
  Encoding.default_internal = nil
42
- EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.find('utf-8'))
42
+ str = "http%3A%2F%2Fwww.homerun.com%2F"
43
+ str = str.encode('us-ascii')
44
+ EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('us-ascii'))
43
45
  end
44
46
 
45
47
  it "should use Encoding.default_internal" do
data/spec/spec_helper.rb CHANGED
@@ -2,4 +2,5 @@
2
2
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/..')
3
3
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
4
4
 
5
+ require 'rspec'
5
6
  require 'escape_utils'
@@ -1,13 +1,17 @@
1
1
  # encoding: UTF-8
2
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
+ require 'uri'
3
4
 
4
5
  describe EscapeUtils, "escape_uri" do
5
6
  it "should respond to escape_uri" do
6
7
  EscapeUtils.should respond_to(:escape_uri)
7
8
  end
8
9
 
9
- it "should escape a basic url" do
10
- EscapeUtils.escape_uri("http://www.homerun.com/").should eql("http%3A%2F%2Fwww.homerun.com%2F")
10
+ it "should escape each byte exactly like URI.escape" do
11
+ (0..255).each do |i|
12
+ c = i.chr
13
+ EscapeUtils.escape_uri(c).should eql(URI.escape(c))
14
+ end
11
15
  end
12
16
 
13
17
  # NOTE: from Rack's test suite
@@ -21,11 +25,6 @@ describe EscapeUtils, "escape_uri" do
21
25
  EscapeUtils.escape_uri("a sp ace ").should eql("a%20%20%20sp%20ace%20")
22
26
  end
23
27
 
24
- # NOTE: from Rack's test suite
25
- it "should escape a string of mixed characters" do
26
- EscapeUtils.escape_uri("q1!2\"'w$5&7/z8)?\\").should eql("q1%212%22%27w%245%267%2Fz8%29%3F%5C")
27
- end
28
-
29
28
  # NOTE: from Rack's test suite
30
29
  it "should escape correctly for multibyte characters" do
31
30
  matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
@@ -37,9 +36,11 @@ describe EscapeUtils, "escape_uri" do
37
36
  end
38
37
 
39
38
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to utf-8 if Encoding.default_internal is nil" do
39
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
40
  Encoding.default_internal = nil
42
- EscapeUtils.escape_uri("http://www.homerun.com/").encoding.should eql(Encoding.find('utf-8'))
41
+ str = "http://www.homerun.com/"
42
+ str = str.encode('us-ascii')
43
+ EscapeUtils.escape_uri(str).encoding.should eql(Encoding.find('us-ascii'))
43
44
  end
44
45
 
45
46
  it "should use Encoding.default_internal" do
@@ -11,6 +11,14 @@ describe EscapeUtils, "unescape_uri" do
11
11
  EscapeUtils.unescape_uri("http://www.homerun.com/").should eql("http://www.homerun.com/")
12
12
  end
13
13
 
14
+ it "should not be thrown by a standalone %" do
15
+ EscapeUtils.unescape_uri("%").should eql("%")
16
+ end
17
+
18
+ it "should not be thrown by a trailing %" do
19
+ EscapeUtils.unescape_uri("http%").should eql("http%")
20
+ end
21
+
14
22
  # NOTE: from Rack's test suite
15
23
  it "should unescape a url containing tags" do
16
24
  EscapeUtils.unescape_uri("fo%3Co%3Ebar").should eql("fo<o>bar")
@@ -40,9 +48,11 @@ describe EscapeUtils, "unescape_uri" do
40
48
  end
41
49
 
42
50
  if RUBY_VERSION =~ /^1.9/
43
- it "should default to utf-8 if Encoding.default_internal is nil" do
51
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
44
52
  Encoding.default_internal = nil
45
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.find('utf-8'))
53
+ str = "http%3A%2F%2Fwww.homerun.com%2F"
54
+ str = str.encode('us-ascii')
55
+ EscapeUtils.unescape_uri(str).encoding.should eql(Encoding.find('us-ascii'))
46
56
  end
47
57
 
48
58
  it "should use Encoding.default_internal" do
@@ -1,5 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
+ require 'cgi'
3
4
 
4
5
  describe EscapeUtils, "escape_url" do
5
6
  it "should respond to escape_url" do
@@ -10,6 +11,13 @@ describe EscapeUtils, "escape_url" do
10
11
  EscapeUtils.escape_url("http://www.homerun.com/").should eql("http%3A%2F%2Fwww.homerun.com%2F")
11
12
  end
12
13
 
14
+ it "should escape each possible byte value exactly like CGI.escape" do
15
+ (0..255).each do |i|
16
+ c = i.chr
17
+ EscapeUtils.escape_url(c).should eql(CGI.escape(c))
18
+ end
19
+ end
20
+
13
21
  # NOTE: from Rack's test suite
14
22
  it "should escape a url containing tags" do
15
23
  EscapeUtils.escape_url("fo<o>bar").should eql("fo%3Co%3Ebar")
@@ -37,9 +45,11 @@ describe EscapeUtils, "escape_url" do
37
45
  end
38
46
 
39
47
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to utf-8 if Encoding.default_internal is nil" do
48
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
49
  Encoding.default_internal = nil
42
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.find('utf-8'))
50
+ str = "http://www.homerun.com/"
51
+ str = str.encode('us-ascii')
52
+ EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('us-ascii'))
43
53
  end
44
54
 
45
55
  it "should use Encoding.default_internal" do
@@ -1,55 +1,65 @@
1
1
  # encoding: UTF-8
2
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
3
3
 
4
- describe EscapeUtils, "unescape_uri" do
5
- it "should respond to unescape_uri" do
6
- EscapeUtils.should respond_to(:unescape_uri)
4
+ describe EscapeUtils, "unescape_url" do
5
+ it "should respond to unescape_url" do
6
+ EscapeUtils.should respond_to(:unescape_url)
7
7
  end
8
8
 
9
9
  it "should unescape a basic url" do
10
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").should eql("http://www.homerun.com/")
11
- EscapeUtils.unescape_uri("http://www.homerun.com/").should eql("http://www.homerun.com/")
10
+ EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").should eql("http://www.homerun.com/")
11
+ EscapeUtils.unescape_url("http://www.homerun.com/").should eql("http://www.homerun.com/")
12
+ end
13
+
14
+ it "should not be thrown by a standalone %" do
15
+ EscapeUtils.unescape_url("%").should eql("%")
16
+ end
17
+
18
+ it "should not be thrown by a trailing %" do
19
+ EscapeUtils.unescape_url("http%").should eql("http%")
12
20
  end
13
21
 
14
22
  # NOTE: from Rack's test suite
15
23
  it "should unescape a url containing tags" do
16
- EscapeUtils.unescape_uri("fo%3Co%3Ebar").should eql("fo<o>bar")
24
+ EscapeUtils.unescape_url("fo%3Co%3Ebar").should eql("fo<o>bar")
17
25
  end
18
26
 
19
27
  # NOTE: from Rack's test suite
20
28
  it "should unescape a url with spaces" do
21
- EscapeUtils.unescape_uri("a%20space").should eql("a space")
22
- EscapeUtils.unescape_uri("a%20%20%20sp%20ace%20").should eql("a sp ace ")
23
- EscapeUtils.unescape_uri("a+space").should eql("a+space")
29
+ EscapeUtils.unescape_url("a%20space").should eql("a space")
30
+ EscapeUtils.unescape_url("a%20%20%20sp%20ace%20").should eql("a sp ace ")
31
+ EscapeUtils.unescape_url("a+space").should eql("a space")
24
32
  end
25
33
 
26
34
  # NOTE: from Rack's test suite
27
35
  it "should unescape a string of mixed characters" do
28
- EscapeUtils.unescape_uri("q1%212%22%27w%245%267%2Fz8%29%3F%5C").should eql("q1!2\"'w$5&7/z8)?\\")
29
- EscapeUtils.unescape_uri("q1!2%22'w$5&7/z8)?%5C").should eql("q1!2\"'w$5&7/z8)?\\")
36
+ EscapeUtils.unescape_url("q1%212%22%27w%245%267%2Fz8%29%3F%5C").should eql("q1!2\"'w$5&7/z8)?\\")
37
+ EscapeUtils.unescape_url("q1!2%22'w$5&7/z8)?%5C").should eql("q1!2\"'w$5&7/z8)?\\")
30
38
  end
31
39
 
32
40
  # NOTE: from Rack's test suite
33
41
  it "should unescape correctly for multibyte characters" do
34
42
  matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
35
43
  matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
36
- EscapeUtils.unescape_uri('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8').should eql(matz_name)
44
+ EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8').should eql(matz_name)
37
45
  matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
38
46
  matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
39
- EscapeUtils.unescape_uri('%E3%81%BE%E3%81%A4%20%E3%82%82%E3%81%A8').should eql(matz_name_sep)
47
+ EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4%20%E3%82%82%E3%81%A8').should eql(matz_name_sep)
40
48
  end
41
49
 
42
50
  if RUBY_VERSION =~ /^1.9/
43
- it "should default to utf-8 if Encoding.default_internal is nil" do
51
+ it "should default to the original string's encoding if Encoding.default_internal is nil" do
44
52
  Encoding.default_internal = nil
45
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.find('utf-8'))
53
+ str = "http%3A%2F%2Fwww.homerun.com%2F"
54
+ str = str.encode('us-ascii')
55
+ EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('us-ascii'))
46
56
  end
47
57
 
48
58
  it "should use Encoding.default_internal" do
49
59
  Encoding.default_internal = Encoding.find('utf-8')
50
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
60
+ EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
51
61
  Encoding.default_internal = Encoding.find('us-ascii')
52
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
62
+ EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
53
63
  end
54
64
  end
55
65
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: escape_utils
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 9
10
- version: 0.1.9
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Lopez
@@ -15,21 +15,124 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-15 00:00:00 -07:00
18
+ date: 2011-02-08 00:00:00 -08:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake-compiler
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 0
32
+ - 7
33
+ - 5
34
+ version: 0.7.5
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 2
48
+ - 0
49
+ - 0
50
+ version: 2.0.0
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: rack
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :development
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: haml
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ type: :development
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: fast_xs
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: actionpack
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ type: :development
108
+ version_requirements: *id006
109
+ - !ruby/object:Gem::Dependency
110
+ name: url_escape
111
+ prerelease: false
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :development
122
+ version_requirements: *id007
22
123
  description:
23
124
  email: seniorlopez@gmail.com
24
125
  executables: []
25
126
 
26
127
  extensions:
27
- - ext/extconf.rb
128
+ - ext/escape_utils/extconf.rb
28
129
  extra_rdoc_files:
29
130
  - README.rdoc
30
131
  files:
31
132
  - .gitignore
133
+ - .rspec
32
134
  - CHANGELOG.md
135
+ - Gemfile
33
136
  - MIT-LICENSE
34
137
  - README.rdoc
35
138
  - Rakefile
@@ -41,8 +144,8 @@ files:
41
144
  - benchmark/url_escape.rb
42
145
  - benchmark/url_unescape.rb
43
146
  - escape_utils.gemspec
44
- - ext/escape_utils.c
45
- - ext/extconf.rb
147
+ - ext/escape_utils/escape_utils.c
148
+ - ext/escape_utils/extconf.rb
46
149
  - lib/escape_utils.rb
47
150
  - lib/escape_utils/html/cgi.rb
48
151
  - lib/escape_utils/html/erb.rb
@@ -54,6 +157,7 @@ files:
54
157
  - lib/escape_utils/url/erb.rb
55
158
  - lib/escape_utils/url/rack.rb
56
159
  - lib/escape_utils/url/uri.rb
160
+ - lib/escape_utils/version.rb
57
161
  - spec/html/escape_spec.rb
58
162
  - spec/html/unescape_spec.rb
59
163
  - spec/html_safety_spec.rb
@@ -62,7 +166,6 @@ files:
62
166
  - spec/query/escape_spec.rb
63
167
  - spec/query/unescape_spec.rb
64
168
  - spec/rcov.opts
65
- - spec/spec.opts
66
169
  - spec/spec_helper.rb
67
170
  - spec/uri/escape_spec.rb
68
171
  - spec/uri/unescape_spec.rb
@@ -99,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
202
  requirements: []
100
203
 
101
204
  rubyforge_project:
102
- rubygems_version: 1.3.7
205
+ rubygems_version: 1.4.1
103
206
  signing_key:
104
207
  specification_version: 3
105
208
  summary: Faster string escaping routines for your web apps
@@ -111,6 +214,7 @@ test_files:
111
214
  - spec/javascript/unescape_spec.rb
112
215
  - spec/query/escape_spec.rb
113
216
  - spec/query/unescape_spec.rb
217
+ - spec/rcov.opts
114
218
  - spec/spec_helper.rb
115
219
  - spec/uri/escape_spec.rb
116
220
  - spec/uri/unescape_spec.rb