epitools 0.5.22 → 0.5.23
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/VERSION +1 -1
- data/lib/epitools/core_ext/enumerable.rb +12 -5
- data/lib/epitools/core_ext/string.rb +15 -0
- data/spec/core_ext_spec.rb +10 -2
- 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: eda0067cd8c9886dabdb526424d410352bce1608
|
4
|
+
data.tar.gz: 9bd399762f667a7926582901f9697b8e0a0d3f8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ccbed66625408ddc19bb3715f4e346dea77a45f07aba06fa6b7da4d7b5d2c444b1765c63469875856545c06ed6262acc87e22db8cc5f43789a01e5f392126bb
|
7
|
+
data.tar.gz: d07f39021df1b1d30900ad6e6bde8b0c8f0803875de9395baaa86babac2b749a7436bde521fb90683198bb9e95a849f36d0573a886704e830b133200716a0d6a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.23
|
@@ -142,9 +142,9 @@ module Enumerable
|
|
142
142
|
#
|
143
143
|
def sum
|
144
144
|
if block_given?
|
145
|
-
|
145
|
+
map(&block).reduce(:+)
|
146
146
|
else
|
147
|
-
|
147
|
+
reduce(:+)
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
@@ -153,7 +153,10 @@ module Enumerable
|
|
153
153
|
#
|
154
154
|
def average
|
155
155
|
count = 0
|
156
|
-
sum
|
156
|
+
sum = 0
|
157
|
+
|
158
|
+
each { |e| count += 1; sum += e }
|
159
|
+
|
157
160
|
sum / count.to_f
|
158
161
|
end
|
159
162
|
|
@@ -346,13 +349,17 @@ module Enumerable
|
|
346
349
|
|
347
350
|
#
|
348
351
|
# Counts how many instances of each object are in the collection,
|
349
|
-
# returning a hash.
|
352
|
+
# returning a hash. (Also optionally takes a block.)
|
350
353
|
#
|
351
354
|
# eg: [:a, :b, :c, :c, :c, :c].counts #=> {:a=>1, :b=>1, :c=>4}
|
352
355
|
#
|
353
356
|
def counts
|
354
357
|
h = Hash.of_integers
|
355
|
-
|
358
|
+
if block_given?
|
359
|
+
each { |x| h[yield x] += 1 }
|
360
|
+
else
|
361
|
+
each { |x| h[x] += 1 }
|
362
|
+
end
|
356
363
|
h
|
357
364
|
end
|
358
365
|
alias_method :counted, :counts
|
@@ -50,6 +50,21 @@ class String
|
|
50
50
|
gsub(/\s+/,' ').strip
|
51
51
|
end
|
52
52
|
|
53
|
+
#
|
54
|
+
# Convert string to "Title Case" (first letter of each word capitalized)
|
55
|
+
#
|
56
|
+
def titlecase!
|
57
|
+
downcase!
|
58
|
+
gsub!(/\b\w/) { |m| m.upcase }
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Return a new string converted to "Title Case" (first letter of each word capitalized)
|
63
|
+
#
|
64
|
+
def titlecase
|
65
|
+
dup.titlecase!
|
66
|
+
end
|
67
|
+
|
53
68
|
#
|
54
69
|
# Remove ANSI color codes.
|
55
70
|
#
|
data/spec/core_ext_spec.rb
CHANGED
@@ -186,6 +186,15 @@ describe String do
|
|
186
186
|
"\n\n\nblah\n\n\nblah\n\n\n".nice_lines.should == ["blah", "blah"]
|
187
187
|
end
|
188
188
|
|
189
|
+
it "titlecases" do
|
190
|
+
"asdf asdfasdf asdf".titlecase.should == "Asdf Asdfasdf Asdf"
|
191
|
+
" asdf".titlecase.should == " Asdf"
|
192
|
+
"ASDFASDFA SDF".titlecase.should == "Asdfasdfa Sdf"
|
193
|
+
s = "asdf asdf"
|
194
|
+
s.titlecase!
|
195
|
+
s.should == "Asdf Asdf"
|
196
|
+
end
|
197
|
+
|
189
198
|
it "strips color" do
|
190
199
|
s = "woot!"
|
191
200
|
color_s = s.light_green
|
@@ -360,7 +369,6 @@ describe Enumerable do
|
|
360
369
|
end
|
361
370
|
|
362
371
|
it "selects deeply" do
|
363
|
-
|
364
372
|
[[1,2],[3,4]].deep_select {|e| e % 2 == 0 }.should == [[2],[4]]
|
365
373
|
puts
|
366
374
|
|
@@ -401,7 +409,7 @@ describe Enumerable do
|
|
401
409
|
it "sums" do
|
402
410
|
[1,2,3,4,5].sum.should == 15
|
403
411
|
end
|
404
|
-
|
412
|
+
|
405
413
|
it "averages" do
|
406
414
|
[1,3].average.should == 2.0
|
407
415
|
[1,1,3,3].average.should == 2.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- epitron
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|