json_minify 0.1.0 → 0.2.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.
data/bin/json_minify CHANGED
@@ -32,8 +32,8 @@ end
32
32
  opt_parser.parse!
33
33
  if (input = ARGF.read)
34
34
  if options[:pretty]
35
- puts JsonMinify.minify_pretty(input)
35
+ puts MultiJson.dump(MultiJson.load(input, minify: true), pretty: true)
36
36
  else
37
- puts JsonMinify.minify(input)
37
+ puts MultiJson.minify(input)
38
38
  end
39
39
  end
@@ -1,3 +1,3 @@
1
1
  module JsonMinify
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/json_minify.rb CHANGED
@@ -3,6 +3,7 @@ require 'multi_json'
3
3
  require "json_minify/version"
4
4
 
5
5
  module JsonMinify
6
+
6
7
  def minify(str)
7
8
  ss, buf = StringScanner.new(str), ''
8
9
 
@@ -41,20 +42,13 @@ module JsonMinify
41
42
  end
42
43
  buf
43
44
  end
44
-
45
- def minify_parse(buf)
46
- MultiJson.load(minify(buf))
47
- end
48
-
49
- def minify_pretty(buf)
50
- MultiJson.dump(minify_parse(buf), pretty: true)
51
- end
52
45
  end
53
46
 
54
- MultiJson.class_eval do
47
+ MultiJson.module_eval do
55
48
  extend JsonMinify
56
- end
57
49
 
58
- JsonMinify.class_eval do
59
- extend self
50
+ def self.load(string, options={})
51
+ options.fetch(:minify, false) && string = minify(string)
52
+ super(string, options)
53
+ end
60
54
  end
data/spec/minify_spec.rb CHANGED
@@ -1,23 +1,51 @@
1
1
  require 'json_minify'
2
2
  require 'rspec/autorun'
3
3
 
4
- describe JsonMinify do
5
- it "should remove whitespace from MultiJson" do
6
- expect(MultiJson.minify("{ }")).to eql("{}")
7
- expect(MultiJson.minify(%Q<{"foo": "bar"\n}\n>)).to eql(%Q<{"foo":"bar"}>)
8
- end
4
+ describe MultiJson do
5
+ describe "::minify" do
6
+ it "removes whitespace from JSON" do
7
+ expect(MultiJson.minify("{ }")).to eql("{}")
8
+ expect(MultiJson.minify(%Q<{"foo": "bar"\n}\n>)).to eql(%Q<{"foo":"bar"}>)
9
+ end
9
10
 
10
- it "should remove comments from MultiJson" do
11
- expect(MultiJson.minify("{ /* foo */ } /* bar */")).to eql("{}")
12
- expect(MultiJson.minify(%Q<{"foo": "bar"\n}\n // this is a comment>)).to eql(%Q<{"foo":"bar"}>)
13
- end
11
+ it "removes comments from JSON" do
12
+ expect(MultiJson.minify("{ /* foo */ } /* bar */")).to eql("{}")
13
+ expect(MultiJson.minify(%Q<{"foo": "bar"\n}\n // this is a comment>)).to eql(%Q<{"foo":"bar"}>)
14
+ end
14
15
 
15
- it "should throw a SyntaxError on invalid MultiJson" do
16
- expect { MultiJson.minify("{ /* foo */ } /* bar ") }.to raise_error(SyntaxError)
17
- expect { MultiJson.minify(%Q<{ "foo": new Date(1023) }>) }.to raise_error(SyntaxError)
16
+ it "throws a SyntaxError on invalid JSON" do
17
+ expect { MultiJson.minify("{ /* foo */ } /* bar ") }.to raise_error(SyntaxError)
18
+ expect { MultiJson.minify(%Q<{ "foo": new Date(1023) }>) }.to raise_error(SyntaxError)
19
+ end
20
+
21
+ it "copes with the example from https://github.com/getify/JsonMinify.minify" do
22
+ expect(MultiJson.minify( %Q'{ /* comment */ "foo": 42 \n }' )).to eql('{"foo":42}')
23
+ end
18
24
  end
19
25
 
20
- it "should cope with the example from https://github.com/getify/MultiJson.minify" do
21
- expect(MultiJson.minify( %Q'{ /* comment */ "foo": 42 \n }' )).to eql('{"foo":42}')
26
+
27
+ describe "::load" do
28
+ context "with :minify option" do
29
+ let(:opts) { {minify: true, symbolize_keys: true} }
30
+
31
+ it "removes whitespace from JSON" do
32
+ expect(MultiJson.load("{ }", opts)).to eq({})
33
+ expect(MultiJson.load(%Q<{"foo": "bar"\n}\n>, opts)).to eq({foo:"bar"})
34
+ end
35
+
36
+ it "removes comments from JSON" do
37
+ expect(MultiJson.load("{ /* foo */ } /* bar */", opts)).to eq({})
38
+ expect(MultiJson.load(%Q<{"foo": "bar"\n}\n // this is a comment>, opts)).to eq({foo:"bar"})
39
+ end
40
+
41
+ it "throws a SyntaxError on invalid JSON" do
42
+ expect { MultiJson.load("{ /* foo */ } /* bar ", opts) }.to raise_error(SyntaxError)
43
+ expect { MultiJson.load(%Q<{ "foo": new Date(1023) }>, opts) }.to raise_error(SyntaxError)
44
+ end
45
+
46
+ it "copes with the example from https://github.com/getify/JsonMinify.load" do
47
+ expect(MultiJson.load( %Q'{ /* comment */ "foo": 42 \n }' , opts)).to eq({foo:42})
48
+ end
49
+ end
22
50
  end
23
51
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_minify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Geoff Youngs, Alan Cohen
@@ -12,64 +13,50 @@ date: 2014-03-05 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70357755509400 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - "~>"
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '1'
20
22
  type: :development
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1'
24
+ version_requirements: *70357755509400
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: rake
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70357755508520 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
- - - "~>"
30
+ - - ~>
32
31
  - !ruby/object:Gem::Version
33
32
  version: '10.1'
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.1'
35
+ version_requirements: *70357755508520
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: rspec
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70357755507620 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
- - - "~>"
41
+ - - ~>
46
42
  - !ruby/object:Gem::Version
47
43
  version: '2.14'
48
44
  type: :development
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.14'
46
+ version_requirements: *70357755507620
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: multi_json
57
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &70357755506860 !ruby/object:Gem::Requirement
50
+ none: false
58
51
  requirements:
59
- - - "~>"
52
+ - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: '1.0'
54
+ version: '1'
62
55
  type: :runtime
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
- description: |-
70
- Pre-parser for JSON that removes C/C++ style comments
71
- and whitespace from formatted JSON, similar to
72
- https://github.com/getify/JSON.minify.
57
+ version_requirements: *70357755506860
58
+ description: ! "Pre-parser for JSON that removes C/C++ style comments\n and
59
+ whitespace from formatted JSON, similar to\n https://github.com/getify/JSON.minify."
73
60
  email:
74
61
  - git@intersect-uk.co.uk
75
62
  - acohen@climate.com
@@ -78,33 +65,35 @@ executables:
78
65
  extensions: []
79
66
  extra_rdoc_files: []
80
67
  files:
81
- - bin/json_minify
82
- - lib/json_minify.rb
83
68
  - lib/json_minify/version.rb
69
+ - lib/json_minify.rb
84
70
  - spec/minify_spec.rb
71
+ - !binary |-
72
+ YmluL2pzb25fbWluaWZ5
85
73
  homepage: http://github.com/lumberj/json-minify-rb
86
74
  licenses:
87
75
  - MIT
88
- metadata: {}
89
76
  post_install_message:
90
77
  rdoc_options: []
91
78
  require_paths:
92
79
  - lib
93
80
  required_ruby_version: !ruby/object:Gem::Requirement
81
+ none: false
94
82
  requirements:
95
- - - ">="
83
+ - - ! '>='
96
84
  - !ruby/object:Gem::Version
97
85
  version: '0'
98
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
99
88
  requirements:
100
- - - ">="
89
+ - - ! '>='
101
90
  - !ruby/object:Gem::Version
102
91
  version: '0'
103
92
  requirements: []
104
93
  rubyforge_project:
105
- rubygems_version: 2.2.1
94
+ rubygems_version: 1.8.11
106
95
  signing_key:
107
- specification_version: 4
96
+ specification_version: 3
108
97
  summary: JSON.minify implementation
109
98
  test_files:
110
99
  - spec/minify_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4b1a521047dc7e5c7f8ca2db29a83790e894c16c
4
- data.tar.gz: 6faea50280d8e213df26861dab2dbbb7c393a7a0
5
- SHA512:
6
- metadata.gz: 48eb3797b93ae45ce392356c35b3b0580e4f29d19d19ee751d47635aa5cce236ac99bcc9565bea32e7332f5d2c824360eb94050e1953c625583f5f87768a1a5d
7
- data.tar.gz: c34a2c0c33b72a25864082f5b618298666ba1d5560817ebe3cf799c4c20933d8df577090409f227d6565bcc0961dd667412ec17a6e0824743c1f338cb9a7f9f7