jay 1.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +49 -4
- data/lib/jay.rb +4 -2
- data/test/jay_test.rb +35 -0
- metadata +56 -16
- data/.gems +0 -1
- data/jay.gemspec +0 -14
- data/test/jay.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b255732f24318aa39ba7130eacd0b865c4b63a77
|
4
|
+
data.tar.gz: 535be7da16cb548f622b1225fafd1b00b3cca457
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3056f3f7b09a6e6a25300ace1cd31669b0305d2efaef004c4e089e84c497bb3efc035ce2a744998b14275d7037308dcfa3231589537e4cf20ab9812ed804aefe
|
7
|
+
data.tar.gz: d759210de243025af4b57d4cebd69beb67798e42c53b1d9e3265e2f935ba3a6600ff18b06dbbdd0dfe3f2bf9a5956a63ca6a67d91852831bd31e7e3429e4ecbc
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,29 @@
|
|
1
|
-
jay
|
1
|
+
Jay [](https://travis-ci.org/frodsan/jay)
|
2
2
|
===
|
3
3
|
|
4
4
|
JavaScript escaping.
|
5
5
|
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "jay"
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
```
|
18
|
+
$ bundle
|
19
|
+
```
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
```
|
24
|
+
$ gem install jay
|
25
|
+
```
|
26
|
+
|
6
27
|
Usage
|
7
28
|
-----
|
8
29
|
|
@@ -13,9 +34,33 @@ Jay.j(%(back \\ not </closed> 'newline \n return \r "both \r\n))
|
|
13
34
|
# => "back \\\\ not <\\/closed> \\'newline \\n return \\n \\\"both \\n"
|
14
35
|
```
|
15
36
|
|
16
|
-
|
37
|
+
Contributing
|
17
38
|
------------
|
18
39
|
|
19
|
-
|
20
|
-
|
40
|
+
Fork the project with:
|
41
|
+
|
42
|
+
```
|
43
|
+
$ git clone git@gitlab.com:frodsan/jay.git
|
44
|
+
```
|
45
|
+
|
46
|
+
To install dependencies, use:
|
47
|
+
|
48
|
+
```
|
49
|
+
$ bundle install
|
21
50
|
```
|
51
|
+
|
52
|
+
To run the test suite, do:
|
53
|
+
|
54
|
+
```
|
55
|
+
$ rake test
|
56
|
+
```
|
57
|
+
|
58
|
+
For bug reports and pull requests use [GitLab][issues].
|
59
|
+
|
60
|
+
License
|
61
|
+
-------
|
62
|
+
|
63
|
+
Jay is released under the [MIT License][mit].
|
64
|
+
|
65
|
+
[mit]: http://www.opensource.org/licenses/MIT
|
66
|
+
[issues]: https://gitlab.com/frodsan/jay/issues
|
data/lib/jay.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Jay
|
2
4
|
JS_ESCAPE = {
|
3
5
|
'\\' => '\\\\',
|
4
|
-
|
6
|
+
"</" => '<\/',
|
5
7
|
"\r\n" => '\n',
|
6
8
|
"\n" => '\n',
|
7
9
|
"\r" => '\n',
|
@@ -9,7 +11,7 @@ module Jay
|
|
9
11
|
"'" => "\\'",
|
10
12
|
"\u2028" => "
",
|
11
13
|
"\u2029" => "
"
|
12
|
-
}
|
14
|
+
}.freeze
|
13
15
|
|
14
16
|
UNSAFE = /(\\|<\/|\r\n|\342\200\250|\342\200\251|[\n\r"'])/u
|
15
17
|
|
data/test/jay_test.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "minitest/autorun"
|
5
|
+
require "minitest/pride"
|
6
|
+
require "minitest/sugar"
|
7
|
+
require_relative "../lib/jay"
|
8
|
+
|
9
|
+
class JayTest < Minitest::Test
|
10
|
+
test "safe string" do
|
11
|
+
assert_equal "hola", Jay.j("hola")
|
12
|
+
end
|
13
|
+
|
14
|
+
test "escapes quotes" do
|
15
|
+
assert_equal %(\\'s\\' \\"d\\"), Jay.j(%('s' "d"))
|
16
|
+
end
|
17
|
+
|
18
|
+
test "escapes newlines" do
|
19
|
+
assert_equal %(\\n \\n), Jay.j(%(\n \r\n))
|
20
|
+
end
|
21
|
+
|
22
|
+
test "escapes backslashes" do
|
23
|
+
assert_equal %(\\\\), Jay.j(%(\\))
|
24
|
+
end
|
25
|
+
|
26
|
+
test "escapes closed html tags" do
|
27
|
+
assert_equal %(<open> not <\\/closed>), Jay.j(%(<open> not </closed>))
|
28
|
+
end
|
29
|
+
|
30
|
+
# http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/
|
31
|
+
test "escapes \u2028 and \u2029 characters" do
|
32
|
+
assert_equal "unicode 
", Jay.j("unicode \342\200\250")
|
33
|
+
assert_equal "unicode 
", Jay.j("unicode \342\200\251")
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,82 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Rodríguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: minitest
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.8'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
version: '5.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest-sugar
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.1'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.39'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.39'
|
69
|
+
description: Escapes carriage returns, and single and double quotes
|
70
|
+
email: hello@frodsan.com
|
30
71
|
executables: []
|
31
72
|
extensions: []
|
32
73
|
extra_rdoc_files: []
|
33
74
|
files:
|
34
|
-
- ".gems"
|
35
75
|
- LICENSE
|
36
76
|
- README.md
|
37
|
-
- jay.gemspec
|
38
77
|
- lib/jay.rb
|
39
|
-
- test/
|
40
|
-
homepage: https://
|
78
|
+
- test/jay_test.rb
|
79
|
+
homepage: https://gitlab.com/frodsan/jay
|
41
80
|
licenses:
|
42
81
|
- MIT
|
43
82
|
metadata: {}
|
@@ -57,8 +96,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
96
|
version: '0'
|
58
97
|
requirements: []
|
59
98
|
rubyforge_project:
|
60
|
-
rubygems_version: 2.
|
99
|
+
rubygems_version: 2.5.1
|
61
100
|
signing_key:
|
62
101
|
specification_version: 4
|
63
102
|
summary: JavaScript escaping.
|
64
|
-
test_files:
|
103
|
+
test_files:
|
104
|
+
- test/jay_test.rb
|
data/.gems
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
cutest -v 1.2.1
|
data/jay.gemspec
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |s|
|
2
|
-
s.name = "jay"
|
3
|
-
s.version = "1.0.0"
|
4
|
-
s.summary = "JavaScript escaping."
|
5
|
-
s.description = "Escapes carriage returns, and single and double quotes."
|
6
|
-
s.authors = ["Francesco Rodríguez"]
|
7
|
-
s.email = ["frodsan@me.com"]
|
8
|
-
s.homepage = "https://github.com/frodsan/jay"
|
9
|
-
s.license = "MIT"
|
10
|
-
|
11
|
-
s.files = `git ls-files`.split("\n")
|
12
|
-
|
13
|
-
s.add_development_dependency "cutest"
|
14
|
-
end
|
data/test/jay.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require "cutest"
|
2
|
-
require_relative "../lib/jay"
|
3
|
-
|
4
|
-
test "safe string" do
|
5
|
-
assert_equal "hola", Jay.j("hola")
|
6
|
-
end
|
7
|
-
|
8
|
-
test "escapes quotes" do
|
9
|
-
assert_equal %(\\'s\\' \\"d\\"), Jay.j(%('s' "d"))
|
10
|
-
end
|
11
|
-
|
12
|
-
test "escapes newlines" do
|
13
|
-
assert_equal %(\\n \\n), Jay.j(%(\n \r\n))
|
14
|
-
end
|
15
|
-
|
16
|
-
test "escapes backslashes" do
|
17
|
-
assert_equal %(\\\\), Jay.j(%(\\))
|
18
|
-
end
|
19
|
-
|
20
|
-
test "escapes closed html tags" do
|
21
|
-
assert_equal %(<open> not <\\/closed>), Jay.j(%(<open> not </closed>))
|
22
|
-
end
|
23
|
-
|
24
|
-
# http://www.thespanner.co.uk/2011/07/25/the-json-specification-is-now-wrong/
|
25
|
-
test "escapes \u2028 and \u2029 characters" do
|
26
|
-
assert_equal "unicode 
", Jay.j("unicode \342\200\250")
|
27
|
-
assert_equal "unicode 
", Jay.j("unicode \342\200\251")
|
28
|
-
end
|