refinements 11.1.3 → 12.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 +61 -51
- data/lib/refinements/{arrays.rb → array.rb} +3 -3
- data/lib/refinements/{date_times.rb → date_time.rb} +2 -2
- data/lib/refinements/{hashes.rb → hash.rb} +5 -5
- data/lib/refinements/{ios.rb → io.rb} +3 -3
- data/lib/refinements/{log_devices.rb → log_device.rb} +6 -6
- data/lib/refinements/{loggers.rb → logger.rb} +4 -4
- data/lib/refinements/{pathnames.rb → pathname.rb} +3 -3
- data/lib/refinements/{strings.rb → string.rb} +13 -5
- data/lib/refinements/{string_ios.rb → string_io.rb} +2 -2
- data/lib/refinements/{structs.rb → struct.rb} +3 -3
- data/lib/refinements/{symbols.rb → symbol.rb} +2 -2
- data/lib/refinements.rb +11 -12
- data/refinements.gemspec +2 -2
- data.tar.gz.sig +0 -0
- metadata +14 -18
- metadata.gz.sig +0 -0
- data/lib/refinements/big_decimals.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a497496f7842bab471ed5d7703054c050aad5d62dcdc317678d4d40d871dbefe
|
4
|
+
data.tar.gz: 117975da807b741ff3b9dff8d585dbba8d00243af81f7c8daf964cda0de6b7b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf13a20ac2e6f6849ab0ae65929f0574c6569cf5840e8aada271f63749326c319531c1e6a572b9bad2526cfb5280df48d9f1ee638a4cff87105e2429edad2d23
|
7
|
+
data.tar.gz: 6b07855b0b39fe4d45509e9cbc11c8e7392a686cd485b73cab3c6134ad6d709f3355cb0b3f18bff81becbfb87058c8f3e0e872ad7db69a657a1c25e8d1390533
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -13,7 +13,6 @@ toc::[]
|
|
13
13
|
Enhances the following objects:
|
14
14
|
|
15
15
|
* Array
|
16
|
-
* BigDecimal
|
17
16
|
* Data
|
18
17
|
* DateTime
|
19
18
|
* Hash
|
@@ -23,7 +22,7 @@ Enhances the following objects:
|
|
23
22
|
* Pathname
|
24
23
|
* String
|
25
24
|
* StringIO
|
26
|
-
*
|
25
|
+
* Struct
|
27
26
|
|
28
27
|
== Requirements
|
29
28
|
|
@@ -77,19 +76,18 @@ gem "refinements", require: false
|
|
77
76
|
|
78
77
|
[source,ruby]
|
79
78
|
----
|
80
|
-
require "refinements/
|
81
|
-
require "refinements/big_decimals"
|
79
|
+
require "refinements/array"
|
82
80
|
require "refinements/data"
|
83
|
-
require "refinements/
|
84
|
-
require "refinements/
|
85
|
-
require "refinements/
|
86
|
-
require "refinements/
|
87
|
-
require "refinements/
|
88
|
-
require "refinements/
|
89
|
-
require "refinements/
|
90
|
-
require "refinements/
|
91
|
-
require "refinements/
|
92
|
-
require "refinements/
|
81
|
+
require "refinements/date_time"
|
82
|
+
require "refinements/hash"
|
83
|
+
require "refinements/io"
|
84
|
+
require "refinements/log_device"
|
85
|
+
require "refinements/logger"
|
86
|
+
require "refinements/pathname"
|
87
|
+
require "refinements/string"
|
88
|
+
require "refinements/string_io"
|
89
|
+
require "refinements/struct"
|
90
|
+
require "refinements/symbol"
|
93
91
|
----
|
94
92
|
|
95
93
|
=== Using
|
@@ -100,19 +98,18 @@ refinement(s):
|
|
100
98
|
[source,ruby]
|
101
99
|
----
|
102
100
|
class Example
|
103
|
-
using Refinements::
|
104
|
-
using Refinements::BigDecimals
|
101
|
+
using Refinements::Array
|
105
102
|
using Refinements::Data
|
106
|
-
using Refinements::
|
107
|
-
using Refinements::
|
108
|
-
using Refinements::
|
109
|
-
using Refinements::
|
110
|
-
using Refinements::
|
111
|
-
using Refinements::
|
112
|
-
using Refinements::
|
113
|
-
using Refinements::
|
114
|
-
using Refinements::
|
115
|
-
using Refinements::
|
103
|
+
using Refinements::DateTime
|
104
|
+
using Refinements::Hash
|
105
|
+
using Refinements::IO
|
106
|
+
using Refinements::LogDevice
|
107
|
+
using Refinements::Logger
|
108
|
+
using Refinements::Pathname
|
109
|
+
using Refinements::String
|
110
|
+
using Refinements::StringIO
|
111
|
+
using Refinements::Struct
|
112
|
+
using Refinements::Symbol
|
116
113
|
end
|
117
114
|
----
|
118
115
|
|
@@ -280,9 +277,9 @@ needs to be a specific size with padded values.
|
|
280
277
|
|
281
278
|
[source,ruby]
|
282
279
|
----
|
283
|
-
[
|
284
|
-
[
|
285
|
-
[
|
280
|
+
["a"].pad 0 # ["a"]
|
281
|
+
["a"].pad "-", 3 # ["a", "-", "-"]
|
282
|
+
%w[a b].pad "-", 3 # ["a", "b", "-"]
|
286
283
|
----
|
287
284
|
|
288
285
|
===== #pick
|
@@ -393,17 +390,6 @@ Builds upon and enhances `#to_sentence` further by answering a sentence which al
|
|
393
390
|
%w[eins zwei drei].to_usage "und", delimiter: " " # "\"eins\" \"zwei\" und \"drei\""
|
394
391
|
----
|
395
392
|
|
396
|
-
==== Big Decimal
|
397
|
-
|
398
|
-
===== #inspect
|
399
|
-
|
400
|
-
Allows one to inspect a big decimal with numeric representation.
|
401
|
-
|
402
|
-
[source,ruby]
|
403
|
-
----
|
404
|
-
BigDecimal.new("5.0E-10").inspect # "#<BigDecimal:3fd3d458fe84 0.0000000005>"
|
405
|
-
----
|
406
|
-
|
407
393
|
==== Data
|
408
394
|
|
409
395
|
===== #diff
|
@@ -1288,11 +1274,11 @@ well in other languages.
|
|
1288
1274
|
[source,ruby]
|
1289
1275
|
----
|
1290
1276
|
"apple".pluralize "s" # apples
|
1291
|
-
"apple".pluralize "s",
|
1292
|
-
"apple".pluralize "s",
|
1293
|
-
"apple".pluralize "s",
|
1294
|
-
"apple".pluralize "s",
|
1295
|
-
"apple".pluralize "s",
|
1277
|
+
"apple".pluralize "s", 0 # apples
|
1278
|
+
"apple".pluralize "s", 1 # apple
|
1279
|
+
"apple".pluralize "s", -1 # apple
|
1280
|
+
"apple".pluralize "s", 2 # apples
|
1281
|
+
"apple".pluralize "s", -2 # apples
|
1296
1282
|
"cactus".pluralize "i", replace: "us" # cacti
|
1297
1283
|
"cul-de-sac".pluralize "ls", replace: "l" # culs-de-sac
|
1298
1284
|
----
|
@@ -1308,11 +1294,11 @@ well in other languages.
|
|
1308
1294
|
[source,ruby]
|
1309
1295
|
----
|
1310
1296
|
"apples".singularize "s" # apple
|
1311
|
-
"apples".singularize "s",
|
1312
|
-
"apples".singularize "s",
|
1313
|
-
"apples".singularize "s",
|
1314
|
-
"apples".singularize "s",
|
1315
|
-
"apples".singularize "s",
|
1297
|
+
"apples".singularize "s", 0 # apples
|
1298
|
+
"apples".singularize "s", 1 # apple
|
1299
|
+
"apples".singularize "s", -1 # apple
|
1300
|
+
"apples".singularize "s", 2 # apples
|
1301
|
+
"apples".singularize "s", -2 # apples
|
1316
1302
|
"cacti".singularize "i", replace: "us" # cactus
|
1317
1303
|
"culs-de-sac".singularize "ls", replace: "l" # cul-de-sac
|
1318
1304
|
----
|
@@ -1345,6 +1331,30 @@ Answers a title string with proper capitalization of each word.
|
|
1345
1331
|
"ThisIsAnExample".titleize # "This Is An Example"
|
1346
1332
|
----
|
1347
1333
|
|
1334
|
+
===== #truncate
|
1335
|
+
|
1336
|
+
Answers a truncated, non-mutated, string for given length with optional delimiter and/or overflow.
|
1337
|
+
|
1338
|
+
The delimiter is the second positional parameter (optional) and is `nil` by default. A custom string or regular expression can be used to customize truncation behavior.
|
1339
|
+
|
1340
|
+
The trailer is an optional keyword parameter that is an ellipsis (i.e. `"..."`) by default. The trailer can be a custom or empty string. The string length of the trailer is added to the length of the string being truncated, so keep this in mind when setting truncation length.
|
1341
|
+
|
1342
|
+
[source,ruby]
|
1343
|
+
----
|
1344
|
+
demo = "It was the best of times"
|
1345
|
+
length = demo.length
|
1346
|
+
|
1347
|
+
demo.truncate 9 # "It was..."
|
1348
|
+
demo.truncate 12 # "It was th..."
|
1349
|
+
demo.truncate length # "It was the best of times"
|
1350
|
+
demo.truncate Float::INFINITY # "It was the best of times"
|
1351
|
+
demo.truncate 12, " " # "It was..."
|
1352
|
+
demo.truncate 12, /\s/ # "It was..."
|
1353
|
+
demo.truncate 6, trailer: "" # "It was"
|
1354
|
+
demo.truncate 16, trailer: "... (more)" # "It was... (more)"
|
1355
|
+
"demo".truncate 3 # "..."
|
1356
|
+
----
|
1357
|
+
|
1348
1358
|
===== #to_bool
|
1349
1359
|
|
1350
1360
|
Answers string as a boolean.
|
@@ -1551,7 +1561,7 @@ with public methods in order to not break encapsulation.
|
|
1551
1561
|
----
|
1552
1562
|
|
1553
1563
|
⚠️ Use of `#call` without any arguments or block should be avoided in order to not incur extra
|
1554
|
-
processing costs since the original symbol-to-proc call can used instead.
|
1564
|
+
processing costs since the original symbol-to-proc call can be used instead.
|
1555
1565
|
|
1556
1566
|
== Development
|
1557
1567
|
|
@@ -4,8 +4,8 @@ require "refinements/shared/enumerables/many"
|
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the Array primitive.
|
7
|
-
module
|
8
|
-
refine Array do
|
7
|
+
module Array
|
8
|
+
refine ::Array do
|
9
9
|
import_methods Shared::Enumerables::Many
|
10
10
|
|
11
11
|
def combinatorial?(other) = !other.empty? && size == union(other).size
|
@@ -31,7 +31,7 @@ module Refinements
|
|
31
31
|
|
32
32
|
def minimum(key) = map(&key).min
|
33
33
|
|
34
|
-
def pad(value, max
|
34
|
+
def pad(value, max = size) = dup.fill(value, size..(max - 1))
|
35
35
|
|
36
36
|
def pick(*keys)
|
37
37
|
return if empty?
|
@@ -4,8 +4,8 @@ require "refinements/shared/enumerables/many"
|
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the Hash primitive.
|
7
|
-
module
|
8
|
-
refine Hash.singleton_class do
|
7
|
+
module Hash
|
8
|
+
refine ::Hash.singleton_class do
|
9
9
|
def infinite
|
10
10
|
new { |new_hash, missing_key| new_hash[missing_key] = new(&new_hash.default_proc) }
|
11
11
|
end
|
@@ -13,7 +13,7 @@ module Refinements
|
|
13
13
|
def with_default(value) = new { |new_hash, missing_key| new_hash[missing_key] = value }
|
14
14
|
end
|
15
15
|
|
16
|
-
refine Hash do
|
16
|
+
refine ::Hash do
|
17
17
|
import_methods Shared::Enumerables::Many
|
18
18
|
|
19
19
|
def compress = compact.delete_if { |_key, value| value.respond_to?(:empty?) && value.empty? }
|
@@ -57,7 +57,7 @@ module Refinements
|
|
57
57
|
reduce({}) do |accumulator, (key, value)|
|
58
58
|
flat_key = prefix ? :"#{prefix}#{delimiter}#{key}" : key
|
59
59
|
|
60
|
-
next accumulator.merge flat_key => value unless value
|
60
|
+
next accumulator.merge flat_key => value unless value.is_a? ::Hash
|
61
61
|
|
62
62
|
accumulator.merge(recurse { value.flatten_keys prefix: flat_key, delimiter: })
|
63
63
|
end
|
@@ -69,7 +69,7 @@ module Refinements
|
|
69
69
|
return self unless block
|
70
70
|
|
71
71
|
transform = yield self
|
72
|
-
transform.each { |key, value| transform[key] = value.recurse(&block) if value
|
72
|
+
transform.each { |key, value| transform[key] = value.recurse(&block) if value.is_a? ::Hash }
|
73
73
|
end
|
74
74
|
|
75
75
|
def stringify_keys = transform_keys(&:to_s)
|
@@ -4,8 +4,8 @@ require "refinements/shared/ios/reread"
|
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the IO primitive.
|
7
|
-
module
|
8
|
-
refine IO.singleton_class do
|
7
|
+
module IO
|
8
|
+
refine ::IO.singleton_class do
|
9
9
|
def void
|
10
10
|
new(sysopen("/dev/null", "w+")).then do |io|
|
11
11
|
return io unless block_given?
|
@@ -16,7 +16,7 @@ module Refinements
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
refine IO do
|
19
|
+
refine ::IO do
|
20
20
|
import_methods Shared::IOs::Reread
|
21
21
|
|
22
22
|
def redirect other
|
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "logger"
|
4
|
-
require "refinements/
|
4
|
+
require "refinements/string_io"
|
5
5
|
|
6
6
|
module Refinements
|
7
7
|
# Provides additional enhancements to a log device.
|
8
|
-
module
|
9
|
-
using
|
8
|
+
module LogDevice
|
9
|
+
using StringIO
|
10
10
|
|
11
|
-
refine Logger::LogDevice do
|
11
|
+
refine ::Logger::LogDevice do
|
12
12
|
def reread
|
13
13
|
case dev
|
14
|
-
when File then dev.class.new(dev).read
|
15
|
-
when StringIO then dev.reread
|
14
|
+
when ::File then dev.class.new(dev).read
|
15
|
+
when ::StringIO then dev.reread
|
16
16
|
else ""
|
17
17
|
end
|
18
18
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "refinements/
|
3
|
+
require "refinements/log_device"
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to a logger.
|
7
|
-
module
|
8
|
-
using
|
7
|
+
module Logger
|
8
|
+
using LogDevice
|
9
9
|
|
10
|
-
refine Logger do
|
10
|
+
refine ::Logger do
|
11
11
|
def reread = @logdev.reread
|
12
12
|
|
13
13
|
alias_method :any, :unknown
|
@@ -4,7 +4,7 @@ require "pathname"
|
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the Pathname primitive.
|
7
|
-
module
|
7
|
+
module Pathname
|
8
8
|
refine Kernel do
|
9
9
|
def Pathname object
|
10
10
|
return super(String(object)) unless object
|
@@ -13,7 +13,7 @@ module Refinements
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
refine Pathname.singleton_class do
|
16
|
+
refine ::Pathname.singleton_class do
|
17
17
|
def home = new ENV.fetch("HOME", "")
|
18
18
|
|
19
19
|
def make_temp_dir prefix: "temp-", suffix: nil, root: nil
|
@@ -29,7 +29,7 @@ module Refinements
|
|
29
29
|
def root = new(File::SEPARATOR)
|
30
30
|
end
|
31
31
|
|
32
|
-
refine Pathname do
|
32
|
+
refine ::Pathname do
|
33
33
|
def change_dir
|
34
34
|
if block_given?
|
35
35
|
Dir.chdir(self) { |path| yield Pathname(path) }
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
module Refinements
|
4
4
|
# Provides additional enhancements to the String primitive.
|
5
|
-
module
|
5
|
+
module String
|
6
6
|
DELIMITERS = %r([a-z][A-Z]|\s*-\s*|\s*/\s*|\s*:+\s*|\s*_\s*|\s+)
|
7
7
|
|
8
|
-
refine String do
|
8
|
+
refine ::String do
|
9
9
|
def blank? = empty? || match?(/\A[[:space:]]*\z/)
|
10
10
|
|
11
11
|
def camelcase
|
@@ -38,9 +38,9 @@ module Refinements
|
|
38
38
|
self[(minimum + 1)..]
|
39
39
|
end
|
40
40
|
|
41
|
-
def pluralize(suffix,
|
41
|
+
def pluralize(suffix, count = 0, replace: /$/) = count.abs == 1 ? self : sub(replace, suffix)
|
42
42
|
|
43
|
-
def singularize(suffix, replace: ""
|
43
|
+
def singularize(suffix, count = 1, replace: "") = count.abs == 1 ? sub(suffix, replace) : self
|
44
44
|
|
45
45
|
def snakecase
|
46
46
|
return downcase unless match? DELIMITERS
|
@@ -60,7 +60,15 @@ module Refinements
|
|
60
60
|
.then { |parts| combine parts, :up, "/" }
|
61
61
|
end
|
62
62
|
|
63
|
-
def
|
63
|
+
def truncate to, delimiter = nil, trailer: "..."
|
64
|
+
return dup if length <= to
|
65
|
+
|
66
|
+
offset = to - trailer.length
|
67
|
+
maximum = delimiter ? rindex(delimiter, offset) || offset : offset
|
68
|
+
"#{self[...maximum]}#{trailer}"
|
69
|
+
end
|
70
|
+
|
71
|
+
def to_bool = %w[true yes on t y 1].include? downcase.strip
|
64
72
|
|
65
73
|
def up = empty? ? self : first.upcase + self[1, size]
|
66
74
|
|
@@ -4,12 +4,12 @@ require "refinements/shared/values/diff"
|
|
4
4
|
|
5
5
|
module Refinements
|
6
6
|
# Provides additional enhancements to the Struct primitive.
|
7
|
-
module
|
8
|
-
refine Struct.singleton_class do
|
7
|
+
module Struct
|
8
|
+
refine ::Struct.singleton_class do
|
9
9
|
def with_positions(*values) = keyword_init? ? new(**members.zip(values).to_h) : new(*values)
|
10
10
|
end
|
11
11
|
|
12
|
-
refine Struct do
|
12
|
+
refine ::Struct do
|
13
13
|
import_methods Shared::Values::Diff
|
14
14
|
|
15
15
|
def merge(...) = dup.merge!(...)
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
module Refinements
|
4
4
|
# Provides additional enhancements to the Symbol primitive.
|
5
|
-
module
|
6
|
-
refine Symbol do
|
5
|
+
module Symbol
|
6
|
+
refine ::Symbol do
|
7
7
|
# rubocop:todo Naming/BlockForwarding
|
8
8
|
def call(*arguments, &block)
|
9
9
|
proc { |receiver| receiver.public_send self, *arguments, &block }
|
data/lib/refinements.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "refinements/
|
4
|
-
require "refinements/big_decimals"
|
3
|
+
require "refinements/array"
|
5
4
|
require "refinements/data"
|
6
|
-
require "refinements/
|
7
|
-
require "refinements/
|
8
|
-
require "refinements/
|
9
|
-
require "refinements/
|
10
|
-
require "refinements/
|
11
|
-
require "refinements/
|
12
|
-
require "refinements/
|
13
|
-
require "refinements/
|
14
|
-
require "refinements/
|
15
|
-
require "refinements/
|
5
|
+
require "refinements/date_time"
|
6
|
+
require "refinements/hash"
|
7
|
+
require "refinements/io"
|
8
|
+
require "refinements/log_device"
|
9
|
+
require "refinements/logger"
|
10
|
+
require "refinements/pathname"
|
11
|
+
require "refinements/string"
|
12
|
+
require "refinements/string_io"
|
13
|
+
require "refinements/struct"
|
14
|
+
require "refinements/symbol"
|
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 = "12.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.3"
|
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,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 12.0.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:
|
38
|
+
date: 2024-01-01 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
40
|
description:
|
41
41
|
email:
|
@@ -49,22 +49,21 @@ files:
|
|
49
49
|
- LICENSE.adoc
|
50
50
|
- README.adoc
|
51
51
|
- lib/refinements.rb
|
52
|
-
- lib/refinements/
|
53
|
-
- lib/refinements/big_decimals.rb
|
52
|
+
- lib/refinements/array.rb
|
54
53
|
- lib/refinements/data.rb
|
55
|
-
- lib/refinements/
|
56
|
-
- lib/refinements/
|
57
|
-
- lib/refinements/
|
58
|
-
- lib/refinements/
|
59
|
-
- lib/refinements/
|
60
|
-
- lib/refinements/
|
54
|
+
- lib/refinements/date_time.rb
|
55
|
+
- lib/refinements/hash.rb
|
56
|
+
- lib/refinements/io.rb
|
57
|
+
- lib/refinements/log_device.rb
|
58
|
+
- lib/refinements/logger.rb
|
59
|
+
- lib/refinements/pathname.rb
|
61
60
|
- lib/refinements/shared/enumerables/many.rb
|
62
61
|
- lib/refinements/shared/ios/reread.rb
|
63
62
|
- lib/refinements/shared/values/diff.rb
|
64
|
-
- lib/refinements/
|
65
|
-
- lib/refinements/
|
66
|
-
- lib/refinements/
|
67
|
-
- lib/refinements/
|
63
|
+
- lib/refinements/string.rb
|
64
|
+
- lib/refinements/string_io.rb
|
65
|
+
- lib/refinements/struct.rb
|
66
|
+
- lib/refinements/symbol.rb
|
68
67
|
- refinements.gemspec
|
69
68
|
homepage: https://alchemists.io/projects/refinements
|
70
69
|
licenses:
|
@@ -83,10 +82,7 @@ require_paths:
|
|
83
82
|
- lib
|
84
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
85
84
|
requirements:
|
86
|
-
- - "
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '3.2'
|
89
|
-
- - "<="
|
85
|
+
- - "~>"
|
90
86
|
- !ruby/object:Gem::Version
|
91
87
|
version: '3.3'
|
92
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "bigdecimal"
|
4
|
-
|
5
|
-
module Refinements
|
6
|
-
# Provides additional enhancements to the BigDecimal primitive.
|
7
|
-
module BigDecimals
|
8
|
-
refine BigDecimal do
|
9
|
-
def inspect = format("#<BigDecimal:%<id>s %<string>s>", id: object_id, string: to_s("F"))
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|