json_checker 0.1.3 → 0.1.4
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 +5 -13
- data/.gitignore +0 -1
- data/README.md +49 -2
- data/images/output.png +0 -0
- data/json-config.json +17 -17
- data/lib/json_checker/html_output.rb +14 -5
- data/lib/json_checker/json_comparator.rb +1 -1
- data/lib/json_checker/json_validator.rb +1 -1
- data/lib/json_checker/version.rb +1 -1
- data/output.html +96 -0
- metadata +19 -17
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OTZjNDRjYTNkYmE2YTg1MTFkY2ZmM2FhNDM2NDM0ODRmYmYyM2ZjOQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7039a495025f0d11a764d92a4e30a358a2858797
|
4
|
+
data.tar.gz: 68ba2a3b3574fb0be32090aba3bf3e893e260f3d
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NzNlZGM1MWZjYzZjMzQyZmIwOTE4MDgxYzVhYzA3NWQyODQ2YzY4NTliM2I5
|
11
|
-
OWU1NzdhY2Q2Zjc1NTM3N2U4NmM2ZmFjODRhNGI5YTNkOWIxMGQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NDdjYjliNzJmYmZmZTY5NTQ1YTE3ODhmY2QyNGY3MDViZjRhZGRjMDRjN2Vl
|
14
|
-
N2JhNzRmZWM0YzU3MmUxYWM1MDFiMjA4ZDlkMmJkYTRjNDJlYzVkNWQzM2Fl
|
15
|
-
MTRiZjQyZTdiOWNlYTQzNjczN2I2ZmMzMWZlMmVmMTU2ZjFmMTY=
|
6
|
+
metadata.gz: 0debc9c97f6b9b9c21cb04de3792cc7c406187effee5e091f287e875ae9ff8b8ae19d8c08ad54792ae6019335545cfd947ec7b44668513ba34c4a026d5457ae5
|
7
|
+
data.tar.gz: dc905f8d9816c28f093a7623082f80715dbfc95402bff6eba0cc0c8e649b4d0d0f59d0d4ef7a2ad28b081904bd1bdec72a5f025802f44cd3a221aae5a63aa3a9
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
# JsonChecker
|
2
2
|
|
3
|
+
Compare and validate JSON files
|
4
|
+
|
3
5
|
[](https://raw.githubusercontent.com/hyperium/hyper/master/LICENSE)
|
4
6
|
[](https://travis-ci.org/ciceroduarte/json_checker)
|
5
7
|
[](https://coveralls.io/github/ciceroduarte/json_checker?branch=master)
|
8
|
+

|
6
9
|
|
7
10
|
## Installation
|
8
11
|
|
@@ -20,10 +23,54 @@ Or install it yourself as:
|
|
20
23
|
|
21
24
|
$ gem install json_checker
|
22
25
|
|
26
|
+
## Configuration file
|
27
|
+
|
28
|
+
```json
|
29
|
+
# json-config.json
|
30
|
+
{
|
31
|
+
"files": [
|
32
|
+
{
|
33
|
+
"name": "JSON example",
|
34
|
+
"remote-path": "http://private-8d36d-jsonchecker.apiary-mock.com/choices",
|
35
|
+
"keys" : {
|
36
|
+
"choice1": "Swift",
|
37
|
+
"choice2": "C",
|
38
|
+
"choice2": "Swift22",
|
39
|
+
"choice3": "Objective-C",
|
40
|
+
"choice6": "Java"
|
41
|
+
},
|
42
|
+
"compare-to": [
|
43
|
+
{
|
44
|
+
"remote-path": "http://private-8d36d-jsonchecker.apiary-mock.com/choices2",
|
45
|
+
"name": "Choices"
|
46
|
+
}
|
47
|
+
]
|
48
|
+
}
|
49
|
+
]
|
50
|
+
}
|
51
|
+
```
|
52
|
+
|
53
|
+
### Fields
|
54
|
+
|
55
|
+
* `files`: List of files to validation.
|
56
|
+
* `name`: Name of file to report.
|
57
|
+
* `path`: Local path to file.
|
58
|
+
* `remote-path`: Remote path to file.
|
59
|
+
* `keys`: Key/value to check.
|
60
|
+
* `compare-to`: List of files to compare
|
61
|
+
|
23
62
|
## Usage
|
24
63
|
|
25
|
-
|
64
|
+
Add `json-config.json` to your path and run `json_checker`
|
65
|
+
```sh
|
66
|
+
$ json_checker
|
67
|
+
```
|
68
|
+
|
69
|
+
## HTML Output
|
70
|
+
|
71
|
+
Output example [output.html](http://htmlpreview.github.io/?https://github.com/ciceroduarte/json_checker/blob/master/output.html)
|
26
72
|
|
73
|
+

|
27
74
|
## Development
|
28
75
|
|
29
76
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -37,4 +84,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/cicero
|
|
37
84
|
|
38
85
|
## License
|
39
86
|
|
40
|
-
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
87
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/images/output.png
ADDED
Binary file
|
data/json-config.json
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
{
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
"files": [
|
3
|
+
{
|
4
|
+
"name": "JSON example",
|
5
|
+
"remote-path": "http://private-8d36d-jsonchecker.apiary-mock.com/choices",
|
6
|
+
"keys" : {
|
7
|
+
"choice1": "Swift",
|
8
|
+
"choice2": "C",
|
9
|
+
"choice2": "Swift22",
|
10
|
+
"choice3": "Objective-C",
|
11
|
+
"choice6": "Java"
|
12
|
+
},
|
13
|
+
"compare-to": [
|
14
14
|
{
|
15
|
-
"remote-path": "http://private-
|
16
|
-
"name": "
|
15
|
+
"remote-path": "http://private-8d36d-jsonchecker.apiary-mock.com/choices2",
|
16
|
+
"name": "Choices"
|
17
17
|
}
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
]
|
19
|
+
}
|
20
|
+
]
|
21
21
|
}
|
@@ -29,7 +29,7 @@ module JsonChecker
|
|
29
29
|
HTMLOutput.add_item(item)
|
30
30
|
end
|
31
31
|
|
32
|
-
def self.generate_output()
|
32
|
+
def self.generate_output(output_path)
|
33
33
|
htmlOutput = HTMLOutput.new()
|
34
34
|
output = "<html>" + htmlOutput.add_style() + "<body>"
|
35
35
|
@reportItems.each do |item|
|
@@ -37,7 +37,7 @@ module JsonChecker
|
|
37
37
|
end
|
38
38
|
output << "</body></html>"
|
39
39
|
|
40
|
-
htmlOutput.save_to_file(output)
|
40
|
+
htmlOutput.save_to_file(output, output_path)
|
41
41
|
end
|
42
42
|
|
43
43
|
def self.add_item(item)
|
@@ -48,7 +48,9 @@ module JsonChecker
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def add_style()
|
51
|
-
return "
|
51
|
+
return "
|
52
|
+
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
|
53
|
+
<style>
|
52
54
|
.addition { background: #eaffea; }
|
53
55
|
.remotion { background: #ffecec; }
|
54
56
|
.diff { outline: 1px solid #eff0d6; margin: 5px; padding-top: 5px; padding-bottom: 5px; }
|
@@ -63,11 +65,18 @@ module JsonChecker
|
|
63
65
|
</style>"
|
64
66
|
end
|
65
67
|
|
66
|
-
def save_to_file(report)
|
68
|
+
def save_to_file(report, output_path)
|
69
|
+
|
70
|
+
path = "output.html"
|
71
|
+
|
72
|
+
unless output_path.nil?
|
73
|
+
path = output_path
|
74
|
+
end
|
75
|
+
|
67
76
|
if report.nil?
|
68
77
|
puts "[ERROR] Invalid report"
|
69
78
|
else
|
70
|
-
File.write(
|
79
|
+
File.write(path, report)
|
71
80
|
end
|
72
81
|
end
|
73
82
|
|
@@ -27,7 +27,7 @@ module JsonChecker
|
|
27
27
|
temp_jsonToCompare = tempfile_from_json(jsonToCompare)
|
28
28
|
|
29
29
|
unless temp_json.nil? && temp_jsonToCompare.nil?
|
30
|
-
diff = Diffy::Diff.new(
|
30
|
+
diff = Diffy::Diff.new(temp_jsonToCompare.path, temp_json.path, :source => 'files', :context => 3)
|
31
31
|
html_report_from_diff(title, diff)
|
32
32
|
|
33
33
|
temp_jsonToCompare.delete
|
data/lib/json_checker/version.rb
CHANGED
data/output.html
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
<html>
|
2
|
+
<style>
|
3
|
+
.addition {
|
4
|
+
background: #eaffea;
|
5
|
+
}
|
6
|
+
.remotion {
|
7
|
+
background: #ffecec;
|
8
|
+
}
|
9
|
+
.diff {
|
10
|
+
outline: 1px solid #eff0d6;
|
11
|
+
margin: 5px;
|
12
|
+
padding-top: 5px;
|
13
|
+
padding-bottom: 5px;
|
14
|
+
}
|
15
|
+
.validation {
|
16
|
+
margin: 5px;
|
17
|
+
}
|
18
|
+
body {
|
19
|
+
font-family: monospace;
|
20
|
+
}
|
21
|
+
table {
|
22
|
+
border-collapse: collapse;
|
23
|
+
width: 100%;
|
24
|
+
}
|
25
|
+
td {
|
26
|
+
border: 1px solid #eff0d6;
|
27
|
+
}
|
28
|
+
th {
|
29
|
+
background-color: #4CAF50;
|
30
|
+
color: white;
|
31
|
+
border: 1px solid #4CAF50;
|
32
|
+
}
|
33
|
+
th, td {
|
34
|
+
padding: 5px;
|
35
|
+
text-align: left;
|
36
|
+
}
|
37
|
+
tr:hover {
|
38
|
+
background-color: #f5f5f5
|
39
|
+
}
|
40
|
+
p {
|
41
|
+
margin-top: 0em;
|
42
|
+
margin-bottom: 0em;
|
43
|
+
white-space: pre;
|
44
|
+
padding : 3;
|
45
|
+
color: #3e3333
|
46
|
+
}
|
47
|
+
</style>
|
48
|
+
<body>
|
49
|
+
<h2>Validating JSON example values</h2>
|
50
|
+
<div class="validation" style="overflow-x:auto;">
|
51
|
+
<table>
|
52
|
+
<tr>
|
53
|
+
<th>Status</th>
|
54
|
+
<th>Key</th>
|
55
|
+
<th>Expected</th>
|
56
|
+
<th>Value</th>
|
57
|
+
</tr>
|
58
|
+
<tr>
|
59
|
+
<td>Success</td>
|
60
|
+
<td>choice1</td>
|
61
|
+
<td>Swift</td>
|
62
|
+
<td>Swift</td>
|
63
|
+
</tr>
|
64
|
+
<tr>
|
65
|
+
<td>Error</td>
|
66
|
+
<td>choice2</td>
|
67
|
+
<td>Swift22</td>
|
68
|
+
<td>Python</td>
|
69
|
+
</tr>
|
70
|
+
<tr>
|
71
|
+
<td>Success</td>
|
72
|
+
<td>choice3</td>
|
73
|
+
<td>Objective-C</td>
|
74
|
+
<td>Objective-C</td>
|
75
|
+
</tr>
|
76
|
+
<tr>
|
77
|
+
<td>Not found</td>
|
78
|
+
<td>choice6</td>
|
79
|
+
<td>Java</td>
|
80
|
+
<td></td>
|
81
|
+
</tr>
|
82
|
+
</table>
|
83
|
+
</div>
|
84
|
+
<h2>Comparing JSON example with Choices</h2>
|
85
|
+
<div class="diff">
|
86
|
+
<p class="null"> {</p>
|
87
|
+
<p class="null"> "choice1": "Swift",</p>
|
88
|
+
<p class="remotion">- "choice2": "Python",</p>
|
89
|
+
<p class="addition">+ "choice2": "C",</p>
|
90
|
+
<p class="null"> "choice3": "Objective-C",</p>
|
91
|
+
<p class="remotion">- "choice4": "Ruby"</p>
|
92
|
+
<p class="addition">+ "choice4": "Java"</p>
|
93
|
+
<p class="null"> }</p>
|
94
|
+
</div>
|
95
|
+
</body>
|
96
|
+
</html>
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cícero Duarte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.14'
|
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
26
|
version: '1.14'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: coveralls
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
@@ -88,10 +88,10 @@ executables:
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
- .coveralls.yml
|
92
|
-
- .gitignore
|
93
|
-
- .rspec
|
94
|
-
- .travis.yml
|
91
|
+
- ".coveralls.yml"
|
92
|
+
- ".gitignore"
|
93
|
+
- ".rspec"
|
94
|
+
- ".travis.yml"
|
95
95
|
- CODE_OF_CONDUCT.md
|
96
96
|
- Gemfile
|
97
97
|
- LICENSE.md
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- bin/console
|
102
102
|
- bin/json_checker
|
103
103
|
- bin/setup
|
104
|
+
- images/output.png
|
104
105
|
- json-config.json
|
105
106
|
- json_checker.gemspec
|
106
107
|
- lib/json_checker.rb
|
@@ -111,6 +112,7 @@ files:
|
|
111
112
|
- lib/json_checker/json_to_check.rb
|
112
113
|
- lib/json_checker/json_validator.rb
|
113
114
|
- lib/json_checker/version.rb
|
115
|
+
- output.html
|
114
116
|
homepage: https://github.com/ciceroduarte/json_checker
|
115
117
|
licenses:
|
116
118
|
- MIT
|
@@ -121,17 +123,17 @@ require_paths:
|
|
121
123
|
- lib
|
122
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
123
125
|
requirements:
|
124
|
-
- -
|
126
|
+
- - ">="
|
125
127
|
- !ruby/object:Gem::Version
|
126
128
|
version: '0'
|
127
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
130
|
requirements:
|
129
|
-
- -
|
131
|
+
- - ">="
|
130
132
|
- !ruby/object:Gem::Version
|
131
133
|
version: '0'
|
132
134
|
requirements: []
|
133
135
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.0.14.1
|
135
137
|
signing_key:
|
136
138
|
specification_version: 4
|
137
139
|
summary: Validate fields and compare with others json files
|