refinements 8.0.1 → 8.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa3c406709e8a34ba5de77de6416ba4a180a42dc994252fb35b9414a73d941c2
4
- data.tar.gz: 99426faa5a56f5352ed5620fe4a94e090121c7bd7555ad3c15d0b3a8beee65a1
3
+ metadata.gz: 6446344f206e8c2b4175dedc5ccd4d14c4bcaadd6d7969fcf04ef3d185143b03
4
+ data.tar.gz: ccdd0a5a93d36e1c4f4e5ed23b2f29ee3ee1cd3d8654a919ade1ed17841228cf
5
5
  SHA512:
6
- metadata.gz: eeb946bc0824dd153fd3bb4615287b0e088c10693c45bdc728e2ee4f2f75207f079584d357afd3085ff289b3cbae45f1f5e14aeb099c0170e78adc0b6012a6bb
7
- data.tar.gz: 2fbe37e1cbc1f8c4cc966f7f3d7db70a74481481ecc4c5770053d2b156dfc681e6fd8b2ab1f4432d87daa719a9c6962dd8354a42011ccce61ed7c40d29768d25
6
+ metadata.gz: 4b27775e5e325f98b308bdfd913129074266f75c4601caec7d48e9ca64e7608d24a2ebcbea4795a7548d61db36fecfe8ddbab3593c9aa9df8ca153b63ad41dac
7
+ data.tar.gz: afe11cd5ac6e81723f4afef741699a7615e96103c85fef24f51749e35ac02c79ffb0c9eb0fc459d63b7bba26f0b3469d251ae562b211fae4b8b29dbac71f02dc
@@ -1,2 +1,3 @@
1
- �$�P�~�C���e�Y���&�"`L�%C{+z@t,6O5��HdD����&wy��5]l5K��j%�͖�zK���������KGn��.td �ٖ]�-�e�s�gw{�������S �&3���|�&��py�T�R�#¦��%?I�m"V�����#VFk�](��5�5��y�t$Si@)�����iC�#���2�4�M{��r������*i��stk��Eu3�.t_?o�~"��3�
2
- �5��}
1
+ p������"����BcNDXR;A��VPȑsbaǣيLz�?O�T"
2
+ 8e���A�i��FeY�`b�S]���p�7�������� ^���H
3
+ ���.g�a=MA=蟌���fl��|$����'�:t3�A�bM3#%���\��<�&-%;��܍Y�iy ���b��Pt+��3%FVb8��yR����&�Y�� ����]j�/)�������"x�Xy��U�
data.tar.gz.sig CHANGED
Binary file
@@ -3,37 +3,21 @@
3
3
  module Refinements
4
4
  module Arrays
5
5
  refine Array do
6
- def compress
7
- compact.reject(&:empty?)
8
- end
6
+ def compress = compact.reject(&:empty?)
9
7
 
10
- def compress!
11
- replace compress
12
- end
8
+ def compress! = replace(compress)
13
9
 
14
- def excluding *elements
15
- self - elements.flatten
16
- end
10
+ def excluding(*elements) = self - elements.flatten
17
11
 
18
- def including *elements
19
- self + elements.flatten
20
- end
12
+ def including(*elements) = self + elements.flatten
21
13
 
22
- def intersperse *elements
23
- product([elements]).tap(&:pop).flatten.push last
24
- end
14
+ def intersperse(*elements) = product([elements]).tap(&:pop).flatten.push(last)
25
15
 
26
- def mean
27
- size.zero? ? 0 : sum(0) / size
28
- end
16
+ def mean = size.zero? ? 0 : sum(0) / size
29
17
 
30
- def pad value, max: size
31
- dup.fill value, size..(max - 1)
32
- end
18
+ def pad(value, max: size) = dup.fill(value, size..(max - 1))
33
19
 
34
- def ring &block
35
- [last, *self, first].each_cons 3, &block
36
- end
20
+ def ring(&block) = [last, *self, first].each_cons(3, &block)
37
21
  end
38
22
  end
39
23
  end
@@ -5,9 +5,7 @@ require "bigdecimal"
5
5
  module Refinements
6
6
  module BigDecimals
7
7
  refine BigDecimal do
8
- def inspect
9
- format "#<BigDecimal:%{id} %{string}>", id: object_id, string: to_s("F")
10
- end
8
+ def inspect = format("#<BigDecimal:%{id} %{string}>", id: object_id, string: to_s("F"))
11
9
  end
12
10
  end
13
11
  end
@@ -5,9 +5,7 @@ require "date"
5
5
  module Refinements
6
6
  module DateTimes
7
7
  refine DateTime.singleton_class do
8
- def utc
9
- now.new_offset 0
10
- end
8
+ def utc = now.new_offset(0)
11
9
  end
12
10
  end
13
11
  end
@@ -7,9 +7,7 @@ module Refinements
7
7
  new { |new_hash, missing_key| new_hash[missing_key] = new(&new_hash.default_proc) }
8
8
  end
9
9
 
10
- def with_default value
11
- new { |new_hash, missing_key| new_hash[missing_key] = value }
12
- end
10
+ def with_default(value) = new { |new_hash, missing_key| new_hash[missing_key] = value }
13
11
  end
14
12
 
15
13
  refine Hash do
@@ -25,25 +23,15 @@ module Refinements
25
23
  end
26
24
  end
27
25
 
28
- def deep_merge! other
29
- replace deep_merge(other)
30
- end
26
+ def deep_merge!(other) = replace(deep_merge(other))
31
27
 
32
- def deep_stringify_keys
33
- recurse(&:stringify_keys)
34
- end
28
+ def deep_stringify_keys = recurse(&:stringify_keys)
35
29
 
36
- def deep_stringify_keys!
37
- replace deep_stringify_keys
38
- end
30
+ def deep_stringify_keys! = replace(deep_stringify_keys)
39
31
 
40
- def deep_symbolize_keys
41
- recurse(&:symbolize_keys)
42
- end
32
+ def deep_symbolize_keys = recurse(&:symbolize_keys)
43
33
 
44
- def deep_symbolize_keys!
45
- replace deep_symbolize_keys
46
- end
34
+ def deep_symbolize_keys! = replace(deep_symbolize_keys)
47
35
 
48
36
  # :reek:TooManyStatements
49
37
  def flatten_keys prefix: nil, delimiter: "_", cast: :to_sym
@@ -74,21 +62,13 @@ module Refinements
74
62
  end
75
63
  end
76
64
 
77
- def stringify_keys
78
- reduce({}) { |hash, (key, value)| hash.merge key.to_s => value }
79
- end
65
+ def stringify_keys = reduce({}) { |hash, (key, value)| hash.merge key.to_s => value }
80
66
 
81
- def stringify_keys!
82
- replace stringify_keys
83
- end
67
+ def stringify_keys! = replace(stringify_keys)
84
68
 
85
- def symbolize_keys
86
- reduce({}) { |hash, (key, value)| hash.merge key.to_sym => value }
87
- end
69
+ def symbolize_keys = reduce({}) { |hash, (key, value)| hash.merge key.to_sym => value }
88
70
 
89
- def symbolize_keys!
90
- replace symbolize_keys
91
- end
71
+ def symbolize_keys! = replace(symbolize_keys)
92
72
 
93
73
  def use &block
94
74
  return [] unless block
@@ -5,7 +5,7 @@ module Refinements
5
5
  module Identity
6
6
  NAME = "refinements"
7
7
  LABEL = "Refinements"
8
- VERSION = "8.0.1"
8
+ VERSION = "8.1.0"
9
9
  VERSION_LABEL = "#{LABEL} #{VERSION}"
10
10
  end
11
11
  end
@@ -23,13 +23,9 @@ module Refinements
23
23
  reopen backup
24
24
  end
25
25
 
26
- def reread length = nil, buffer: nil
27
- tap(&:rewind).read length, buffer
28
- end
26
+ def reread(length = nil, buffer: nil) = tap(&:rewind).read(length, buffer)
29
27
 
30
- def squelch &block
31
- self.class.void.then { |void| redirect(void, &block) }
32
- end
28
+ def squelch(&block) = self.class.void.then { |void| redirect(void, &block) }
33
29
  end
34
30
  end
35
31
  end
@@ -5,6 +5,7 @@ require "pathname"
5
5
  module Refinements
6
6
  module Pathnames
7
7
  refine Kernel do
8
+ # :reek:UncommunicativeMethodName
8
9
  def Pathname object
9
10
  return super(String(object)) unless object
10
11
 
@@ -13,9 +14,7 @@ module Refinements
13
14
  end
14
15
 
15
16
  refine Pathname.singleton_class do
16
- def home
17
- new ENV["HOME"]
18
- end
17
+ def home = new(ENV["HOME"])
19
18
 
20
19
  def make_temp_dir prefix: "temp-", suffix: nil, root: nil
21
20
  Dir.mktmpdir([prefix, suffix], root) { |path| block_given? ? yield(new path) : new(path) }
@@ -25,9 +24,7 @@ module Refinements
25
24
  new(root).files(pattern).each { |path| require path.to_s }
26
25
  end
27
26
 
28
- def root
29
- new "/"
30
- end
27
+ def root = new("/")
31
28
  end
32
29
 
33
30
  refine Pathname do
@@ -45,58 +42,36 @@ module Refinements
45
42
  glob(pattern, flag).select(&:directory?).sort
46
43
  end
47
44
 
48
- def extensions
49
- basename.to_s.split(/(?=\.)+/).tap(&:shift)
50
- end
45
+ def extensions = basename.to_s.split(/(?=\.)+/).tap(&:shift)
51
46
 
52
- def files pattern = "*", flag: File::FNM_SYSCASE
53
- glob(pattern, flag).select(&:file?).sort
54
- end
47
+ def files(pattern = "*", flag: File::FNM_SYSCASE) = glob(pattern, flag).select(&:file?).sort
55
48
 
56
- def gsub pattern, replacement
57
- self.class.new to_s.gsub(pattern, replacement)
58
- end
49
+ def gsub(pattern, replacement) = self.class.new(to_s.gsub(pattern, replacement))
59
50
 
60
51
  def make_ancestors
61
52
  dirname.mkpath
62
53
  self
63
54
  end
64
55
 
65
- def make_dir
66
- exist? ? self : mkdir and self
67
- end
56
+ def make_dir = exist? ? self : (mkdir and self)
68
57
 
69
58
  def make_path
70
59
  mkpath
71
60
  self
72
61
  end
73
62
 
74
- def name
75
- basename extname
76
- end
77
-
78
- def relative_parent root_dir
79
- relative_path_from(root_dir).parent
80
- end
63
+ def name = basename(extname)
81
64
 
82
- def relative_parent_from root_dir
83
- warn "[DEPRECATION]: Pathname#relative_parent_from is deprecated, " \
84
- "use Pathname#relative_parent instead."
85
- relative_parent root_dir
86
- end
65
+ def relative_parent(root_dir) = relative_path_from(root_dir).parent
87
66
 
88
- def remove_dir
89
- exist? ? (rmdir and self) : self
90
- end
67
+ def remove_dir = exist? ? (rmdir and self) : self
91
68
 
92
69
  def remove_tree
93
70
  rmtree if exist?
94
71
  self
95
72
  end
96
73
 
97
- def rewrite
98
- read.then { |content| write yield(content) if block_given? }
99
- end
74
+ def rewrite = read.then { |content| write yield(content) if block_given? }
100
75
 
101
76
  def touch at = Time.now
102
77
  exist? ? utime(at, at) : write("")
@@ -5,9 +5,7 @@ require "stringio"
5
5
  module Refinements
6
6
  module StringIOs
7
7
  refine StringIO do
8
- def reread length = nil, buffer: nil
9
- tap(&:rewind).read length, buffer
10
- end
8
+ def reread(length = nil, buffer: nil) = tap(&:rewind).read(length, buffer)
11
9
  end
12
10
  end
13
11
  end
@@ -5,9 +5,7 @@ module Refinements
5
5
  DELIMITERS = %r([a-z][A-Z]|\s*-\s*|\s*/\s*|\s*:+\s*|\s*_\s*|\s+)
6
6
 
7
7
  refine String do
8
- def blank?
9
- match?(/\A\s*\z/)
10
- end
8
+ def blank? = match?(/\A\s*\z/)
11
9
 
12
10
  def camelcase
13
11
  return up unless match? DELIMITERS
@@ -67,9 +65,7 @@ module Refinements
67
65
  .then { |parts| combine parts, :up, "/" }
68
66
  end
69
67
 
70
- def to_bool
71
- %w[true yes on t y 1].include? downcase.strip
72
- end
68
+ def to_bool = %w[true yes on t y 1].include?(downcase.strip)
73
69
 
74
70
  def up
75
71
  return self if empty?
@@ -3,23 +3,15 @@
3
3
  module Refinements
4
4
  module Structs
5
5
  refine Struct.singleton_class do
6
- def keyworded?
7
- inspect.include? "keyword_init: true"
8
- end
6
+ def keyworded? = inspect.include?("keyword_init: true")
9
7
 
10
- def with_keywords **arguments
11
- keyworded? ? new(**arguments) : new.merge!(**arguments)
12
- end
8
+ def with_keywords(**arguments) = keyworded? ? new(**arguments) : new.merge!(**arguments)
13
9
 
14
- def with_positions *values
15
- keyworded? ? new(**Hash[members.zip values]) : new(*values)
16
- end
10
+ def with_positions(*values) = keyworded? ? new(**Hash[members.zip values]) : new(*values)
17
11
  end
18
12
 
19
13
  refine Struct do
20
- def merge **attributes
21
- dup.merge!(**attributes)
22
- end
14
+ def merge(**attributes) = dup.merge!(**attributes)
23
15
 
24
16
  def merge! **attributes
25
17
  to_h.merge(**attributes).each { |key, value| self[key] = value }
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: 8.0.1
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -28,7 +28,7 @@ cert_chain:
28
28
  2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
29
29
  QWc=
30
30
  -----END CERTIFICATE-----
31
- date: 2020-12-29 00:00:00.000000000 Z
31
+ date: 2021-01-16 00:00:00.000000000 Z
32
32
  dependencies: []
33
33
  description:
34
34
  email:
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.2.3
78
+ rubygems_version: 3.2.5
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: A collection of refinements to core Ruby objects.
metadata.gz.sig CHANGED
Binary file