refinements 12.9.0 → 12.10.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: 229ada32a4378800013462184db88be59d33109cbbd63c8c6378add52fc7b321
4
- data.tar.gz: 4f0291390f858b45e2066dc9eac5e3f06ceef5c9e1051160aa7c625e734c78c4
3
+ metadata.gz: 56d9d8ea056f8d22d211d5d9ad964b74e5fc86eb4be0b3476a1cd15c0ef74856
4
+ data.tar.gz: bd3d5e64e0dfd3ae296d81a6b96212390b223f79b91d14fd3af14eab2c2dd867
5
5
  SHA512:
6
- metadata.gz: dbe61e5483ff24ffe0d9852e3f1c34e613f53a48f8a96cb15b862bf2528c448df71e9357d2910068b7e41275a916a9169f99e6b5b67c355df73eaf3e6ac2d124
7
- data.tar.gz: 3f77b617a157b3d9be6735a08a9340ddd945642107d5e2728e384f6496197a44e180cfcce8c5738ec5ea509df883fcc5ca3b1261ffaddeaedbcfe0764987d9d0
6
+ metadata.gz: 63f889fedadba076370027afce7f0e176bd7e840d6b470d99043033a39f79277a4aebe7b0573e8d6c367432c59e98cb77b26ee62b5148f420121b632d86f8dfb
7
+ data.tar.gz: 47712bdf7aff52e05671f7fed297bd06f54dfa1e554e529723c3ab932b2204d30630a25906b757769f314c213e004014fc887bcdfd5b6ac36edf1949bd16335d
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -20,6 +20,7 @@ Enhances the following objects:
20
20
  * IO
21
21
  * LogDevice
22
22
  * Logger
23
+ * Module
23
24
  * Object
24
25
  * Pathname
25
26
  * String
@@ -87,6 +88,7 @@ require "refinements/hash"
87
88
  require "refinements/io"
88
89
  require "refinements/log_device"
89
90
  require "refinements/logger"
91
+ require "refinements/module"
90
92
  require "refinements/object"
91
93
  require "refinements/pathname"
92
94
  require "refinements/string"
@@ -111,6 +113,7 @@ class Example
111
113
  using Refinements::IO
112
114
  using Refinements::LogDevice
113
115
  using Refinements::Logger
116
+ using Refinements::Module
114
117
  using Refinements::Object
115
118
  using Refinements::Pathname
116
119
  using Refinements::String
@@ -186,6 +189,8 @@ Removes given array or elements without mutating itself.
186
189
 
187
190
  ===== #filter_find
188
191
 
192
+ ⚠️ _This is deprecated and will be removed in Version 13.0.0._
193
+
189
194
  Answers the first element which evaluates to true from a filtered collection.
190
195
 
191
196
  [source,ruby]
@@ -969,7 +974,8 @@ logger.reread # ""
969
974
 
970
975
  Allows you to log _any_ message which is identical in behavior and functionality to the `Logger#unknown` method only this requires less typing and better matches the terminology used by the `#unknown` method.
971
976
 
972
- ``` ruby
977
+ [source,ruby]
978
+ ----
973
979
  logger = Logger.new STDOUT
974
980
 
975
981
  logger.any "Test."
@@ -977,7 +983,33 @@ logger.any "Test."
977
983
 
978
984
  logger.any { "Test." }
979
985
  A, [2000-01-10T09:00:00.330719 #44925] ANY -- : Test.
980
- ```
986
+ ----
987
+
988
+ ==== Module
989
+
990
+ ===== #pseudonym
991
+
992
+ Allows you to set a temporary name for your anonymous `Module` (or `Class` since `Class` inherits from `Module`) with a better default than what `+#set_temporary_name+` provides.
993
+
994
+ [source,ruby]
995
+ ----
996
+ Module.new.pseudonym "demo" # demo-44600
997
+ Module.new.pseudonym "demo", delimiter: "_" # demo_60900
998
+ Module.new.pseudonym "demo", nil # demo-
999
+ Module.new.pseudonym "demo", nil, delimiter: nil # demo
1000
+ ----
1001
+
1002
+ The same applies for anonymous classes since classes inherit from modules:
1003
+
1004
+ [source,ruby]
1005
+ ----
1006
+ Class.new.pseudonym "demo" # demo-44600 < Object
1007
+ Class.new.pseudonym "demo", delimiter: "_" # demo_60900 < Object
1008
+ Class.new.pseudonym "demo", nil # demo- < Object
1009
+ Class.new.pseudonym "demo", nil, delimiter: nil # demo < Object
1010
+ ----
1011
+
1012
+ 💡 While convenient, if you find yourself nullifying the suffix and/or delimiter, you're better off using `+#set_temporary_name+`.
981
1013
 
982
1014
  ==== Object
983
1015
 
@@ -1598,6 +1630,8 @@ io.to_str # "One, Two."
1598
1630
 
1599
1631
  ===== .with_positions
1600
1632
 
1633
+ ⚠️ _This is deprecated and will be removed in Version 13.0.0._
1634
+
1601
1635
  Answers a struct instance with given positional arguments regardless of
1602
1636
  whether the struct was constructed with positional or keyword arguments.
1603
1637
 
@@ -19,7 +19,12 @@ module Refinements
19
19
 
20
20
  def excluding(*elements) = self - elements.flatten
21
21
 
22
- def filter_find(&) = block_given? ? lazy.map(&).find(&:itself) : lazy
22
+ def filter_find(&)
23
+ warn "`#{self.class}##{__method__}` is deprecated and will be removed in Version 13.0.0.",
24
+ category: :deprecated
25
+
26
+ block_given? ? lazy.map(&).find(&:itself) : lazy
27
+ end
23
28
 
24
29
  def including(*elements) = self + elements.flatten
25
30
 
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refinements
4
+ # Provides additional enhancements to the Symbol primitive.
5
+ module Module
6
+ refine ::Module do
7
+ def pseudonym prefix, suffix = object_id, delimiter: "-"
8
+ set_temporary_name "#{prefix}#{delimiter}#{suffix}"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -6,7 +6,12 @@ module Refinements
6
6
  # Provides additional enhancements to the Struct primitive.
7
7
  module Struct
8
8
  refine ::Struct.singleton_class do
9
- def with_positions(*values) = keyword_init? ? new(**members.zip(values).to_h) : new(*values)
9
+ def with_positions(*values)
10
+ warn "`#{self.class}##{__method__}` is deprecated and will be removed in Version 13.0.0.",
11
+ category: :deprecated
12
+
13
+ keyword_init? ? new(**members.zip(values).to_h) : new(*values)
14
+ end
10
15
  end
11
16
 
12
17
  refine ::Struct do
data/lib/refinements.rb CHANGED
@@ -8,6 +8,7 @@ require "refinements/hash"
8
8
  require "refinements/io"
9
9
  require "refinements/log_device"
10
10
  require "refinements/logger"
11
+ require "refinements/module"
11
12
  require "refinements/object"
12
13
  require "refinements/pathname"
13
14
  require "refinements/string"
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.9.0"
5
+ spec.version = "12.10.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.9.0
4
+ version: 12.10.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-10-01 00:00:00.000000000 Z
38
+ date: 2024-10-22 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email:
@@ -57,6 +57,7 @@ files:
57
57
  - lib/refinements/io.rb
58
58
  - lib/refinements/log_device.rb
59
59
  - lib/refinements/logger.rb
60
+ - lib/refinements/module.rb
60
61
  - lib/refinements/object.rb
61
62
  - lib/refinements/pathname.rb
62
63
  - lib/refinements/shared/diff.rb
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
97
  - !ruby/object:Gem::Version
97
98
  version: '0'
98
99
  requirements: []
99
- rubygems_version: 3.5.20
100
+ rubygems_version: 3.5.22
100
101
  signing_key:
101
102
  specification_version: 4
102
103
  summary: A collection of core object refinements.
metadata.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- �0��9�����$.��zY�J�U��� `����N�Y꿧�y�P��6���b���e�4�-����$� �Wc(������ ��������#=GL U��Tܭ��J��� ���JA�]��6�� ��c�勻Z ���#���FM���S�t�����ӊU5��<_��
2
- b��^�-�9��Pea(t��K�< ^�fI�'�F�D^�o� ���ϐNhDi����]���πߢ� ��5RrH����DM��큸���jB��ӴҸU�ЅY���u+�� _p@���
3
- ����+(�M8V��'d��� ɋ����>�ow�}xTHc'9��ׇg%��[��Yd2`�>h�i
4
- -yE*���s1z�
1
+ >A��T������}���_��/؄�7n��("s��h^�@p2��|o0N�E{_�wfJ����6����ّ�U,���c�s$��`8���h
2
+ �v%&��։{��K��Y�� ��nRw1�����iD��"⼽Xぶrc+�S���nQ���^�� *�\��C|b��Z�|�l��u"v��'���y;�I���I���j�/H.�g7k ��m���Kw�D����W0g 9�-�@/�C {r����NV�j�l����d���B��?]�ҴsAh6?��&�,�˽���?bS�ś`u���OXӟ˻�u����_��� )m�Xn1,