refinements 12.9.0 → 12.10.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: 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,