xeme 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -11
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2dd9c9b62b1d0d2f4db4657ff6880cea68476a47ca4e366da77eab004d5ad71f
4
- data.tar.gz: b15afd00d574e1382597d43df90f50668e0c8a651f2623ab5447af0d717bd404
3
+ metadata.gz: 6f0167b2bc464df9ea9f19613a320fdae68341e4da43fba5a85f4c5d0644c5e7
4
+ data.tar.gz: 9a74cb9a9026cc9f3877c4232301fb88d611634f38ac755007cb56e76ffde52c
5
5
  SHA512:
6
- metadata.gz: 800b710d55a2745c7591a8c5867c5b97125750d525b9ed941f8826093c60efac36f03a135ca9104728ffe849351d176f257a0dc13382a25a87b5d2e9f553653f
7
- data.tar.gz: 90c33ffa2e86e06895176ce1a16aa06fef19991fb0c7fbcadc8cb79f9480d6fc4ee1764e162d8b5e3e00993c07523926d38befb74c1a3b9ef22193b968eb64ff
6
+ metadata.gz: 2d563da48a8c9a49ba3b5e9cec5da9843e84bf32ca28032699cd9ee94f38e9d9a422fe27aa03b10d852a1ad00a22bcf3e4097620fd68bdcb617e6789401ff2a9
7
+ data.tar.gz: 732c7cf90ed366fefa4bc9c3ac5abf3128e83ac3da33c0819af172b6683993250e118d7407e0d7fafe9459f566d5b70e66d9b87271881ef7fb31263583f4217c
data/README.md CHANGED
@@ -109,7 +109,7 @@ The usual:
109
109
  gem install xeme
110
110
  ```
111
111
 
112
- ### Using the Xeme gem
112
+ ### Basic Xeme concepts
113
113
 
114
114
  Xeme (the gem) is a thin layer over a hash that implements the Xeme format. (For
115
115
  the rest of this document "Xeme" refers to the Ruby class, not the format.)
@@ -138,7 +138,7 @@ xeme['errors'] = []
138
138
  xeme['errors'].push({'id'=>'my-error'})
139
139
  ```
140
140
 
141
- #### Success and failure
141
+ ### Success and failure
142
142
 
143
143
  Because a xeme isn't considered successful until it has been explicitly declared
144
144
  so, a new xeme is considered to indicate failure. However, because there are no
@@ -188,7 +188,7 @@ xeme.try_succeed
188
188
  puts xeme.success? # => false
189
189
  ```
190
190
 
191
- #### Creating and using messages
191
+ ### Creating and using messages
192
192
 
193
193
  Messages in a xeme provide a way to indicate errors (i.e. fatal errors),
194
194
  warnings (non-fatal errors), notes (not an error at all), and promises (guides
@@ -206,12 +206,12 @@ xeme.note 'my-note'
206
206
  xeme.promise 'my-promise'
207
207
  ```
208
208
 
209
- `error`, `warning`, and `note` each create a message for their own type.
210
- Although it is not required, it's usually a good idea to give a string as the
211
- first parameter. That string will be set to the `id` element in the resulting
212
- hash, as seen in the example above.
209
+ `#error`, `#warning`, `#note`, and `#promise` each create a message for their
210
+ own type. Although it is not required, it's usually a good idea to give a string
211
+ as the first parameter. That string will be set to the `id` element in the
212
+ resulting hash, as seen in the example above.
213
213
 
214
- `errors`, `warnings`, and `notes` return arrays for each type.
214
+ `#errors`, `#warnings`, `#notes`, and `#promises` return arrays for each type.
215
215
 
216
216
  ```ruby
217
217
  xeme.errors.each do |e|
@@ -261,7 +261,39 @@ err['database-error'] = 'some database error'
261
261
  err['commands'] = ['a', 'b', 'c']
262
262
  ```
263
263
 
264
- #### Nesting xemes
264
+ ### Creating metainformation
265
+
266
+ The `#meta` method returns the `meta` element in the xeme hash, creating it if
267
+ necessary. The hash will be automatically populated with a timestamp and a UUID.
268
+ If you gave the xeme an identifier when you created it, that id will stored in
269
+ the meta hash:
270
+
271
+ ```ruby
272
+ xeme = Xeme.new('my-xeme')
273
+ puts xeme.meta
274
+ ```
275
+
276
+ This produces a `meta` hash like this:
277
+
278
+ ```ruby
279
+ {
280
+ "uuid"=>"4e736a8f-314e-470a-8209-6811a7b2d38c",
281
+ "timestamp"=>2023-05-29 19:22:37.26152866 -0400,
282
+ "id"=>"my-xeme"
283
+ }
284
+ ```
285
+
286
+ If you don't pass in an id then the meta hash isn't created. However, you can
287
+ always create and use the meta hash by calling the `#meta` method. The timestamp
288
+ and UUID will be automatically created.
289
+
290
+ ```ruby
291
+ xeme = Xeme.new
292
+ xeme.meta['foo'] = 'bar'
293
+ xeme.meta.class # => Hash
294
+ ```
295
+
296
+ ### Nesting xemes
265
297
 
266
298
  In complex testing situations it can be useful to nest results within other
267
299
  results. To nest a xeme within another xeme, use the `#nest` method:
@@ -332,7 +364,7 @@ puts xeme['errors']
332
364
  ```
333
365
 
334
366
 
335
- #### Resolving xemes
367
+ ### Resolving xemes
336
368
 
337
369
  A xeme can contain contradictory information. For example, if `success` is true
338
370
  but there are errors, then the xeme should be considered as failed. If there are
@@ -376,4 +408,5 @@ mike@idocs.com
376
408
  | version | date | notes |
377
409
  |---------|--------------|-------------------------------|
378
410
  | 0.1 | Jan 7, 2020 | Initial upload. |
379
- | 1.0 | May 29, 2023 | Complete overhaul. Not backward compatible. |
411
+ | 1.0 | May 29, 2023 | Complete overhaul. Not backward compatible. |
412
+ | 1.1 | May 29, 2023 | Added and cleaned up documentation. No change to funcationality. |
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xeme
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike O'Sullivan