refinements 12.0.0 → 12.1.0

Sign up to get free protection for your applications and to get access to all the features.
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