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.
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