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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +36 -2
- data/lib/refinements/array.rb +6 -1
- data/lib/refinements/module.rb +12 -0
- data/lib/refinements/struct.rb +6 -1
- data/lib/refinements.rb +1 -0
- data/refinements.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -3
- metadata.gz.sig +2 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56d9d8ea056f8d22d211d5d9ad964b74e5fc86eb4be0b3476a1cd15c0ef74856
|
4
|
+
data.tar.gz: bd3d5e64e0dfd3ae296d81a6b96212390b223f79b91d14fd3af14eab2c2dd867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
|
data/lib/refinements/array.rb
CHANGED
@@ -19,7 +19,12 @@ module Refinements
|
|
19
19
|
|
20
20
|
def excluding(*elements) = self - elements.flatten
|
21
21
|
|
22
|
-
def filter_find(&)
|
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
|
data/lib/refinements/struct.rb
CHANGED
@@ -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)
|
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
data/refinements.gemspec
CHANGED
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.
|
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-
|
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.
|
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
|
-
|
2
|
-
|
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�� ��n�Rw�1�����iD��"⼽Xぶrc+�S���nQ���^��*�\��C|b��Z�|�l��u"�v��'���y;�I���I���j�/H.�g7�k���m���Kw�D����W0g 9�-�@/�C{r����N�V�j�l����d���B��?]�ҴsAh6?��&�,�˽���?bS�ś`u���OXӟ˻�u����_���)�m�Xn1,
|