refinements 11.1.3 → 12.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 +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
|