refinements 12.10.0 → 13.0.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 +3 -203
- data/lib/refinements/array.rb +0 -7
- data/lib/refinements/hash.rb +2 -2
- data/lib/refinements/io.rb +1 -1
- data/lib/refinements/pathname.rb +1 -19
- data/lib/refinements/struct.rb +0 -22
- data/lib/refinements.rb +0 -2
- data/refinements.gemspec +2 -2
- data.tar.gz.sig +0 -0
- metadata +4 -13
- metadata.gz.sig +0 -0
- data/lib/refinements/log_device.rb +0 -21
- data/lib/refinements/logger.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fceef99a782c47ebc49c3838188470d7733a92df5402f94e4acb343963a3af88
|
4
|
+
data.tar.gz: 04b4536366245c5a31710d35830f8144271fdb369cd1a69d0a1ca0b6d609b95d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0ef79f4049cfe582f4516111c70f0568ade844a659c13e5e7d65b87651d14a8d938de3fcae525c274266f9bb66021babdc455f02f3cd9367f90dcd5b33f69ba
|
7
|
+
data.tar.gz: 50acd2a2dd7ff2a280cd978f2b37ae7edd71b54e41b0c4e6bdae31b955148daee2fd9980f8aefa21d61d47bcfa6e8ebe1df46281808a333482bdedd480f0d8af
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -18,8 +18,6 @@ Enhances the following objects:
|
|
18
18
|
* DateTime
|
19
19
|
* Hash
|
20
20
|
* IO
|
21
|
-
* LogDevice
|
22
|
-
* Logger
|
23
21
|
* Module
|
24
22
|
* Object
|
25
23
|
* Pathname
|
@@ -86,8 +84,6 @@ require "refinements/data"
|
|
86
84
|
require "refinements/date_time"
|
87
85
|
require "refinements/hash"
|
88
86
|
require "refinements/io"
|
89
|
-
require "refinements/log_device"
|
90
|
-
require "refinements/logger"
|
91
87
|
require "refinements/module"
|
92
88
|
require "refinements/object"
|
93
89
|
require "refinements/pathname"
|
@@ -111,8 +107,6 @@ class Example
|
|
111
107
|
using Refinements::DateTime
|
112
108
|
using Refinements::Hash
|
113
109
|
using Refinements::IO
|
114
|
-
using Refinements::LogDevice
|
115
|
-
using Refinements::Logger
|
116
110
|
using Refinements::Module
|
117
111
|
using Refinements::Object
|
118
112
|
using Refinements::Pathname
|
@@ -187,25 +181,6 @@ Removes given array or elements without mutating itself.
|
|
187
181
|
[1, 2, 3, 4, 5].excluding 4, 5 # [1, 2, 3]
|
188
182
|
----
|
189
183
|
|
190
|
-
===== #filter_find
|
191
|
-
|
192
|
-
⚠️ _This is deprecated and will be removed in Version 13.0.0._
|
193
|
-
|
194
|
-
Answers the first element which evaluates to true from a filtered collection.
|
195
|
-
|
196
|
-
[source,ruby]
|
197
|
-
----
|
198
|
-
handlers = [
|
199
|
-
-> object { object if object == :b },
|
200
|
-
proc { false },
|
201
|
-
-> object { object if object == :a }
|
202
|
-
]
|
203
|
-
|
204
|
-
handlers.filter_find # Enumerator::Lazy
|
205
|
-
handlers.filter_find { |handler| handler.call :a } # :a
|
206
|
-
handlers.filter_find { |handler| handler.call :x } # nil
|
207
|
-
----
|
208
|
-
|
209
184
|
===== #including
|
210
185
|
|
211
186
|
Adds given array or elements without mutating itself.
|
@@ -922,69 +897,6 @@ io.squelch { io.write "Test" } # "#<IO:fd 20>"
|
|
922
897
|
io.reread # ""
|
923
898
|
----
|
924
899
|
|
925
|
-
==== LogDevice
|
926
|
-
|
927
|
-
===== #reread
|
928
|
-
|
929
|
-
Answers previously written content by rewinding to beginning of device.
|
930
|
-
|
931
|
-
[source,ruby]
|
932
|
-
----
|
933
|
-
# With File.
|
934
|
-
device = Logger::LogDevice.new "test.log"
|
935
|
-
device.write "Test."
|
936
|
-
device.reread # "Test."
|
937
|
-
|
938
|
-
# With StringIO.
|
939
|
-
device = Logger::LogDevice.new StringIO.new
|
940
|
-
device.write "Test."
|
941
|
-
device.reread # "Test."
|
942
|
-
|
943
|
-
# With STDOUT.
|
944
|
-
device = Logger::LogDevice.new $stdout
|
945
|
-
device.write "Test."
|
946
|
-
device.reread # ""
|
947
|
-
----
|
948
|
-
|
949
|
-
==== Logger
|
950
|
-
|
951
|
-
===== #reread
|
952
|
-
|
953
|
-
Answers previously written content by rewinding to beginning of log.
|
954
|
-
|
955
|
-
[source,ruby]
|
956
|
-
----
|
957
|
-
# With File.
|
958
|
-
logger = Logger.new "test.log"
|
959
|
-
logger.write "Test."
|
960
|
-
logger.reread # "Test."
|
961
|
-
|
962
|
-
# With StringIO.
|
963
|
-
logger = Logger.new StringIO.new
|
964
|
-
logger.write "Test."
|
965
|
-
logger.reread # "Test."
|
966
|
-
|
967
|
-
# With STDOUT.
|
968
|
-
logger = Logger.new $stdout
|
969
|
-
logger.write "Test."
|
970
|
-
logger.reread # ""
|
971
|
-
----
|
972
|
-
|
973
|
-
===== #any
|
974
|
-
|
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.
|
976
|
-
|
977
|
-
[source,ruby]
|
978
|
-
----
|
979
|
-
logger = Logger.new STDOUT
|
980
|
-
|
981
|
-
logger.any "Test."
|
982
|
-
# A, [2000-01-10T09:00:00.847428 #44925] ANY -- : Test.
|
983
|
-
|
984
|
-
logger.any { "Test." }
|
985
|
-
A, [2000-01-10T09:00:00.330719 #44925] ANY -- : Test.
|
986
|
-
----
|
987
|
-
|
988
900
|
==== Module
|
989
901
|
|
990
902
|
===== #pseudonym
|
@@ -1083,29 +995,6 @@ Answers user home directory.
|
|
1083
995
|
Pathname.home # Pathname "/Users/demo"
|
1084
996
|
----
|
1085
997
|
|
1086
|
-
===== .make_temp_dir
|
1087
|
-
|
1088
|
-
Wraps `Dir.mktmpdir` with the following behavior (see
|
1089
|
-
link:https://rubyapi.org/o/Dir.mktmpdir#method-c-mktmpdir[Dir.mktmpdir] for details):
|
1090
|
-
|
1091
|
-
* *Without Block* - Answers a newly created Pathname instance which is not automatically cleaned up.
|
1092
|
-
* *With Block* Yields a Pathname instance, answers result of given block, and automatically cleans
|
1093
|
-
up temporary directory after block exits.
|
1094
|
-
|
1095
|
-
The following examples use truncated temporary directories for illustration purposes only. In
|
1096
|
-
reality, these paths will be longer depending on which operating system you are using.
|
1097
|
-
|
1098
|
-
[source,ruby]
|
1099
|
-
----
|
1100
|
-
Pathname.make_temp_dir # Pathname:/var/folders/T/temp-20200101-16940-r8
|
1101
|
-
Pathname.make_temp_dir prefix: "prefix-" # Pathname:/var/folders/T/prefix-20200101-16940-r8
|
1102
|
-
Pathname.make_temp_dir suffix: "-suffix" # Pathname:/var/folders/T/temp-20200101-16940-r8-suffix
|
1103
|
-
Pathname.make_temp_dir prefix: "prefix-", suffix: "-suffix" # Pathname:/var/folders/T/prefix-20200101-16940-r8-suffix
|
1104
|
-
Pathname.make_temp_dir root: "/example" # Pathname:/example/temp-20200101-16940-r8
|
1105
|
-
Pathname.make_temp_dir { "I am a block result" } # "I am a block result"
|
1106
|
-
Pathname.make_temp_dir { |path| path.join "sub_dir" } # Pathname:/var/folders/T/temp-20200101-16940-r8/sub_dir
|
1107
|
-
----
|
1108
|
-
|
1109
998
|
===== .require_tree
|
1110
999
|
|
1111
1000
|
Requires all Ruby files in given root path and corresponding nested tree structure. All files are sorted before being required to ensure consistent behavior. Example:
|
@@ -1158,6 +1047,8 @@ custom.change_dir { |path| path } # Pathname "$HOME/demo/test"
|
|
1158
1047
|
Pathname.pwd # "$HOME/demo" (Present Working Directory)
|
1159
1048
|
----
|
1160
1049
|
|
1050
|
+
⚠️ This method is _not thread safe_ and suffers the same issues as found with native `Dir.chdir` functionality because the underlying native call is global. Use with care.
|
1051
|
+
|
1161
1052
|
===== #copy
|
1162
1053
|
|
1163
1054
|
Copies file from current location to new location while answering itself so it can be chained.
|
@@ -1231,7 +1122,7 @@ of contents. If a directory or file doesn't exist, it will be created.
|
|
1231
1122
|
|
1232
1123
|
[source,ruby]
|
1233
1124
|
----
|
1234
|
-
directory = Pathname("test").
|
1125
|
+
directory = Pathname("test").mkpath
|
1235
1126
|
file = directory.join("test.txt").write("example")
|
1236
1127
|
|
1237
1128
|
file.empty.read # ""
|
@@ -1293,17 +1184,6 @@ Pathname("/one").make_dir # Pathname("/one")
|
|
1293
1184
|
Pathname("/one").make_dir.make_dir # Pathname("/one")
|
1294
1185
|
----
|
1295
1186
|
|
1296
|
-
===== #make_path
|
1297
|
-
|
1298
|
-
Provides alternative `#mkpath` behavior by always answering itself (even when full path exists) and
|
1299
|
-
not throwing errors when directory does exist in order to ensure the pathname can be chained.
|
1300
|
-
|
1301
|
-
[source,ruby]
|
1302
|
-
----
|
1303
|
-
Pathname("/one/two/three").make_path # Pathname("/one/two/three")
|
1304
|
-
Pathname("/one/two/three").make_path.make_path # Pathname("/one/two/three")
|
1305
|
-
----
|
1306
|
-
|
1307
1187
|
===== #name
|
1308
1188
|
|
1309
1189
|
Answers file name without extension.
|
@@ -1347,27 +1227,6 @@ Pathname("/test").remove_dir # Pathname("/test")
|
|
1347
1227
|
Pathname("/test").remove_dir.remove_dir # Pathname("/test")
|
1348
1228
|
----
|
1349
1229
|
|
1350
|
-
===== #remove_tree
|
1351
|
-
|
1352
|
-
Provides alternative `#rmtree` behavior by always answering itself (even when full path exists) and
|
1353
|
-
not throwing errors when directory does exist in order to ensure the pathname can be chained.
|
1354
|
-
|
1355
|
-
[source,ruby]
|
1356
|
-
----
|
1357
|
-
parent_path = Pathname "/one"
|
1358
|
-
child_path = parent_path.join "two"
|
1359
|
-
|
1360
|
-
child_path.make_path
|
1361
|
-
parent_path.remove_tree # Pathname "/one"
|
1362
|
-
child_path.exist? # false
|
1363
|
-
parent_path.exist? # false
|
1364
|
-
|
1365
|
-
child_path.make_path
|
1366
|
-
child_path.remove_tree # Pathname "/one/two"
|
1367
|
-
child_path.exist? # false
|
1368
|
-
parent_path.exist? # true
|
1369
|
-
----
|
1370
|
-
|
1371
1230
|
===== #rewrite
|
1372
1231
|
|
1373
1232
|
When given a block, it provides the contents of the recently read file for manipulation and
|
@@ -1628,24 +1487,6 @@ io.to_str # "One, Two."
|
|
1628
1487
|
|
1629
1488
|
==== Struct
|
1630
1489
|
|
1631
|
-
===== .with_positions
|
1632
|
-
|
1633
|
-
⚠️ _This is deprecated and will be removed in Version 13.0.0._
|
1634
|
-
|
1635
|
-
Answers a struct instance with given positional arguments regardless of
|
1636
|
-
whether the struct was constructed with positional or keyword arguments.
|
1637
|
-
|
1638
|
-
[source,ruby]
|
1639
|
-
----
|
1640
|
-
Example = Struct.new :a, :b, :c
|
1641
|
-
Example.with_positions 1, 2, 3 # #<struct a=1, b=2, c=3>
|
1642
|
-
Example.with_positions 1 # #<struct a=1, b=nil, c=nil>
|
1643
|
-
|
1644
|
-
Example = Struct.new :a, :b, :c, keyword_init: true
|
1645
|
-
Example.with_positions 1, 2, 3 # #<struct a=1, b=2, c=3>
|
1646
|
-
Example.with_positions 1 # #<struct a=1, b=nil, c=nil>
|
1647
|
-
----
|
1648
|
-
|
1649
1490
|
===== #diff
|
1650
1491
|
|
1651
1492
|
Allows you to obtain the differences between two objects.
|
@@ -1700,47 +1541,6 @@ example.merge! a: 10, b: 20, c: 30 # #<struct Struct::Example a=10, b=20, c=30>
|
|
1700
1541
|
example # #<struct Struct::Example a=10, b=20, c=30>
|
1701
1542
|
----
|
1702
1543
|
|
1703
|
-
===== #revalue
|
1704
|
-
|
1705
|
-
Transforms values without mutating itself. An optional hash can be supplied to target specific
|
1706
|
-
attributes. In the event that a block isn't supplied, the struct will answer itself since there is
|
1707
|
-
nothing to operate on. Works regardless of whether the struct is constructed with
|
1708
|
-
positional or keyword arguments.
|
1709
|
-
|
1710
|
-
[source,ruby]
|
1711
|
-
----
|
1712
|
-
example = Struct.new("Example", :a, :b, :c).new 1, 2, 3
|
1713
|
-
|
1714
|
-
example.revalue { |value| value * 2 } # #<struct Struct::Example a=2, b=4, c=6>
|
1715
|
-
example.revalue(c: 2) { |previous, current| previous + current } # #<struct Struct::Example a=1, b=2, c=5>
|
1716
|
-
example.revalue c: 2 # #<struct Struct::Example a=1, b=2, c=3>
|
1717
|
-
example.revalue # #<struct Struct::Example a=1, b=2, c=3>
|
1718
|
-
example # #<struct Struct::Example a=1, b=2, c=3>
|
1719
|
-
----
|
1720
|
-
|
1721
|
-
===== #revalue!
|
1722
|
-
|
1723
|
-
Transforms values while mutating itself. An optional hash can be supplied to target specific
|
1724
|
-
attributes. In the event that a block isn't supplied, the struct will answer itself since there is
|
1725
|
-
nothing to operate on. Works regardless of whether the struct is constructed with
|
1726
|
-
positional or keyword arguments.
|
1727
|
-
|
1728
|
-
[source,ruby]
|
1729
|
-
----
|
1730
|
-
one = Struct.new("One", :a, :b, :c).new 1, 2, 3
|
1731
|
-
one.revalue! { |value| value * 2 } # #<struct Struct::One a=2, b=4, c=6>
|
1732
|
-
one # #<struct Struct::One a=2, b=4, c=6>
|
1733
|
-
|
1734
|
-
two = Struct.new("Two", :a, :b, :c).new 1, 2, 3
|
1735
|
-
two.revalue!(c: 2) { |previous, current| previous + current } # #<struct Struct::Two a=1, b=2, c=5>
|
1736
|
-
two # #<struct Struct::Two a=1, b=2, c=5>
|
1737
|
-
|
1738
|
-
three = Struct.new("Three", :a, :b, :c).new 1, 2, 3
|
1739
|
-
three.revalue! c: 2 # #<struct Struct::Three a=1, b=2, c=3>
|
1740
|
-
three.revalue! # #<struct Struct::Three a=1, b=2, c=3>
|
1741
|
-
three # #<struct Struct::Three a=1, b=2, c=3>
|
1742
|
-
----
|
1743
|
-
|
1744
1544
|
===== #transmute
|
1745
1545
|
|
1746
1546
|
Transmutes given enumerable by using the foreign key map and merging those key values into the
|
data/lib/refinements/array.rb
CHANGED
@@ -19,13 +19,6 @@ module Refinements
|
|
19
19
|
|
20
20
|
def excluding(*elements) = self - elements.flatten
|
21
21
|
|
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
|
28
|
-
|
29
22
|
def including(*elements) = self + elements.flatten
|
30
23
|
|
31
24
|
def intersperse(*elements) = product([elements]).tap(&:pop).flatten.push(last)
|
data/lib/refinements/hash.rb
CHANGED
@@ -88,8 +88,8 @@ module Refinements
|
|
88
88
|
|
89
89
|
def transform_with(**) = dup.transform_with!(**)
|
90
90
|
|
91
|
-
def transform_with!(**
|
92
|
-
|
91
|
+
def transform_with!(**mutations)
|
92
|
+
mutations.each { |key, function| transform_value! key, &function }
|
93
93
|
self
|
94
94
|
end
|
95
95
|
|
data/lib/refinements/io.rb
CHANGED
data/lib/refinements/pathname.rb
CHANGED
@@ -16,14 +16,6 @@ module Refinements
|
|
16
16
|
refine ::Pathname.singleton_class do
|
17
17
|
def home = new ENV.fetch("HOME", "")
|
18
18
|
|
19
|
-
def make_temp_dir prefix: "temp-", suffix: nil, root: nil
|
20
|
-
if block_given?
|
21
|
-
Dir.mktmpdir([prefix, suffix], root) { |path| yield new(path) }
|
22
|
-
else
|
23
|
-
new Dir.mktmpdir([prefix, suffix], root)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
19
|
def require_tree(root) = new(root).files("**/*.rb").each { |path| require path.to_s }
|
28
20
|
|
29
21
|
def root = new(File::SEPARATOR)
|
@@ -56,7 +48,7 @@ module Refinements
|
|
56
48
|
glob(pattern, flag).select(&:directory?)
|
57
49
|
end
|
58
50
|
|
59
|
-
def empty = file? ? (truncate(0) and self) :
|
51
|
+
def empty = file? ? (truncate(0) and self) : rmtree.make_dir
|
60
52
|
|
61
53
|
def extensions = basename.to_s.split(/(?=\.)+/).tap(&:shift)
|
62
54
|
|
@@ -71,11 +63,6 @@ module Refinements
|
|
71
63
|
|
72
64
|
def make_dir = exist? ? self : (mkdir and self)
|
73
65
|
|
74
|
-
def make_path
|
75
|
-
mkpath
|
76
|
-
self
|
77
|
-
end
|
78
|
-
|
79
66
|
def name = basename extname
|
80
67
|
|
81
68
|
def puts(content) = write "#{content}\n"
|
@@ -84,11 +71,6 @@ module Refinements
|
|
84
71
|
|
85
72
|
def remove_dir = exist? ? (rmdir and self) : self
|
86
73
|
|
87
|
-
def remove_tree
|
88
|
-
rmtree if exist?
|
89
|
-
self
|
90
|
-
end
|
91
|
-
|
92
74
|
def rewrite = read.then { |content| write yield(content) if block_given? }
|
93
75
|
|
94
76
|
def touch at = Time.now
|
data/lib/refinements/struct.rb
CHANGED
@@ -5,15 +5,6 @@ require "refinements/shared/diff"
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the Struct primitive.
|
7
7
|
module Struct
|
8
|
-
refine ::Struct.singleton_class do
|
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
|
15
|
-
end
|
16
|
-
|
17
8
|
refine ::Struct do
|
18
9
|
import_methods Shared::Diff
|
19
10
|
|
@@ -24,19 +15,6 @@ module Refinements
|
|
24
15
|
self
|
25
16
|
end
|
26
17
|
|
27
|
-
def revalue attributes = each_pair
|
28
|
-
return self unless block_given?
|
29
|
-
|
30
|
-
dup.tap { |copy| attributes.each { |key, value| copy[key] = yield self[key], value } }
|
31
|
-
end
|
32
|
-
|
33
|
-
def revalue! attributes = each_pair
|
34
|
-
return self unless block_given?
|
35
|
-
|
36
|
-
attributes.each { |key, value| self[key] = yield self[key], value }
|
37
|
-
self
|
38
|
-
end
|
39
|
-
|
40
18
|
def transmute(...) = dup.transmute!(...)
|
41
19
|
|
42
20
|
def transmute! object, **key_map
|
data/lib/refinements.rb
CHANGED
@@ -6,8 +6,6 @@ require "refinements/data"
|
|
6
6
|
require "refinements/date_time"
|
7
7
|
require "refinements/hash"
|
8
8
|
require "refinements/io"
|
9
|
-
require "refinements/log_device"
|
10
|
-
require "refinements/logger"
|
11
9
|
require "refinements/module"
|
12
10
|
require "refinements/object"
|
13
11
|
require "refinements/pathname"
|
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 = "
|
5
|
+
spec.version = "13.0.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://alchemists.io/projects/refinements"
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.signing_key = Gem.default_key_path
|
23
23
|
spec.cert_chain = [Gem.default_cert_path]
|
24
24
|
|
25
|
-
spec.required_ruby_version = "
|
25
|
+
spec.required_ruby_version = "~> 3.4"
|
26
26
|
|
27
27
|
spec.files = Dir["*.gemspec", "lib/**/*"]
|
28
28
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 13.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain:
|
11
10
|
- |
|
@@ -35,9 +34,8 @@ cert_chain:
|
|
35
34
|
3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
|
36
35
|
gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
|
37
36
|
-----END CERTIFICATE-----
|
38
|
-
date: 2024-
|
37
|
+
date: 2024-12-27 00:00:00.000000000 Z
|
39
38
|
dependencies: []
|
40
|
-
description:
|
41
39
|
email:
|
42
40
|
- brooke@alchemists.io
|
43
41
|
executables: []
|
@@ -55,8 +53,6 @@ files:
|
|
55
53
|
- lib/refinements/date_time.rb
|
56
54
|
- lib/refinements/hash.rb
|
57
55
|
- lib/refinements/io.rb
|
58
|
-
- lib/refinements/log_device.rb
|
59
|
-
- lib/refinements/logger.rb
|
60
56
|
- lib/refinements/module.rb
|
61
57
|
- lib/refinements/object.rb
|
62
58
|
- lib/refinements/pathname.rb
|
@@ -79,16 +75,12 @@ metadata:
|
|
79
75
|
label: Refinements
|
80
76
|
rubygems_mfa_required: 'true'
|
81
77
|
source_code_uri: https://github.com/bkuhlmann/refinements
|
82
|
-
post_install_message:
|
83
78
|
rdoc_options: []
|
84
79
|
require_paths:
|
85
80
|
- lib
|
86
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
82
|
requirements:
|
88
|
-
- - "
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '3.3'
|
91
|
-
- - "<="
|
83
|
+
- - "~>"
|
92
84
|
- !ruby/object:Gem::Version
|
93
85
|
version: '3.4'
|
94
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -97,8 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
89
|
- !ruby/object:Gem::Version
|
98
90
|
version: '0'
|
99
91
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
101
|
-
signing_key:
|
92
|
+
rubygems_version: 3.6.2
|
102
93
|
specification_version: 4
|
103
94
|
summary: A collection of core object refinements.
|
104
95
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "logger"
|
4
|
-
require "refinements/string_io"
|
5
|
-
|
6
|
-
module Refinements
|
7
|
-
# Provides additional enhancements to a log device.
|
8
|
-
module LogDevice
|
9
|
-
using StringIO
|
10
|
-
|
11
|
-
refine ::Logger::LogDevice do
|
12
|
-
def reread
|
13
|
-
case dev
|
14
|
-
when ::File then dev.class.new(dev).read
|
15
|
-
when ::StringIO then dev.reread
|
16
|
-
else ""
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/lib/refinements/logger.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "refinements/log_device"
|
4
|
-
|
5
|
-
module Refinements
|
6
|
-
# Provides additional enhancements to a logger.
|
7
|
-
module Logger
|
8
|
-
using LogDevice
|
9
|
-
|
10
|
-
refine ::Logger do
|
11
|
-
def reread = @logdev.reread
|
12
|
-
|
13
|
-
alias_method :any, :unknown
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|