refinements 12.0.0 → 12.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a497496f7842bab471ed5d7703054c050aad5d62dcdc317678d4d40d871dbefe
4
- data.tar.gz: 117975da807b741ff3b9dff8d585dbba8d00243af81f7c8daf964cda0de6b7b9
3
+ metadata.gz: 2067ee329cd6e63e9e6a2045815951df747abe35b5e8e6c456f60ab7242b4d59
4
+ data.tar.gz: 4e41441c9b45b303a3b179a620c35ffe7605eb8b53992ea654812ae6ba302b3a
5
5
  SHA512:
6
- metadata.gz: bf13a20ac2e6f6849ab0ae65929f0574c6569cf5840e8aada271f63749326c319531c1e6a572b9bad2526cfb5280df48d9f1ee638a4cff87105e2429edad2d23
7
- data.tar.gz: 6b07855b0b39fe4d45509e9cbc11c8e7392a686cd485b73cab3c6134ad6d709f3355cb0b3f18bff81becbfb87058c8f3e0e872ad7db69a657a1c25e8d1390533
6
+ metadata.gz: 248aa4f7d8f182f2b6f268c135f773ea0076d89cf3a6cc671433f8383efee30fc056d0fdf660af21b1bd97e4ed10bfc1b2579298acdfa81309b6e9305ca70da5
7
+ data.tar.gz: fb0ba5bf68bfd7fc06477cb5b049c79a16f5e69a27dc7203088db835df3ed2f028796e637fdacb87c1b49145601c0986048272c1580f58e1a2c52c6e36e2c8ff
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -376,9 +376,11 @@ Useful when building documentation, answering human readable error messages, etc
376
376
  %w[eins zwei drei].to_sentence "und", delimiter: " " # "eins zwei und drei"
377
377
  ----
378
378
 
379
+ 💡 You can use a string or a symbol for the conjunction (i.e. `"and"` or `:and`).
380
+
379
381
  ===== #to_usage
380
382
 
381
- Builds upon and enhances `#to_sentence` further by answering a sentence which all elements are inspected -- where each element of the array is called with `#inspect` -- before turned into a sentence using `"and"` as the default conjunction and `", "` as the default delimiter. This is useful when providing detailed error messages _and_ you need to detail the types of element used.
383
+ Further enhances `#to_sentence` by answering a sentence where all elements are inspected (i.e. `#inspect`) before turned into a sentence using `"and"` as the default conjunction and `", "` as the default delimiter. This is useful when providing detailed error messages _and_ you need the _types_ of all elements preserved.
382
384
 
383
385
  [source,ruby]
384
386
  ----
@@ -390,6 +392,8 @@ Builds upon and enhances `#to_sentence` further by answering a sentence which al
390
392
  %w[eins zwei drei].to_usage "und", delimiter: " " # "\"eins\" \"zwei\" und \"drei\""
391
393
  ----
392
394
 
395
+ 💡 You can use a string or a symbol for the conjunction (i.e. `"and"` or `:and`).
396
+
393
397
  ==== Data
394
398
 
395
399
  ===== #diff
@@ -575,12 +579,13 @@ expression `example.fetch(:desired_key) || "default_value"`.
575
579
 
576
580
  [source,ruby]
577
581
  ----
578
- {a: "demo"}.fetch_value :a, "default" # "demo"
579
- {a: "demo"}.fetch_value :a # "demo"
580
- {a: nil}.fetch_value :a, "default" # "default"
581
- {}.fetch_value(:a) { "default" } # "default"
582
- {}.fetch_value :a # KeyError
583
- {a: "demo"}.fetch_value # ArgumentError
582
+ {a: "demo"}.fetch_value :a, "default" # "demo"
583
+ {a: "demo"}.fetch_value :a # "demo"
584
+ {a: nil}.fetch_value :a, "default" # "default"
585
+ {a: nil}.fetch_value(:a) { "default" } # "default"
586
+ {}.fetch_value :a # KeyError
587
+ {}.fetch_value(:a) { "default" } # "default"
588
+ {a: "demo"}.fetch_value # ArgumentError
584
589
  ----
585
590
 
586
591
  ===== #flatten_keys
@@ -51,7 +51,9 @@ module Refinements
51
51
  each.with_object({}) { |(key, value), diff| diff[key] = [value, nil] }
52
52
  end
53
53
 
54
- def fetch_value(key, *default, &) = fetch(key, *default, &) || default.first
54
+ def fetch_value(key, *default, &)
55
+ fetch(key, *default, &) || (yield if block_given?) || default.first
56
+ end
55
57
 
56
58
  def flatten_keys prefix: nil, delimiter: "_"
57
59
  reduce({}) do |accumulator, (key, value)|
@@ -28,9 +28,7 @@ module Refinements
28
28
  reopen backup
29
29
  end
30
30
 
31
- # rubocop:todo Naming/BlockForwarding
32
31
  def squelch(&block) = self.class.void.then { |void| redirect(void, &block) }
33
- # rubocop:enable Naming/BlockForwarding
34
32
  end
35
33
  end
36
34
  end
@@ -4,11 +4,9 @@ module Refinements
4
4
  # Provides additional enhancements to the Symbol primitive.
5
5
  module Symbol
6
6
  refine ::Symbol do
7
- # rubocop:todo Naming/BlockForwarding
8
7
  def call(*arguments, &block)
9
8
  proc { |receiver| receiver.public_send self, *arguments, &block }
10
9
  end
11
- # rubocop:enable Naming/BlockForwarding
12
10
  end
13
11
  end
14
12
  end
data/refinements.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "refinements"
5
- spec.version = "12.0.0"
5
+ spec.version = "12.1.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/refinements"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinements
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.0.0
4
+ version: 12.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2024-01-01 00:00:00.000000000 Z
38
+ date: 2024-01-28 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email:
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
- rubygems_version: 3.5.3
94
+ rubygems_version: 3.5.5
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: A collection of core Ruby object refinements.
metadata.gz.sig CHANGED
Binary file