refinements 9.3.2 → 9.5.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: 1944163ba2c01a7e4f8426eb4f51f0a69f03a5cbfc917481f0737eade97606f8
4
- data.tar.gz: 507ace61bb505e081844540f9a1c55613ae380f3dd24ae55bbaced230ac33b74
3
+ metadata.gz: 06c161de8cf1a100c8df6267ef2116368743557dac4504e9617b19dd063520aa
4
+ data.tar.gz: 60389a48bc41a581d835ac67c80e71a8db438ddbccf070336e1128d4d430e87a
5
5
  SHA512:
6
- metadata.gz: 921398ebe01062ee06c620a8ec317e8675bac9e75a71db95ce93af132968f807cd36387437d5ae3f4b33635137f618577972dd813fdafcb122e2dfcc941d58f5
7
- data.tar.gz: 26b54641a9809e34890fff971f343322abb543f4566af35df2f11724ac6520d9f93833e6959c23191e2ec5279c0123953c6c133d4b80f5a89ede48cd0aef7bda
6
+ metadata.gz: 95c680f9fe5df9820d72462e40984eafe398b0cf81589b6525026978a477950723608d8d39b89b3fe0c61e888ce3a2a166d2e54ec26676a3c9621f6b712e3828
7
+ data.tar.gz: b3743029174a74733328346ce1264d9f7dab9876222deb4a3b3f96a38817cf8b7c0b35eabc62639b5f7e7f4f2e1572282d1f31952e6c55b90d6f65df2b190bef
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -254,6 +254,21 @@ example.ring { |(before, current, after)| puts "#{before} #{current} #{after}" }
254
254
  # [2 3 1]
255
255
  ----
256
256
 
257
+ ===== #to_sentence
258
+
259
+ Answers a sentence using `", "` as the default delimiter and `"and"` as the default conjunction.
260
+ Useful when building documentation, answering human readable error messages, etc.
261
+
262
+ [source,ruby]
263
+ ----
264
+ [].to_sentence # ""
265
+ ["test"].to_sentence # "test"
266
+ ["a", :b].to_sentence # "a and b"
267
+ [1, "a", :b, 2.0, /\w+/].map(&:inspect).to_sentence # 1, "a", :b, 2.0, and /\w+/
268
+ %w[one two three].to_sentence # "one, two, and three"
269
+ %w[eins zwei drei].to_sentence delimiter: " ", conjunction: "und" # "eins zwei und drei"
270
+ ----
271
+
257
272
  ==== Big Decimal
258
273
 
259
274
  ===== #inspect
@@ -32,6 +32,14 @@ module Refinements
32
32
  def pad(value, max: size) = dup.fill(value, size..(max - 1))
33
33
 
34
34
  def ring(&) = [last, *self, first].each_cons(3, &)
35
+
36
+ def to_sentence delimiter: ", ", conjunction: "and"
37
+ case length
38
+ when (3..) then "#{self[..-2].join delimiter}#{delimiter}#{conjunction} #{last}"
39
+ when 2 then join " #{conjunction} "
40
+ else join
41
+ end
42
+ end
35
43
  end
36
44
  end
37
45
  end
@@ -21,7 +21,8 @@ module Refinements
21
21
  def compress!
22
22
  return self if empty?
23
23
 
24
- compact!.delete_if { |_key, value| value.respond_to?(:empty?) && value.empty? }
24
+ compact!
25
+ delete_if { |_key, value| value.respond_to?(:empty?) && value.empty? }
25
26
  end
26
27
 
27
28
  def deep_merge other
@@ -14,7 +14,7 @@ module Refinements
14
14
  end
15
15
 
16
16
  refine Pathname.singleton_class do
17
- def home = new(ENV["HOME"])
17
+ def home = new ENV.fetch("HOME", "")
18
18
 
19
19
  def make_temp_dir prefix: "temp-", suffix: nil, root: nil
20
20
  if block_given?
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 = "9.3.2"
5
+ spec.version = "9.5.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://www.alchemists.io/projects/refinements"
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
13
13
  "bug_tracker_uri" => "https://github.com/bkuhlmann/refinements/issues",
14
14
  "changelog_uri" => "https://www.alchemists.io/projects/refinements/versions",
15
15
  "documentation_uri" => "https://www.alchemists.io/projects/refinements",
16
+ "funding_uri" => "https://github.com/sponsors/bkuhlmann",
16
17
  "label" => "Refinements",
17
18
  "rubygems_mfa_required" => "true",
18
19
  "source_code_uri" => "https://github.com/bkuhlmann/refinements"
data.tar.gz.sig CHANGED
@@ -1,3 +1 @@
1
- 4��D�
2
- a��
3
- �P ��k�a� �4�7y��˅\_�5)}�+]�/�]r��ΰ�/ǯԵ>Ihٝ����$�̰.�ْ���ʬn��4G��A�m݄aA�Hl�b��$���9�,�EjR���7NV()!dx2#�H��|���)Ҕ؝'Yk�Uɉhn��*
1
+ 7[�%�";\�EP **sO6��Eg���mӛũ�?�����]]���97����ѕh�<?$C؇\�� >���o���b��[��(�/�q�+�M%�O-�/]`��h�(������s� �ɺ�Z֯D��S/�Ҋ�j�x���d��"Ν_7}8�_�������w�,г�G�Y_R�ݼ��C� ��0,' ���F����s�P�� ��´��Z�_�9�v��5�&�6����#,��Ҝ��
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: 9.3.2
4
+ version: 9.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -28,7 +28,7 @@ cert_chain:
28
28
  CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
29
29
  RFE=
30
30
  -----END CERTIFICATE-----
31
- date: 2022-04-09 00:00:00.000000000 Z
31
+ date: 2022-06-25 00:00:00.000000000 Z
32
32
  dependencies: []
33
33
  description:
34
34
  email:
@@ -61,6 +61,7 @@ metadata:
61
61
  bug_tracker_uri: https://github.com/bkuhlmann/refinements/issues
62
62
  changelog_uri: https://www.alchemists.io/projects/refinements/versions
63
63
  documentation_uri: https://www.alchemists.io/projects/refinements
64
+ funding_uri: https://github.com/sponsors/bkuhlmann
64
65
  label: Refinements
65
66
  rubygems_mfa_required: 'true'
66
67
  source_code_uri: https://github.com/bkuhlmann/refinements
@@ -79,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
80
  - !ruby/object:Gem::Version
80
81
  version: '0'
81
82
  requirements: []
82
- rubygems_version: 3.3.11
83
+ rubygems_version: 3.3.16
83
84
  signing_key:
84
85
  specification_version: 4
85
86
  summary: A collection of refinements to core Ruby objects.
metadata.gz.sig CHANGED
Binary file