descriptive-statistics 1.3.2 → 1.3.3
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.
data/README.md
CHANGED
@@ -53,6 +53,29 @@ stats.skewness #=> 1.188328915820243
|
|
53
53
|
stats.kurtosis #=> 2.405613966453127
|
54
54
|
```
|
55
55
|
|
56
|
+
## Alternative Usage (Not suggested)
|
57
|
+
If you want to monkey patch descriptive statistics methods into Enumerable, you can use the following:
|
58
|
+
|
59
|
+
(e.g. config/initializers/descriptive_statistics_monkey_patch.rb)
|
60
|
+
```ruby
|
61
|
+
require 'descriptive-statistics'
|
62
|
+
|
63
|
+
module Enumerable
|
64
|
+
include DescriptiveStatistics::All
|
65
|
+
|
66
|
+
# Warning: hacky evil meta programming. Required because classes that have already included
|
67
|
+
# Enumerable will not otherwise inherit the statistics methods.
|
68
|
+
DescriptiveStatistics::All.instance_methods.each do |m|
|
69
|
+
define_method(m, DescriptiveStatistics::All.instance_method(m))
|
70
|
+
end
|
71
|
+
end
|
72
|
+
```
|
73
|
+
|
74
|
+
Then you can use these methods directly on Arrays:
|
75
|
+
```ruby
|
76
|
+
[1,1,2,3,10].mean #=> 3.4
|
77
|
+
```
|
78
|
+
|
56
79
|
## Contributing
|
57
80
|
|
58
81
|
1. Fork it
|
@@ -1,16 +1,10 @@
|
|
1
1
|
require 'forwardable'
|
2
2
|
require "descriptive-statistics/version"
|
3
|
-
require 'descriptive-statistics/
|
4
|
-
require 'descriptive-statistics/dispersion'
|
5
|
-
require 'descriptive-statistics/spread'
|
6
|
-
require 'descriptive-statistics/shape'
|
3
|
+
require 'descriptive-statistics/all'
|
7
4
|
|
8
5
|
class DescriptiveStatistics
|
9
6
|
extend Forwardable
|
10
|
-
include
|
11
|
-
include Dispersion
|
12
|
-
include Spread
|
13
|
-
include Shape
|
7
|
+
include DescriptiveStatistics::All
|
14
8
|
|
15
9
|
def initialize(data)
|
16
10
|
@data = data
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'descriptive-statistics/central-tendency'
|
2
|
+
require 'descriptive-statistics/dispersion'
|
3
|
+
require 'descriptive-statistics/spread'
|
4
|
+
require 'descriptive-statistics/shape'
|
5
|
+
|
6
|
+
class DescriptiveStatistics
|
7
|
+
module All
|
8
|
+
include CentralTendency
|
9
|
+
include Dispersion
|
10
|
+
include Shape
|
11
|
+
include Spread
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DescriptiveStatistics::All do
|
4
|
+
it 'should include all stats modules' do
|
5
|
+
[DescriptiveStatistics::Spread, DescriptiveStatistics::Shape, DescriptiveStatistics::Dispersion,
|
6
|
+
DescriptiveStatistics::CentralTendency].each do |ancestor_module|
|
7
|
+
DescriptiveStatistics::All.ancestors.should include(ancestor_module)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DescriptiveStatistics do
|
4
|
+
it 'should allow hacky monkey patches to add methods to structures like arrays' do
|
5
|
+
module Enumerable
|
6
|
+
include DescriptiveStatistics::All
|
7
|
+
|
8
|
+
# Warning: hacky evil meta programming. Required to have classes that include array get the methods too.
|
9
|
+
DescriptiveStatistics::All.instance_methods.each do |m|
|
10
|
+
define_method(m, DescriptiveStatistics::All.instance_method(m))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
[1,2,3].mean.should == 2
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: descriptive-statistics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -58,15 +58,18 @@ files:
|
|
58
58
|
- Rakefile
|
59
59
|
- descriptive-statistics.gemspec
|
60
60
|
- lib/descriptive-statistics.rb
|
61
|
+
- lib/descriptive-statistics/all.rb
|
61
62
|
- lib/descriptive-statistics/central-tendency.rb
|
62
63
|
- lib/descriptive-statistics/dispersion.rb
|
63
64
|
- lib/descriptive-statistics/shape.rb
|
64
65
|
- lib/descriptive-statistics/spread.rb
|
65
66
|
- lib/descriptive-statistics/version.rb
|
67
|
+
- spec/lib/descriptive-statistics/all_spec.rb
|
66
68
|
- spec/lib/descriptive-statistics/central_tendency_spec.rb
|
67
69
|
- spec/lib/descriptive-statistics/dispersion_spec.rb
|
68
70
|
- spec/lib/descriptive-statistics/shape_spec.rb
|
69
71
|
- spec/lib/descriptive-statistics/spread_spec.rb
|
72
|
+
- spec/lib/descriptive_statistics_spec.rb
|
70
73
|
- spec/spec_helper.rb
|
71
74
|
homepage: https://github.com/jtescher/descriptive-statistics
|
72
75
|
licenses: []
|
@@ -82,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
82
85
|
version: '0'
|
83
86
|
segments:
|
84
87
|
- 0
|
85
|
-
hash:
|
88
|
+
hash: 4013925154357511722
|
86
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
90
|
none: false
|
88
91
|
requirements:
|
@@ -91,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
94
|
version: '0'
|
92
95
|
segments:
|
93
96
|
- 0
|
94
|
-
hash:
|
97
|
+
hash: 4013925154357511722
|
95
98
|
requirements: []
|
96
99
|
rubyforge_project:
|
97
100
|
rubygems_version: 1.8.24
|
@@ -101,8 +104,10 @@ summary: Simply calculate descriptive statistics such as measures of central ten
|
|
101
104
|
(e.g. mean,median, mode), dispersion (e.g. range and quartiles), and spread (e.g
|
102
105
|
variance and standard deviation)
|
103
106
|
test_files:
|
107
|
+
- spec/lib/descriptive-statistics/all_spec.rb
|
104
108
|
- spec/lib/descriptive-statistics/central_tendency_spec.rb
|
105
109
|
- spec/lib/descriptive-statistics/dispersion_spec.rb
|
106
110
|
- spec/lib/descriptive-statistics/shape_spec.rb
|
107
111
|
- spec/lib/descriptive-statistics/spread_spec.rb
|
112
|
+
- spec/lib/descriptive_statistics_spec.rb
|
108
113
|
- spec/spec_helper.rb
|