flash_extensions 3.1.1 → 3.2.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
- data/README.md +16 -0
- data/lib/flash_extensions/extensions/enumerable_extension.rb +13 -0
- data/lib/flash_extensions/version.rb +1 -1
- data/spec/lib/enumerable_extension_spec.rb +24 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29bc0da7ad03da1d52f8eee6a230cf349c977bf7
|
4
|
+
data.tar.gz: 4ff32a8160e43520e058d9376bcef76ee0718803
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f29027c054f49c5a80423aabb8c70bdd7f6b223a0b6565fcd4e2df10eba781b0f148106c907c0867923a57cd63acf350c01b604fbf1a8198f268e42848932faa
|
7
|
+
data.tar.gz: 1e22b5d041b52897ec998a05ec5edec1c583a85cd8ffd95b43c62e38ee99794f7bfde795165165e3feca097e6951676a834dd2f41493aeacebb10de6291ad904
|
data/README.md
CHANGED
@@ -154,6 +154,14 @@ Use the `several?` method to return if there are several types of an element.
|
|
154
154
|
[].several? #=> false
|
155
155
|
```
|
156
156
|
|
157
|
+
####Standard Deviation:####
|
158
|
+
Use the `standard_deviation` method to return the standard deviation of elements of a collection.
|
159
|
+
|
160
|
+
```ruby
|
161
|
+
[1,2,6].variance #=> 2.6457513110645907
|
162
|
+
[].variance #=> nil
|
163
|
+
```
|
164
|
+
|
157
165
|
####Sum:####
|
158
166
|
Use the `sum` method to to return the sum of a collection of numbers.
|
159
167
|
|
@@ -180,6 +188,14 @@ Use the `take_last_while` method to return the last number of elements of a coll
|
|
180
188
|
[].take_last_while(&:odd?) #=> []
|
181
189
|
```
|
182
190
|
|
191
|
+
####Variance:####
|
192
|
+
Use the `variance` method to return the variance of elements of a collection.
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
[1,2,6].variance #=> 7
|
196
|
+
[].variance #=> nil
|
197
|
+
```
|
198
|
+
|
183
199
|
### HashExtensions
|
184
200
|
|
185
201
|
####Except:####
|
@@ -110,6 +110,11 @@ module Enumerable
|
|
110
110
|
(found_count > 1) ? true : false
|
111
111
|
end
|
112
112
|
|
113
|
+
def standard_deviation
|
114
|
+
return if length < 2
|
115
|
+
Math.sqrt(variance)
|
116
|
+
end
|
117
|
+
|
113
118
|
def take_last(n)
|
114
119
|
array = to_a
|
115
120
|
|
@@ -125,4 +130,12 @@ module Enumerable
|
|
125
130
|
result
|
126
131
|
end
|
127
132
|
|
133
|
+
def variance
|
134
|
+
collection_length = length
|
135
|
+
|
136
|
+
return if collection_length < 1
|
137
|
+
sum = inject(0) { |accumulator, value| accumulator + (value - mean) ** 2 }
|
138
|
+
sum / (collection_length.to_f - 1)
|
139
|
+
end
|
140
|
+
|
128
141
|
end
|
@@ -158,6 +158,20 @@ describe Enumerable do
|
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
|
+
describe '#standard_deviation' do
|
162
|
+
it 'to be the square root of the #variance' do
|
163
|
+
expect([1,2,6].standard_deviation).to eq(2.6457513110645907)
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'to be nil for single element arrays' do
|
167
|
+
expect([1].standard_deviation).to be_nil
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'to be nil if empty' do
|
171
|
+
expect([].standard_deviation).to be_nil
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
161
175
|
describe "#sum" do
|
162
176
|
it "to be 0" do
|
163
177
|
expect([].sum).to eq(0)
|
@@ -192,4 +206,14 @@ describe Enumerable do
|
|
192
206
|
end
|
193
207
|
end
|
194
208
|
|
209
|
+
describe '#variance' do
|
210
|
+
it 'to be the mean squared deviation of the sample (n - 1 denominator)' do
|
211
|
+
expect([1,2,6].variance).to eq(7)
|
212
|
+
end
|
213
|
+
|
214
|
+
it 'to be nil if empty' do
|
215
|
+
expect([].variance).to be_nil
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
195
219
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flash_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|