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.
- data/.gitignore +3 -1
- data/.rspec +2 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +3 -0
- data/README.rdoc +9 -7
- data/Rakefile +25 -28
- data/benchmark/html_escape.rb +0 -8
- data/escape_utils.gemspec +16 -75
- data/ext/{escape_utils.c → escape_utils/escape_utils.c} +179 -123
- data/ext/escape_utils/extconf.rb +17 -0
- data/lib/escape_utils.rb +2 -11
- data/lib/escape_utils/html_safety.rb +3 -3
- data/lib/escape_utils/version.rb +3 -0
- data/spec/html/escape_spec.rb +4 -2
- data/spec/html/unescape_spec.rb +9 -2
- data/spec/javascript/escape_spec.rb +4 -2
- data/spec/javascript/unescape_spec.rb +8 -2
- data/spec/query/escape_spec.rb +4 -2
- data/spec/query/unescape_spec.rb +4 -2
- data/spec/spec_helper.rb +1 -0
- data/spec/uri/escape_spec.rb +10 -9
- data/spec/uri/unescape_spec.rb +12 -2
- data/spec/url/escape_spec.rb +12 -2
- data/spec/url/unescape_spec.rb +27 -17
- metadata +117 -13
- data/ext/extconf.rb +0 -9
- data/spec/spec.opts +0 -2
@@ -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 '
|
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
|
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
|
15
|
+
EscapeUtils.escape_html(s.to_s)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end
|
data/spec/html/escape_spec.rb
CHANGED
@@ -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
|
36
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
37
37
|
Encoding.default_internal = nil
|
38
|
-
|
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
|
data/spec/html/unescape_spec.rb
CHANGED
@@ -22,10 +22,17 @@ describe EscapeUtils, "unescape_html" do
|
|
22
22
|
EscapeUtils.unescape_html("<b>Bourbon & Branch</b>").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("<").should eql("<")
|
28
|
+
end
|
29
|
+
|
25
30
|
if RUBY_VERSION =~ /^1.9/
|
26
|
-
it "should default to
|
31
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
27
32
|
Encoding.default_internal = nil
|
28
|
-
|
33
|
+
str = "<b>Bourbon & Branch</b>"
|
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
|
27
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
28
28
|
Encoding.default_internal = nil
|
29
|
-
|
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
|
31
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
28
32
|
Encoding.default_internal = nil
|
29
|
-
|
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
|
data/spec/query/escape_spec.rb
CHANGED
@@ -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
|
40
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
41
41
|
Encoding.default_internal = nil
|
42
|
-
|
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
|
data/spec/query/unescape_spec.rb
CHANGED
@@ -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
|
40
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
41
41
|
Encoding.default_internal = nil
|
42
|
-
|
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
data/spec/uri/escape_spec.rb
CHANGED
@@ -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
|
10
|
-
|
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
|
39
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
41
40
|
Encoding.default_internal = nil
|
42
|
-
|
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
|
data/spec/uri/unescape_spec.rb
CHANGED
@@ -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
|
51
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
44
52
|
Encoding.default_internal = nil
|
45
|
-
|
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
|
data/spec/url/escape_spec.rb
CHANGED
@@ -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
|
48
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
41
49
|
Encoding.default_internal = nil
|
42
|
-
|
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
|
data/spec/url/unescape_spec.rb
CHANGED
@@ -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, "
|
5
|
-
it "should respond to
|
6
|
-
EscapeUtils.should respond_to(:
|
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.
|
11
|
-
EscapeUtils.
|
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.
|
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.
|
22
|
-
EscapeUtils.
|
23
|
-
EscapeUtils.
|
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.
|
29
|
-
EscapeUtils.
|
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.
|
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.
|
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
|
51
|
+
it "should default to the original string's encoding if Encoding.default_internal is nil" do
|
44
52
|
Encoding.default_internal = nil
|
45
|
-
|
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.
|
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.
|
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:
|
5
|
-
prerelease:
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
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:
|
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.
|
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
|