check_please 0.2.3 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f794a7a96790b642f2afc6f66bebb761a788c2b2a95025662e4ec8e654e612ef
4
- data.tar.gz: 98a088234aa843abf60668d8ee6722de318f60d19e29352f8332338d28268e7c
3
+ metadata.gz: c4433e70c9c7da92bbc95c1bfb2f22a947be4e3d30c9fa5b1d735826cc45dde1
4
+ data.tar.gz: 249804476d1b19c1f9add240b20f5e05b9258d4a70f992b5bc8a3654339e7f5c
5
5
  SHA512:
6
- metadata.gz: 376fe8e75cf2c952d0cbaf42c32ca659c4f96488919eda781fc29cb50b259ddd3a91d60aa4bbae48022ccce96ab04148e60938079920a7657b7e288061b707dc
7
- data.tar.gz: dd4c24bd01c391fa70e626bd9753efd3601a4a9a92dfe92956ce5742c0d8771e53a32a3ef05cbd1e45ac75eff30342230ba2b3dd238274fbe00bea2291f7d148
6
+ metadata.gz: be7a4320ecb7bf5836ed62ed629e3445b20e2e847e497847a5cdbab856694b46b7f039e8c423622b0b35f5d098398c1f060655e9f4f11aacc2b15adeeb1dda61
7
+ data.tar.gz: e15695cfa60a8c2cf29b54b32c33ce76a5758fe76cd8ac92cb90b362d1597060de469b99c4a2e182a5b35b28b4d1757508b6e8b058a6371fd7455ad2a30d7ae3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- check_please (0.2.3)
4
+ check_please (0.2.4)
5
5
  table_print
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -19,11 +19,10 @@ Or install it yourself as:
19
19
 
20
20
  $ gem install check_please
21
21
 
22
- ## Usage
23
-
24
- ### Terminology
22
+ ## Terminology
25
23
 
26
- CheckPlease uses a few words in a jargony way:
24
+ I know, you just want to see how to use this thing. Feel free to scroll down,
25
+ but be aware that CheckPlease uses a few words in a jargony way:
27
26
 
28
27
  * **Reference** is always used to refer to the "target" or "source of truth."
29
28
  We assume you're comparing two things because you want one of them to be like
@@ -36,7 +35,9 @@ CheckPlease uses a few words in a jargony way:
36
35
  **reference** and the **candidate**. More on this in "Understanding the Output",
37
36
  below.
38
37
 
39
- ### CLI
38
+ ## Usage
39
+
40
+ ### From the Terminal
40
41
 
41
42
  Use the `bin/check_please` executable. (To get started, run it with the '-h' flag.)
42
43
 
@@ -47,19 +48,16 @@ of giving it a second filename as the argument. (This is especially useful if
47
48
  you're copying an XHR response out of a web browser's dev tools and have a tool
48
49
  like MacOS's `pbpaste` utility.)
49
50
 
50
- ### RSpec Matcher
51
+ ### From RSpec
51
52
 
52
53
  See [check_please_rspec_matcher](https://github.com/RealGeeks/check_please_rspec_matcher).
53
54
 
54
- ### From Within Ruby
55
-
56
- Create two JSON strings and pass them to `CheckPlease.render_diff`. You'll get
57
- back a third string containing a nicely formatted report of all the differences
58
- CheckPlease found in the two JSON strings. (See also: [./usage_examples.rb](usage_examples.rb).)
55
+ ### From Ruby
59
56
 
60
- (You can also parse the JSON strings yourself and pass the resulting data
61
- structures in, if you're into that. I mean, I wrote this to help compare JSON
62
- data that's too big and complicated to scan through visually, but you do you!
57
+ Create two strings, each containing a JSON or YAML document, and pass them to
58
+ `CheckPlease.render_diff`. You'll get back a third string containing a report
59
+ of all the differences CheckPlease found in the two JSON strings. (See also:
60
+ [./usage_examples.rb](usage_examples.rb).)
63
61
 
64
62
  ### Understanding the Output
65
63
 
@@ -71,9 +69,7 @@ tool because you want a human-friendly summary of all the places that your
71
69
  **candidate** fell short.
72
70
 
73
71
  When CheckPlease compares your two samples, it generates a list of diffs to
74
- describe any discrepancies it encounters. (By default, it prints that list in a
75
- tabular format, but if you want to incorporate this into another toolchain,
76
- CheckPlease can also print these diffs as JSON to facilitate parsing.)
72
+ describe any discrepancies it encounters.
77
73
 
78
74
  An example would probably help here.
79
75
 
@@ -125,23 +121,22 @@ CheckPlease defines:
125
121
  * **type_mismatch** means that both the **reference** and the **candidate** had
126
122
  a value at the given path, but one value was an Array or a Hash and the other
127
123
  was not. **When CheckPlease encounters a type mismatch, it does not compare
128
- anything "below" the given path.** producing a lot of "garbage" diffs.
129
- _(Technical note: CheckPlease uses a "recursive descent" strategy to
130
- traverse the **reference** data structure, and it stops when it encounters a
131
- type mismatch in order to avoid producing a lot of "garbage" diff output.
132
- Also, the way these get displayed is likely to change.)_
124
+ anything "below" the given path.** _(Technical note: CheckPlease uses a
125
+ "recursive descent" strategy to traverse the **reference** data structure,
126
+ and it stops when it encounters a type mismatch in order to avoid producing a
127
+ lot of "garbage" diff output.)_
133
128
  * **mismatch** means that both the **reference** and the **candidate** had a
134
129
  value at the given path, and neither value was an Array or a Hash.
135
- * **extra** means that, inside an Array or a Hash, the **candidate**
136
- contained values that were not found in the **reference**.
130
+ * **extra** means that, inside an Array or a Hash, the **candidate** contained
131
+ values that were not found in the **reference**.
137
132
  * **missing** is the opposite of **extra**: inside an Array or a Hash, the
138
133
  **reference** contained values that were not found in the **candidate**.
139
134
 
140
135
  #### Paths
141
136
 
142
- The second column contains a path expression. This is extremely basic:
137
+ The second column contains a path expression. This is extremely lo-fi:
143
138
 
144
- * The first element in the data structure is defined as "/".
139
+ * The root of the data structure is defined as "/".
145
140
  * If an element in the data structure is an array, its child elements will have
146
141
  a **one-based** index appended to their parent's path.
147
142
  * If an element in the data structure is an object ("Hash" in Ruby), the key
@@ -165,7 +160,6 @@ print diffs as JSON to facilitate parsing. In Ruby, pass `format: :json` to
165
160
 
166
161
  * command line flags for :allthethings:!
167
162
  * sort by path?
168
- * max depth (for iterative refinement?)
169
163
  * detect timestamps and compare after parsing?
170
164
  * ignore sub-second precision (option / CLI flag)?
171
165
  * possibly support plugins for other folks to add custom coercions?
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require_relative '../lib/check_please'
3
+ require 'check_please'
4
4
  CheckPlease::CLI.run(__FILE__)
@@ -1,5 +1,5 @@
1
1
  module CheckPlease
2
2
  # NOTE: 'check_please_rspec_matcher' depends on this,
3
3
  # so try to keep them roughly in sync
4
- VERSION = "0.2.3"
4
+ VERSION = "0.2.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_please
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Livingston-Gray
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-16 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: table_print
@@ -56,7 +56,8 @@ description: Check for differences between two JSON strings (or Ruby data struct
56
56
  parsed from them)
57
57
  email:
58
58
  - geeksam@gmail.com
59
- executables: []
59
+ executables:
60
+ - check_please
60
61
  extensions: []
61
62
  extra_rdoc_files: []
62
63
  files:
@@ -69,10 +70,10 @@ files:
69
70
  - LICENSE.txt
70
71
  - README.md
71
72
  - Rakefile
72
- - bin/check_please
73
73
  - bin/console
74
74
  - bin/setup
75
75
  - check_please.gemspec
76
+ - exe/check_please
76
77
  - lib/check_please.rb
77
78
  - lib/check_please/cli.rb
78
79
  - lib/check_please/cli/flag.rb