escape_utils 0.3.2 → 1.0.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.
- checksums.yaml +7 -0
- data/.travis.yml +0 -5
- data/Gemfile +2 -2
- data/README.md +2 -9
- data/escape_utils.gemspec +3 -1
- data/ext/escape_utils/escape_utils.c +10 -24
- data/ext/escape_utils/extconf.rb +1 -1
- data/lib/escape_utils/version.rb +2 -2
- data/script/bootstrap +2 -0
- data/test/html/escape_test.rb +1 -1
- data/test/html/unescape_test.rb +2 -2
- data/test/html_safety_test.rb +1 -1
- data/test/javascript/escape_test.rb +2 -2
- data/test/javascript/unescape_test.rb +2 -2
- data/test/query/escape_test.rb +2 -2
- data/test/query/unescape_test.rb +2 -2
- data/test/uri/escape_test.rb +2 -2
- data/test/uri/unescape_test.rb +2 -2
- data/test/url/escape_test.rb +2 -2
- data/test/url/unescape_test.rb +2 -2
- data/test/xml/escape_test.rb +1 -1
- metadata +25 -40
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7e59c356d88fb33a0a31f0668c2e476d45bcced9
|
4
|
+
data.tar.gz: a8df94fbbc6f8aed27e5c59d53678f944ef782da
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 980b6eef8962eac5f49e61154e1a26018c4e6a1be57a3d3c7aaa5acab8dac52076750edab093d3b0ed8ea47a00d7d222520251ed5f9a8bf6885d2e26e39d034e
|
7
|
+
data.tar.gz: 09ccd6442abd623df06036d418833af4d3bd1b63ee74f582f08f0537dccc7f29405ed934b7d2c0edbdab0d1c956a44946b2e8709f62ba1a214f28f814bdd1a28
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gemspec
|
3
|
+
gemspec
|
data/README.md
CHANGED
@@ -10,6 +10,8 @@ It supports HTML, URL, URI and Javascript escaping/unescaping.
|
|
10
10
|
|
11
11
|
## Installing
|
12
12
|
|
13
|
+
Compatible with Ruby 1.9.3+
|
14
|
+
|
13
15
|
``` sh
|
14
16
|
gem install escape_utils
|
15
17
|
```
|
@@ -18,20 +20,11 @@ gem install escape_utils
|
|
18
20
|
|
19
21
|
escape_utils assumes all input is encoded as valid UTF-8. If you are dealing with other encodings do your best to transcode the string into a UTF-8 byte stream before handing it to escape_utils.
|
20
22
|
|
21
|
-
On Ruby 1.9 this is as easy as:
|
22
23
|
|
23
24
|
``` ruby
|
24
25
|
utf8_string = non_utf8_string.encode('UTF-8')
|
25
26
|
```
|
26
27
|
|
27
|
-
If you're on Ruby 1.8 you can use [charlock_holmes](https://github.com/brianmario/charlock_holmes) to transcode like so:
|
28
|
-
|
29
|
-
``` ruby
|
30
|
-
# NOTE: we're assuming you know the encoding of `non_utf8_string` here.
|
31
|
-
# if you don't, you can use the detection API of charlock_holmes
|
32
|
-
utf8_string = CharlockHolmes::Converter.convert(non_utf8_string, other_encoding, 'UTF-8')
|
33
|
-
```
|
34
|
-
|
35
28
|
## Usage
|
36
29
|
|
37
30
|
### HTML
|
data/escape_utils.gemspec
CHANGED
@@ -14,9 +14,11 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.summary = %q{Faster string escaping routines for your web apps}
|
15
15
|
s.test_files = `git ls-files test`.split("\n")
|
16
16
|
|
17
|
+
s.required_ruby_version = "> 1.9.3"
|
18
|
+
|
17
19
|
# tests
|
18
20
|
s.add_development_dependency 'rake-compiler', ">= 0.7.5"
|
19
|
-
s.add_development_dependency 'minitest'
|
21
|
+
s.add_development_dependency 'minitest', ">= 5.0.0"
|
20
22
|
# benchmarks
|
21
23
|
s.add_development_dependency 'rack'
|
22
24
|
s.add_development_dependency 'haml'
|
@@ -4,10 +4,9 @@
|
|
4
4
|
#define RSTRING_NOT_MODIFIED
|
5
5
|
|
6
6
|
#include <ruby.h>
|
7
|
+
#include <ruby/encoding.h>
|
7
8
|
#include "houdini.h"
|
8
9
|
|
9
|
-
#ifdef HAVE_RUBY_ENCODING_H
|
10
|
-
#include <ruby/encoding.h>
|
11
10
|
static VALUE rb_eEncodingCompatibilityError;
|
12
11
|
|
13
12
|
static VALUE eu_new_str(const char *str, size_t len)
|
@@ -32,14 +31,6 @@ static void check_utf8_encoding(VALUE str)
|
|
32
31
|
"Input must be UTF-8 or US-ASCII, %s given", rb_enc_name(enc));
|
33
32
|
}
|
34
33
|
}
|
35
|
-
#else
|
36
|
-
static VALUE eu_new_str(const char *str, size_t len)
|
37
|
-
{
|
38
|
-
return rb_str_new(str, len);
|
39
|
-
}
|
40
|
-
|
41
|
-
static void check_utf8_encoding(VALUE str) {}
|
42
|
-
#endif
|
43
34
|
|
44
35
|
typedef int (*houdini_cb)(gh_buf *, const uint8_t *, size_t);
|
45
36
|
|
@@ -62,6 +53,7 @@ static VALUE rb_eu_set_html_secure(VALUE self, VALUE val)
|
|
62
53
|
* html_safe_string_class instance variable
|
63
54
|
*/
|
64
55
|
static VALUE rb_html_safe_string_class;
|
56
|
+
static VALUE rb_html_safe_string_template_object;
|
65
57
|
|
66
58
|
static VALUE rb_eu_set_html_safe_string_class(VALUE self, VALUE val)
|
67
59
|
{
|
@@ -71,6 +63,8 @@ static VALUE rb_eu_set_html_safe_string_class(VALUE self, VALUE val)
|
|
71
63
|
rb_raise(rb_eArgError, "%s must be a descendent of String", rb_class2name(val));
|
72
64
|
|
73
65
|
rb_html_safe_string_class = val;
|
66
|
+
rb_html_safe_string_template_object = rb_class_new_instance(0, NULL, rb_html_safe_string_class);
|
67
|
+
OBJ_FREEZE(rb_html_safe_string_template_object);
|
74
68
|
rb_ivar_set(self, rb_intern("@html_safe_string_class"), val);
|
75
69
|
return val;
|
76
70
|
}
|
@@ -115,19 +109,10 @@ static VALUE rb_eu_escape_html_as_html_safe(VALUE self, VALUE str)
|
|
115
109
|
result = eu_new_str(buf.ptr, buf.size);
|
116
110
|
gh_buf_free(&buf);
|
117
111
|
} else {
|
118
|
-
|
119
|
-
|
120
|
-
#else
|
121
|
-
result = str;
|
122
|
-
#endif
|
112
|
+
result = rb_str_new_with_class(rb_html_safe_string_template_object,
|
113
|
+
RSTRING_PTR(str), RSTRING_LEN(str));
|
123
114
|
}
|
124
115
|
|
125
|
-
#ifdef RBASIC
|
126
|
-
RBASIC(result)->klass = rb_html_safe_string_class;
|
127
|
-
#else
|
128
|
-
result = rb_funcall(rb_html_safe_string_class, ID_new, 1, result);
|
129
|
-
#endif
|
130
|
-
|
131
116
|
rb_ivar_set(result, ID_at_html_safe, Qtrue);
|
132
117
|
|
133
118
|
return result;
|
@@ -217,16 +202,17 @@ static VALUE rb_eu_unescape_uri(VALUE self, VALUE str)
|
|
217
202
|
/**
|
218
203
|
* Ruby Extension initializer
|
219
204
|
*/
|
205
|
+
__attribute__((visibility("default")))
|
220
206
|
void Init_escape_utils()
|
221
207
|
{
|
222
|
-
#ifdef HAVE_RUBY_ENCODING_H
|
223
208
|
rb_eEncodingCompatibilityError = rb_const_get(rb_cEncoding, rb_intern("CompatibilityError"));
|
224
|
-
#endif
|
225
209
|
|
226
210
|
ID_new = rb_intern("new");
|
227
211
|
ID_at_html_safe = rb_intern("@html_safe");
|
228
|
-
|
212
|
+
rb_global_variable(&rb_html_safe_string_class);
|
213
|
+
rb_global_variable(&rb_html_safe_string_template_object);
|
229
214
|
|
215
|
+
rb_mEscapeUtils = rb_define_module("EscapeUtils");
|
230
216
|
rb_define_method(rb_mEscapeUtils, "escape_html_as_html_safe", rb_eu_escape_html_as_html_safe, 1);
|
231
217
|
rb_define_method(rb_mEscapeUtils, "escape_html", rb_eu_escape_html, -1);
|
232
218
|
rb_define_method(rb_mEscapeUtils, "unescape_html", rb_eu_unescape_html, 1);
|
data/ext/escape_utils/extconf.rb
CHANGED
data/lib/escape_utils/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module EscapeUtils
|
2
|
-
VERSION = "0.
|
3
|
-
end
|
2
|
+
VERSION = "1.0.0"
|
3
|
+
end
|
data/script/bootstrap
ADDED
data/test/html/escape_test.rb
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path("../../helper", __FILE__)
|
|
3
3
|
class MyCustomHtmlSafeString < String
|
4
4
|
end
|
5
5
|
|
6
|
-
class HtmlEscapeTest <
|
6
|
+
class HtmlEscapeTest < Minitest::Test
|
7
7
|
def test_escape_basic_html_with_secure
|
8
8
|
assert_equal "<some_tag/>", EscapeUtils.escape_html("<some_tag/>")
|
9
9
|
|
data/test/html/unescape_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require File.expand_path("../../helper", __FILE__)
|
3
3
|
|
4
|
-
class HtmlUnescapeTest <
|
4
|
+
class HtmlUnescapeTest < Minitest::Test
|
5
5
|
def test_basic_html
|
6
6
|
assert_equal "<some_tag/>", EscapeUtils.unescape_html("<some_tag/>")
|
7
7
|
end
|
@@ -45,4 +45,4 @@ class HtmlUnescapeTest < MiniTest::Unit::TestCase
|
|
45
45
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.unescape_html(escaped).encoding
|
46
46
|
end
|
47
47
|
end
|
48
|
-
end
|
48
|
+
end
|
data/test/html_safety_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class JavascriptEscapeTest <
|
3
|
+
class JavascriptEscapeTest < Minitest::Test
|
4
4
|
def test_returns_empty_string_if_nil_passed
|
5
5
|
assert_equal "", EscapeUtils.escape_javascript(nil)
|
6
6
|
end
|
@@ -39,4 +39,4 @@ class JavascriptEscapeTest < MiniTest::Unit::TestCase
|
|
39
39
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.escape_javascript(str).encoding
|
40
40
|
end
|
41
41
|
end
|
42
|
-
end
|
42
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class JavascriptUnescapeTest <
|
3
|
+
class JavascriptUnescapeTest < Minitest::Test
|
4
4
|
def test_returns_empty_string_if_nil_passed
|
5
5
|
assert_equal "", EscapeUtils.unescape_javascript(nil)
|
6
6
|
end
|
@@ -43,4 +43,4 @@ class JavascriptUnescapeTest < MiniTest::Unit::TestCase
|
|
43
43
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.unescape_javascript(escaped).encoding
|
44
44
|
end
|
45
45
|
end
|
46
|
-
end
|
46
|
+
end
|
data/test/query/escape_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class QueryEscapeTest <
|
3
|
+
class QueryEscapeTest < Minitest::Test
|
4
4
|
def test_basic_url
|
5
5
|
assert_equal "http%3A%2F%2Fwww.homerun.com%2F", EscapeUtils.escape_url("http://www.homerun.com/")
|
6
6
|
end
|
@@ -47,4 +47,4 @@ class QueryEscapeTest < MiniTest::Unit::TestCase
|
|
47
47
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.escape_url(str).encoding
|
48
48
|
end
|
49
49
|
end
|
50
|
-
end
|
50
|
+
end
|
data/test/query/unescape_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class QueryUnescapeTest <
|
3
|
+
class QueryUnescapeTest < Minitest::Test
|
4
4
|
def test_basic_url
|
5
5
|
assert_equal "http://www.homerun.com/", EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F")
|
6
6
|
end
|
@@ -49,4 +49,4 @@ class QueryUnescapeTest < MiniTest::Unit::TestCase
|
|
49
49
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.unescape_url(escaped).encoding
|
50
50
|
end
|
51
51
|
end
|
52
|
-
end
|
52
|
+
end
|
data/test/uri/escape_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
require 'uri'
|
3
3
|
|
4
|
-
class UriEscapeTest <
|
4
|
+
class UriEscapeTest < Minitest::Test
|
5
5
|
def test_uri_stdlib_compatibility
|
6
6
|
(0..127).each do |i|
|
7
7
|
c = i.chr
|
@@ -47,4 +47,4 @@ class UriEscapeTest < MiniTest::Unit::TestCase
|
|
47
47
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.escape_uri(str).encoding
|
48
48
|
end
|
49
49
|
end
|
50
|
-
end
|
50
|
+
end
|
data/test/uri/unescape_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class UriUnescapeTest <
|
3
|
+
class UriUnescapeTest < Minitest::Test
|
4
4
|
def test_doesnt_unescape_an_incomplete_escape
|
5
5
|
assert_equal "%", EscapeUtils.unescape_uri("%")
|
6
6
|
assert_equal "http%", EscapeUtils.unescape_uri("http%")
|
@@ -52,4 +52,4 @@ class UriUnescapeTest < MiniTest::Unit::TestCase
|
|
52
52
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.unescape_url(escaped).encoding
|
53
53
|
end
|
54
54
|
end
|
55
|
-
end
|
55
|
+
end
|
data/test/url/escape_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
require 'cgi'
|
3
3
|
|
4
|
-
class UriEscapeTest <
|
4
|
+
class UriEscapeTest < Minitest::Test
|
5
5
|
def test_basic_url
|
6
6
|
assert_equal "http%3A%2F%2Fwww.homerun.com%2F", EscapeUtils.escape_url("http://www.homerun.com/")
|
7
7
|
end
|
@@ -55,4 +55,4 @@ class UriEscapeTest < MiniTest::Unit::TestCase
|
|
55
55
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.escape_url(str).encoding
|
56
56
|
end
|
57
57
|
end
|
58
|
-
end
|
58
|
+
end
|
data/test/url/unescape_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path("../../helper", __FILE__)
|
2
2
|
|
3
|
-
class UriUnescapeTest <
|
3
|
+
class UriUnescapeTest < Minitest::Test
|
4
4
|
def test_basic_url
|
5
5
|
assert_equal "http://www.homerun.com/", EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F")
|
6
6
|
assert_equal "http://www.homerun.com/", EscapeUtils.unescape_url("http://www.homerun.com/")
|
@@ -57,4 +57,4 @@ class UriUnescapeTest < MiniTest::Unit::TestCase
|
|
57
57
|
assert_equal Encoding.find('UTF-8'), EscapeUtils.unescape_url(escaped).encoding
|
58
58
|
end
|
59
59
|
end
|
60
|
-
end
|
60
|
+
end
|
data/test/xml/escape_test.rb
CHANGED
metadata
CHANGED
@@ -1,126 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: escape_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Lopez
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake-compiler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.7.5
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 0.7.5
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: minitest
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: 5.0.0
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: 5.0.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rack
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: haml
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: fast_xs
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: actionpack
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: url_escape
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
description:
|
@@ -172,6 +157,7 @@ files:
|
|
172
157
|
- lib/escape_utils/url/uri.rb
|
173
158
|
- lib/escape_utils/version.rb
|
174
159
|
- lib/escape_utils/xml/builder.rb
|
160
|
+
- script/bootstrap
|
175
161
|
- test/helper.rb
|
176
162
|
- test/html/escape_test.rb
|
177
163
|
- test/html/unescape_test.rb
|
@@ -187,28 +173,27 @@ files:
|
|
187
173
|
- test/xml/escape_test.rb
|
188
174
|
homepage: http://github.com/brianmario/escape_utils
|
189
175
|
licenses: []
|
176
|
+
metadata: {}
|
190
177
|
post_install_message:
|
191
178
|
rdoc_options:
|
192
179
|
- --charset=UTF-8
|
193
180
|
require_paths:
|
194
181
|
- lib
|
195
182
|
required_ruby_version: !ruby/object:Gem::Requirement
|
196
|
-
none: false
|
197
183
|
requirements:
|
198
|
-
- -
|
184
|
+
- - '>'
|
199
185
|
- !ruby/object:Gem::Version
|
200
|
-
version:
|
186
|
+
version: 1.9.3
|
201
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
188
|
requirements:
|
204
|
-
- -
|
189
|
+
- - '>='
|
205
190
|
- !ruby/object:Gem::Version
|
206
191
|
version: '0'
|
207
192
|
requirements: []
|
208
193
|
rubyforge_project:
|
209
|
-
rubygems_version:
|
194
|
+
rubygems_version: 2.0.3
|
210
195
|
signing_key:
|
211
|
-
specification_version:
|
196
|
+
specification_version: 4
|
212
197
|
summary: Faster string escaping routines for your web apps
|
213
198
|
test_files:
|
214
199
|
- test/helper.rb
|