refinements 12.10.0 → 13.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|