refinements 7.11.0 → 7.12.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.tar.gz.sig +0 -0
- data/LICENSE.adoc +1 -1
- data/README.adoc +52 -20
- data/lib/refinements/arrays.rb +8 -0
- data/lib/refinements/identity.rb +1 -1
- data/lib/refinements/pathnames.rb +6 -0
- metadata +16 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3df95fcb46ec44d2945b1eb3ab7dafd8ba6bb243973829d662e448ef74695302
|
4
|
+
data.tar.gz: 21d89890312770ec2c73387c05c44dc31b22de849e18c3db6b4248476ca8bbdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0cb8fa10183e03737eab0ae1780b91e2e4ce994fd0945c7e2653bacd852dae85de474a073f4b1f6b8634e685059a54a0651b46ec567defd283cfb1491988e50
|
7
|
+
data.tar.gz: a3f2ea6940f0e8c74f41f43d28d34a71892d3ddcaaf295c64ce4761b120421f80c7833bd9b48d37a90e485c3b606c38adb71e8665cf9feecad35925da485628a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/LICENSE.adoc
CHANGED
@@ -150,7 +150,7 @@ additional liability.
|
|
150
150
|
|
151
151
|
END OF TERMS AND CONDITIONS
|
152
152
|
|
153
|
-
Copyright link:https://www.alchemists.io[
|
153
|
+
Copyright 2015 link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
|
154
154
|
|
155
155
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
|
156
156
|
compliance with the License. You may obtain a link:https://www.apache.org/licenses/LICENSE-2.0[copy]
|
data/README.adoc
CHANGED
@@ -35,8 +35,6 @@ Enhances the following objects:
|
|
35
35
|
|
36
36
|
== Setup
|
37
37
|
|
38
|
-
=== Production
|
39
|
-
|
40
38
|
To install, run:
|
41
39
|
|
42
40
|
[source,bash]
|
@@ -51,24 +49,6 @@ Add the following to your Gemfile file:
|
|
51
49
|
gem "refinements"
|
52
50
|
----
|
53
51
|
|
54
|
-
=== Development
|
55
|
-
|
56
|
-
To contribute, run:
|
57
|
-
|
58
|
-
[source,bash]
|
59
|
-
----
|
60
|
-
git clone https://github.com/bkuhlmann/refinements.git
|
61
|
-
cd refinements
|
62
|
-
bin/setup
|
63
|
-
----
|
64
|
-
|
65
|
-
You can also use the IRB console for direct access to all objects:
|
66
|
-
|
67
|
-
[source,bash]
|
68
|
-
----
|
69
|
-
bin/console
|
70
|
-
----
|
71
|
-
|
72
52
|
== Usage
|
73
53
|
|
74
54
|
=== Requires
|
@@ -153,6 +133,17 @@ Adds given array or elements without mutating itself.
|
|
153
133
|
[1, 2, 3].include 4, 5 # => [1, 2, 3, 4, 5]
|
154
134
|
----
|
155
135
|
|
136
|
+
===== #intersperse
|
137
|
+
|
138
|
+
Inserts additional elements or array between all members of given array.
|
139
|
+
|
140
|
+
[source,ruby]
|
141
|
+
----
|
142
|
+
[1, 2, 3].intersperse :a # => [1, :a, 2, :a, 3]
|
143
|
+
[1, 2, 3].intersperse :a, :b # => [1, :a, :b, 2, :a, :b, 3]
|
144
|
+
[1, 2, 3].intersperse %i[a b c] # => [1, :a, :b, :c, 2, :a, :b, :c, 3]
|
145
|
+
----
|
146
|
+
|
156
147
|
===== #exclude
|
157
148
|
|
158
149
|
Removes given array or elements without mutating itself.
|
@@ -163,6 +154,18 @@ Removes given array or elements without mutating itself.
|
|
163
154
|
[1, 2, 3, 4, 5].exclude 4, 5 # => [1, 2, 3]
|
164
155
|
----
|
165
156
|
|
157
|
+
===== #mean
|
158
|
+
|
159
|
+
Answers mean/average all elements within an array.
|
160
|
+
|
161
|
+
[source,ruby]
|
162
|
+
----
|
163
|
+
[].mean # => 0
|
164
|
+
[5].mean # => 5
|
165
|
+
[1, 2, 3].mean # => 2
|
166
|
+
[1.25, 1.5, 1.75].mean # => 1.5
|
167
|
+
----
|
168
|
+
|
166
169
|
===== #ring
|
167
170
|
|
168
171
|
Answers a circular array which can enumerate before, current, after elements.
|
@@ -625,6 +628,17 @@ Pathname("/one").exist? # => true
|
|
625
628
|
Pathname("/one/two").exist? # => false
|
626
629
|
----
|
627
630
|
|
631
|
+
===== #mkdir
|
632
|
+
|
633
|
+
Modifies default behavior by always answering itself (even when directory exists) and not throwing
|
634
|
+
errors when directory exists.
|
635
|
+
|
636
|
+
[source,ruby]
|
637
|
+
----
|
638
|
+
Pathname("/one").mkdir # => Pathname("/one")
|
639
|
+
Pathname("/one").mkdir.mkdir # => Pathname("/one")
|
640
|
+
----
|
641
|
+
|
628
642
|
===== #rewrite
|
629
643
|
|
630
644
|
When given a block, it provides the contents of the recently read file for manipulation and
|
@@ -766,6 +780,24 @@ io.reread(buffer: buffer)
|
|
766
780
|
buffer # => "This is a test."
|
767
781
|
----
|
768
782
|
|
783
|
+
== Development
|
784
|
+
|
785
|
+
To contribute, run:
|
786
|
+
|
787
|
+
[source,bash]
|
788
|
+
----
|
789
|
+
git clone https://github.com/bkuhlmann/refinements.git
|
790
|
+
cd refinements
|
791
|
+
bin/setup
|
792
|
+
----
|
793
|
+
|
794
|
+
You can also use the IRB console for direct access to all objects:
|
795
|
+
|
796
|
+
[source,bash]
|
797
|
+
----
|
798
|
+
bin/console
|
799
|
+
----
|
800
|
+
|
769
801
|
== Tests
|
770
802
|
|
771
803
|
To test, run:
|
data/lib/refinements/arrays.rb
CHANGED
@@ -15,10 +15,18 @@ module Refinements
|
|
15
15
|
self + elements.flatten
|
16
16
|
end
|
17
17
|
|
18
|
+
def intersperse *elements
|
19
|
+
product([elements]).tap(&:pop).flatten.push last
|
20
|
+
end
|
21
|
+
|
18
22
|
def exclude *elements
|
19
23
|
self - elements.flatten
|
20
24
|
end
|
21
25
|
|
26
|
+
def mean
|
27
|
+
size.zero? ? 0 : sum(0) / size
|
28
|
+
end
|
29
|
+
|
22
30
|
def ring &block
|
23
31
|
[last, *self, first].each_cons 3, &block
|
24
32
|
end
|
data/lib/refinements/identity.rb
CHANGED
@@ -54,6 +54,12 @@ module Refinements
|
|
54
54
|
self
|
55
55
|
end
|
56
56
|
|
57
|
+
# rubocop:disable Style/RedundantSelf
|
58
|
+
def mkdir
|
59
|
+
self.exist? ? self : super and self
|
60
|
+
end
|
61
|
+
# rubocop:enable Style/RedundantSelf
|
62
|
+
|
57
63
|
def rewrite
|
58
64
|
read.then { |content| write yield(content) if block_given? }
|
59
65
|
self
|
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: 7.
|
4
|
+
version: 7.12.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-
|
31
|
+
date: 2020-11-04 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler-audit
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0.6'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler-leak
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.2'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.2'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: gemsmith
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|