refinements 8.0.1 → 8.1.0

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