refinements 12.9.0 → 12.11.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: d69e0e63ab3517d24dcd3bdce7e3e431e01b8d650c8cf2dab0d61eaa3cb062e1
4
+ data.tar.gz: 55f9613cf283a4423fb22008fa8e686d7a2d2c4d9a8d387c64fd1040e850feea
5
5
  SHA512:
6
- metadata.gz: dbe61e5483ff24ffe0d9852e3f1c34e613f53a48f8a96cb15b862bf2528c448df71e9357d2910068b7e41275a916a9169f99e6b5b67c355df73eaf3e6ac2d124
7
- data.tar.gz: 3f77b617a157b3d9be6735a08a9340ddd945642107d5e2728e384f6496197a44e180cfcce8c5738ec5ea509df883fcc5ca3b1261ffaddeaedbcfe0764987d9d0
6
+ metadata.gz: 0d98d59c37417c339097cfceda519c0099a7e4b63ef28966c769865cd64d2a174c60fc5d7f92f602e09c7dd001fd6e1cba6bc24f08bc5c8ace90b1d3e3d395ce
7
+ data.tar.gz: 0a8c378c45fa6a4a20f05a1bfa1786a5840761648b1e9c1f8114e9a837a3398aeac35b47820743366ccf618e3288a863e3b4a290a637e2db3c72454294e6ffeb
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.11.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.11.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-11-09 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.23
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 @@
1
- �0��9�����$.��zY�J�U��� `����NY꿧�y�P��6���b���e�4�-����$� �Wc(������ ��������#=GL U��Tܭ��J��� ���JA�]��6�� ��c�勻Z ���#���F�M���St�����ӊU5��<_��
2
- b��^�-�9��Pea�(�t��K�< ^�fI�'�F�D^�o� ���ϐNh�Di����]���πߢ� ��5Rr�H����DM��큸���jB��ӴҸU�ЅY���u+�� _p@���
3
- ����+(�M8V��'d��� ɋ����>�ow�}xTHc'9��ׇg%��[��Yd2`�>h�i
4
- -yE*���s1z�
1
+ AڦtPefp�j,��>�ӿhR��{ƅb�y׀,˯�;���4�hʥ$Nb�q�r��ܳ8y���%�%�0�鯴NNm�o>\[[>��A�?�G.A������< ?��O�&�y�%a3�F��)��uX_��QȆ�E��ئgѡ$�*�R�K�v��_W��yy��������� R�7\sٗTrK<:����M�:���A�8T�5F�w�3g��4>��`J��URX)��6��WJ����[-�.q�h���Դr$ �Sq+��{%��� ����". �:&a,X���{N�I���¸AVŒ����R�lC��� ��5������&Y�M����e��Ta�C����ad�9������