escape_utils 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|