jay 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (9) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +49 -4
  4. data/lib/jay.rb +4 -2
  5. data/test/jay_test.rb +35 -0
  6. metadata +56 -16
  7. data/.gems +0 -1
  8. data/jay.gemspec +0 -14
  9. data/test/jay.rb +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4743345e5e8970410282a2775714181bd1fc13e7
4
- data.tar.gz: f414331310e0850ff631625e465b9803b4cff172
3
+ metadata.gz: b255732f24318aa39ba7130eacd0b865c4b63a77
4
+ data.tar.gz: 535be7da16cb548f622b1225fafd1b00b3cca457
5
5
  SHA512:
6
- metadata.gz: 38d7d3bd72aa39d084af44abcf0cdf36b2bee136e53b36fa70f761623acdc399afbeceda2099208c7ab4e3faf3668618874b67d5c59c44da879f61df2d4238df
7
- data.tar.gz: 014f38931789d39e40ae0a46ae34f504d9a1f871461aa241dd5e4c5468fff2187da4c83ab7bfe940cdf8767121da439be3fb681bf44db374f24b501c681e8ec3
6
+ metadata.gz: 3056f3f7b09a6e6a25300ace1cd31669b0305d2efaef004c4e089e84c497bb3efc035ce2a744998b14275d7037308dcfa3231589537e4cf20ab9812ed804aefe
7
+ data.tar.gz: d759210de243025af4b57d4cebd69beb67798e42c53b1d9e3265e2f935ba3a6600ff18b06dbbdd0dfe3f2bf9a5956a63ca6a67d91852831bd31e7e3429e4ecbc
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Francesco Rodríguez
1
+ Copyright (c) 2014-2016 Francesco Rodríguez
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,8 +1,29 @@
1
- jay
1
+ Jay [![Build Status](https://travis-ci.org/frodsan/jay.svg)](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
- Installation
37
+ Contributing
17
38
  ------------
18
39
 
19
- ```bash
20
- $ gem install jay
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" => "&#x2028;",
11
13
  "\u2029" => "&#x2029;"
12
- }
14
+ }.freeze
13
15
 
14
16
  UNSAFE = /(\\|<\/|\r\n|\342\200\250|\342\200\251|[\n\r"'])/u
15
17
 
@@ -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 &#x2028;", Jay.j("unicode \342\200\250")
33
+ assert_equal "unicode &#x2029;", 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.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: 2014-10-30 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: cutest
14
+ name: minitest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
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: '0'
27
- description: Escapes carriage returns, and single and double quotes.
28
- email:
29
- - frodsan@me.com
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/jay.rb
40
- homepage: https://github.com/frodsan/jay
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.2.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
@@ -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
@@ -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 &#x2028;", Jay.j("unicode \342\200\250")
27
- assert_equal "unicode &#x2029;", Jay.j("unicode \342\200\251")
28
- end