means 0.1.1 → 0.1.2

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.
Files changed (7) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +2 -0
  3. data/Rakefile +2 -9
  4. data/VERSION +1 -1
  5. data/lib/Mean.rb +22 -11
  6. data/means.gemspec +4 -1
  7. metadata +21 -10
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "rspec", "~> 2.3.0"
10
+ gem "yard", "~> 0.6.0"
10
11
  gem "bundler", "~> 1.0.0"
11
12
  gem "jeweler", "~> 1.6.4"
12
13
  gem "rcov", ">= 0"
data/Gemfile.lock CHANGED
@@ -17,6 +17,7 @@ GEM
17
17
  rspec-expectations (2.3.0)
18
18
  diff-lcs (~> 1.1.2)
19
19
  rspec-mocks (2.3.0)
20
+ yard (0.6.8)
20
21
 
21
22
  PLATFORMS
22
23
  ruby
@@ -26,3 +27,4 @@ DEPENDENCIES
26
27
  jeweler (~> 1.6.4)
27
28
  rcov
28
29
  rspec (~> 2.3.0)
30
+ yard (~> 0.6.0)
data/Rakefile CHANGED
@@ -38,12 +38,5 @@ end
38
38
 
39
39
  task :default => :spec
40
40
 
41
- require 'rake/rdoctask'
42
- Rake::RDocTask.new do |rdoc|
43
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
-
45
- rdoc.rdoc_dir = 'rdoc'
46
- rdoc.title = "means #{version}"
47
- rdoc.rdoc_files.include('README*')
48
- rdoc.rdoc_files.include('lib/**/*.rb')
49
- end
41
+ require 'yard'
42
+ YARD::Rake::YardocTask.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/lib/Mean.rb CHANGED
@@ -3,20 +3,26 @@ require 'mathn'
3
3
  # Allows calculation of arithmetic, geometric and harmonic means.
4
4
  # Class methods allow the passing in of a data set.
5
5
  # Alternatively an object can be created and elements can
6
- # be added with Mean#push
6
+ # be added with #push
7
7
  class Mean
8
8
 
9
- # Calculate the arithmetic mean of _data_
9
+ # Calculate the arithmetic mean
10
+ # @param [Array<Float>] data the data values
11
+ # @return [Float] the arithmetic mean
10
12
  def Mean.arithmetic(data)
11
13
  data.reduce(:+) / data.size unless data.empty?
12
14
  end
13
15
 
14
- # Calculate the geometric mean of _data_
16
+ # Calculate the geometric mean
17
+ # @param (see Mean.arithmetic)
18
+ # @return [Float] the geometric mean
15
19
  def Mean.geometric(data)
16
20
  data.reduce(:*) ** (1 / data.size) unless data.empty?
17
21
  end
18
22
 
19
- # Calculate the harmonic mean of _data_
23
+ # Calculate the harmonic mean
24
+ # @param (see Mean.arithmetic)
25
+ # @return [Float] the harmonic mean
20
26
  def Mean.harmonic(data)
21
27
  data.size / data.reduce(0) {|sum, element| sum += (1 / element)} unless data.empty?
22
28
  end
@@ -24,9 +30,10 @@ class Mean
24
30
  # Remember the initial state.
25
31
  #
26
32
  # If you are passing in an initial state:
27
- # [arithmetic mean] needs :sum and :count
28
- # [geometric mean] needs :product and :count.
29
- # [harmonic mean] needs :sum_of_reciprocals and :count
33
+ # [arithmetic mean] needs `:sum` and `:count`
34
+ # [geometric mean] needs `:product` and `:count`
35
+ # [harmonic mean] needs `:sum_of_reciprocals` and `:count`
36
+ # @param [Hash{Symbol => Fixnum}]
30
37
  def initialize(params={})
31
38
  @sum ||= params[:sum] ||= 0
32
39
  @sum_of_reciprocals ||= params[:sum_of_reciprocals] ||= 0
@@ -34,7 +41,8 @@ class Mean
34
41
  @count ||= params[:count] ||= 0
35
42
  end
36
43
 
37
- # Add _element_ to the data set
44
+ # Add element to the data set
45
+ # @param [Float] element the element to add
38
46
  def push(element)
39
47
  @sum += element
40
48
  @sum_of_reciprocals += (1 / element)
@@ -42,17 +50,20 @@ class Mean
42
50
  @count += 1
43
51
  end
44
52
 
45
- # Calculate the arithmetic mean of the data set
53
+ # Calculate the arithmetic mean
54
+ # @return [Float] the arithmetic mean
46
55
  def arithmetic_mean
47
56
  @sum / @count unless @count == 0
48
57
  end
49
58
 
50
- # Calculate the geometric mean of the data set
59
+ # Calculate the geometric mean
60
+ # @return [Float] the geometric mean
51
61
  def geometric_mean
52
62
  @product ** (1 / @count) unless @count == 0
53
63
  end
54
64
 
55
- # Calculate the harmonic mean of the data set
65
+ # Calculate the harmonic mean
66
+ # @return [Float] the harmonic mean
56
67
  def harmonic_mean
57
68
  @count / @sum_of_reciprocals unless @count == 0
58
69
  end
data/means.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "means"
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nigel Lowry"]
@@ -41,17 +41,20 @@ Gem::Specification.new do |s|
41
41
 
42
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
43
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
44
+ s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
44
45
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
45
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
46
47
  s.add_development_dependency(%q<rcov>, [">= 0"])
47
48
  else
48
49
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
50
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
49
51
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
50
52
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
51
53
  s.add_dependency(%q<rcov>, [">= 0"])
52
54
  end
53
55
  else
54
56
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
57
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
55
58
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
56
59
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
60
  s.add_dependency(%q<rcov>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: means
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-11-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70363465138320 !ruby/object:Gem::Requirement
16
+ requirement: &70214563112520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 2.3.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70363465138320
24
+ version_requirements: *70214563112520
25
+ - !ruby/object:Gem::Dependency
26
+ name: yard
27
+ requirement: &70214563112040 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70214563112040
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: bundler
27
- requirement: &70363465137840 !ruby/object:Gem::Requirement
38
+ requirement: &70214563111560 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 1.0.0
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70363465137840
46
+ version_requirements: *70214563111560
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: jeweler
38
- requirement: &70363465137360 !ruby/object:Gem::Requirement
49
+ requirement: &70214563111080 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 1.6.4
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70363465137360
57
+ version_requirements: *70214563111080
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: rcov
49
- requirement: &70363465136880 !ruby/object:Gem::Requirement
60
+ requirement: &70214563110600 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,7 +65,7 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70363465136880
68
+ version_requirements: *70214563110600
58
69
  description: Calculates the diferent means for a data set (arithmetic, geometric and
59
70
  harmonic).
60
71
  email: nigel-lowry@ultra.eclipse.co.uk
@@ -91,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
102
  version: '0'
92
103
  segments:
93
104
  - 0
94
- hash: -2129749344075212161
105
+ hash: 4342977988734455412
95
106
  required_rubygems_version: !ruby/object:Gem::Requirement
96
107
  none: false
97
108
  requirements: