utilities 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/utilities.rb +35 -2
- data/lib/version.rb +1 -1
- data/utilities.gemspec +2 -2
- metadata +7 -4
data/lib/utilities.rb
CHANGED
@@ -84,7 +84,7 @@ class Numeric
|
|
84
84
|
alias_method :percent_of, :percentage_of
|
85
85
|
end
|
86
86
|
|
87
|
-
module Utilities
|
87
|
+
module Utilities
|
88
88
|
module Statistics
|
89
89
|
# Add each object of the array to each other in order to get the sum, as long as all objects respond to + operator
|
90
90
|
def sum
|
@@ -96,6 +96,13 @@ module Utilities
|
|
96
96
|
map{ |i| i**2 }
|
97
97
|
end
|
98
98
|
|
99
|
+
# Return a new array containing the rank of each value
|
100
|
+
# Ex: [1, 2, 2, 8, 9] #=> [0.0, 1.5, 1.5, 3.0, 4.0]
|
101
|
+
def ranks( already_sorted = false )
|
102
|
+
a = already_sorted ? self : sort
|
103
|
+
map{ |i| (a.index(i) + a.rindex(i)) / 2.0 }
|
104
|
+
end
|
105
|
+
|
99
106
|
# Calculate square roots of each item
|
100
107
|
def sqrts
|
101
108
|
map{ |i| i.sqrt }
|
@@ -115,7 +122,7 @@ module Utilities
|
|
115
122
|
# Return the variance of self
|
116
123
|
def variance
|
117
124
|
m = mean
|
118
|
-
|
125
|
+
inject(0) { |v, x| v += (x - m) ** 2 }
|
119
126
|
end
|
120
127
|
|
121
128
|
# Return the (sample|population) standard deviation of self
|
@@ -203,6 +210,7 @@ module Utilities
|
|
203
210
|
:modes => self.modes,
|
204
211
|
|
205
212
|
# Need to be sorted...
|
213
|
+
:ranks => sorted.ranks( true ),
|
206
214
|
:median => sorted.median( true ),
|
207
215
|
:midrange => sorted.midrange( true ),
|
208
216
|
:statistical_range => sorted.statistical_range( true ),
|
@@ -218,3 +226,28 @@ module Utilities
|
|
218
226
|
end
|
219
227
|
end
|
220
228
|
end
|
229
|
+
|
230
|
+
class Array
|
231
|
+
|
232
|
+
# Returns a copy of self reverse sorted
|
233
|
+
def reverse_sort
|
234
|
+
dup.rsort!
|
235
|
+
end
|
236
|
+
alias_method :rsort, :reverse_sort
|
237
|
+
|
238
|
+
# Reverse sort self
|
239
|
+
def reverse_sort!
|
240
|
+
sort!{|x,y| y <=> x }
|
241
|
+
end
|
242
|
+
alias_method :rsort!, :reverse_sort!
|
243
|
+
|
244
|
+
# Returns a copy of self that includes the Statistics methods
|
245
|
+
def to_stat
|
246
|
+
dup.to_stat!
|
247
|
+
end
|
248
|
+
|
249
|
+
# Adds the statistics methods to self
|
250
|
+
def to_stat!
|
251
|
+
extend(Utilities::Statistics)
|
252
|
+
end
|
253
|
+
end
|
data/lib/version.rb
CHANGED
data/utilities.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.name = "utilities"
|
9
9
|
s.version = Utilities::VERSION
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
|
-
s.authors = ["Christian Blais"]
|
12
|
-
s.email = ["christ.blais@gmail.com"]
|
11
|
+
s.authors = ["Christian Blais", "Guillaume Malette", "Louis-Mathieu Houle"]
|
12
|
+
s.email = ["christ.blais@gmail.com", "gmalette@gmail.com"]
|
13
13
|
s.homepage = "http://github.com/christianblais/utilities"
|
14
14
|
s.summary = "Few utilities include in all my projects"
|
15
15
|
s.description = "Few utilities include in all my projects, including a module for statistics, some to_date and to_time functions as well as intersection method for Range object."
|
metadata
CHANGED
@@ -1,27 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utilities
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Christian Blais
|
14
|
+
- Guillaume Malette
|
15
|
+
- Louis-Mathieu Houle
|
14
16
|
autorequire:
|
15
17
|
bindir: bin
|
16
18
|
cert_chain: []
|
17
19
|
|
18
|
-
date: 2011-02-
|
20
|
+
date: 2011-02-25 00:00:00 -05:00
|
19
21
|
default_executable:
|
20
22
|
dependencies: []
|
21
23
|
|
22
24
|
description: Few utilities include in all my projects, including a module for statistics, some to_date and to_time functions as well as intersection method for Range object.
|
23
25
|
email:
|
24
26
|
- christ.blais@gmail.com
|
27
|
+
- gmalette@gmail.com
|
25
28
|
executables: []
|
26
29
|
|
27
30
|
extensions: []
|