means 1.0.0 → 1.1.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.
Files changed (7) hide show
  1. data/.rvmrc +48 -0
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +9 -9
  4. data/VERSION +1 -1
  5. data/lib/means.rb +13 -13
  6. data/means.gemspec +7 -6
  7. metadata +16 -15
data/.rvmrc ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
+ # Only full ruby name is supported here, for short names use:
8
+ # echo "rvm use 1.9.3" > .rvmrc
9
+ environment_id="ruby-1.9.3-p125@means"
10
+
11
+ # Uncomment the following lines if you want to verify rvm version per project
12
+ # rvmrc_rvm_version="1.10.3" # 1.10.1 seams as a safe start
13
+ # eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
+ # echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
+ # return 1
16
+ # }
17
+
18
+ # First we attempt to load the desired environment directly from the environment
19
+ # file. This is very fast and efficient compared to running through the entire
20
+ # CLI and selector. If you want feedback on which environment was used then
21
+ # insert the word 'use' after --create as this triggers verbose mode.
22
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
+ then
25
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
+ [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
27
+ \. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
28
+ else
29
+ # If the environment file has not yet been created, use the RVM CLI to select.
30
+ rvm --create "$environment_id" || {
31
+ echo "Failed to create RVM environment '${environment_id}'."
32
+ return 1
33
+ }
34
+ fi
35
+
36
+ # If you use bundler, this might be useful to you:
37
+ if [[ -s Gemfile ]] && {
38
+ ! builtin command -v bundle >/dev/null ||
39
+ builtin command -v bundle | grep $rvm_path/bin/bundle >/dev/null
40
+ }
41
+ then
42
+ printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
43
+ gem install bundler
44
+ fi
45
+ if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
46
+ then
47
+ bundle install | grep -vE '^Using|Your bundle is complete'
48
+ fi
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "rspec", "~> 2.7.0"
9
+ gem "rspec", "~> 2.9.0"
10
10
  gem "yard", "~> 0.7.4"
11
11
  gem "bundler", "~> 1.0.0"
12
12
  gem "jeweler", "~> 1.6.4"
data/Gemfile.lock CHANGED
@@ -9,14 +9,14 @@ GEM
9
9
  rake
10
10
  rake (0.9.2.2)
11
11
  rcov (0.9.11)
12
- rspec (2.7.0)
13
- rspec-core (~> 2.7.0)
14
- rspec-expectations (~> 2.7.0)
15
- rspec-mocks (~> 2.7.0)
16
- rspec-core (2.7.1)
17
- rspec-expectations (2.7.0)
18
- diff-lcs (~> 1.1.2)
19
- rspec-mocks (2.7.0)
12
+ rspec (2.9.0)
13
+ rspec-core (~> 2.9.0)
14
+ rspec-expectations (~> 2.9.0)
15
+ rspec-mocks (~> 2.9.0)
16
+ rspec-core (2.9.0)
17
+ rspec-expectations (2.9.0)
18
+ diff-lcs (~> 1.1.3)
19
+ rspec-mocks (2.9.0)
20
20
  yard (0.7.4)
21
21
 
22
22
  PLATFORMS
@@ -26,5 +26,5 @@ DEPENDENCIES
26
26
  bundler (~> 1.0.0)
27
27
  jeweler (~> 1.6.4)
28
28
  rcov
29
- rspec (~> 2.7.0)
29
+ rspec (~> 2.9.0)
30
30
  yard (~> 0.7.4)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
data/lib/means.rb CHANGED
@@ -7,22 +7,22 @@ require 'mathn'
7
7
  class Mean
8
8
 
9
9
  # Calculate the arithmetic mean
10
- # @param [Array<Float>] data the data values
11
- # @return [Float] the arithmetic mean
10
+ # @param [Array<Numeric>] data the data values
11
+ # @return [Numeric] the arithmetic mean
12
12
  def Mean.arithmetic(data)
13
13
  data.reduce(:+) / data.size unless data.empty?
14
14
  end
15
15
 
16
16
  # Calculate the geometric mean
17
17
  # @param (see Mean.arithmetic)
18
- # @return [Float] the geometric mean
18
+ # @return [Numeric] the geometric mean
19
19
  def Mean.geometric(data)
20
20
  data.reduce(:*) ** (1 / data.size) unless data.empty?
21
21
  end
22
22
 
23
23
  # Calculate the harmonic mean
24
24
  # @param (see Mean.arithmetic)
25
- # @return [Float] the harmonic mean
25
+ # @return [Numeric] the harmonic mean
26
26
  def Mean.harmonic(data)
27
27
  data.size / data.reduce(0) {|sum, element| sum += (1 / element)} unless data.empty?
28
28
  end
@@ -33,7 +33,7 @@ class Mean
33
33
  # [arithmetic mean] needs `:sum` and `:count`
34
34
  # [geometric mean] needs `:product` and `:count`
35
35
  # [harmonic mean] needs `:sum_of_reciprocals` and `:count`
36
- # @param [Hash{Symbol => Fixnum}]
36
+ # @param [Hash{Symbol => Numeric}]
37
37
  def initialize(params={})
38
38
  @sum ||= params[:sum] ||= 0
39
39
  @sum_of_reciprocals ||= params[:sum_of_reciprocals] ||= 0
@@ -42,7 +42,7 @@ class Mean
42
42
  end
43
43
 
44
44
  # Add element to the data set
45
- # @param [Float] element the element to add
45
+ # @param [Numeric] element the element to add
46
46
  def push(element)
47
47
  @sum += element
48
48
  @sum_of_reciprocals += (1 / element)
@@ -51,20 +51,20 @@ class Mean
51
51
  end
52
52
 
53
53
  # Calculate the arithmetic mean
54
- # @return [Float] the arithmetic mean
54
+ # @return [Numeric] the arithmetic mean
55
55
  def arithmetic_mean
56
- @sum / @count unless @count == 0
56
+ @sum / @count unless @count.zero?
57
57
  end
58
58
 
59
59
  # Calculate the geometric mean
60
- # @return [Float] the geometric mean
60
+ # @return [Numeric] the geometric mean
61
61
  def geometric_mean
62
- @product ** (1 / @count) unless @count == 0
62
+ @product ** (1 / @count) unless @count.zero?
63
63
  end
64
64
 
65
65
  # Calculate the harmonic mean
66
- # @return [Float] the harmonic mean
66
+ # @return [Numeric] the harmonic mean
67
67
  def harmonic_mean
68
- @count / @sum_of_reciprocals unless @count == 0
68
+ @count / @sum_of_reciprocals unless @count.zero?
69
69
  end
70
- end
70
+ end
data/means.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "means"
8
- s.version = "1.0.0"
8
+ s.version = "1.1.0"
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"]
12
- s.date = "2012-01-21"
12
+ s.date = "2012-03-21"
13
13
  s.description = "Calculates the different means for a data set (arithmetic, geometric and harmonic)."
14
14
  s.email = "nigel-lowry@ultra.eclipse.co.uk"
15
15
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".rspec",
22
+ ".rvmrc",
22
23
  "Gemfile",
23
24
  "Gemfile.lock",
24
25
  "LICENSE.txt",
@@ -33,27 +34,27 @@ Gem::Specification.new do |s|
33
34
  s.homepage = "http://github.com/nigel-lowry/means"
34
35
  s.licenses = ["MIT"]
35
36
  s.require_paths = ["lib"]
36
- s.rubygems_version = "1.8.15"
37
+ s.rubygems_version = "1.8.17"
37
38
  s.summary = "Small gem to work out the arithmetic, harmonic and geometric means of a data set"
38
39
 
39
40
  if s.respond_to? :specification_version then
40
41
  s.specification_version = 3
41
42
 
42
43
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
- s.add_development_dependency(%q<rspec>, ["~> 2.7.0"])
44
+ s.add_development_dependency(%q<rspec>, ["~> 2.9.0"])
44
45
  s.add_development_dependency(%q<yard>, ["~> 0.7.4"])
45
46
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
46
47
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
47
48
  s.add_development_dependency(%q<rcov>, [">= 0"])
48
49
  else
49
- s.add_dependency(%q<rspec>, ["~> 2.7.0"])
50
+ s.add_dependency(%q<rspec>, ["~> 2.9.0"])
50
51
  s.add_dependency(%q<yard>, ["~> 0.7.4"])
51
52
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
52
53
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
53
54
  s.add_dependency(%q<rcov>, [">= 0"])
54
55
  end
55
56
  else
56
- s.add_dependency(%q<rspec>, ["~> 2.7.0"])
57
+ s.add_dependency(%q<rspec>, ["~> 2.9.0"])
57
58
  s.add_dependency(%q<yard>, ["~> 0.7.4"])
58
59
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
60
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
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: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-21 00:00:00.000000000Z
12
+ date: 2012-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70348236128460 !ruby/object:Gem::Requirement
16
+ requirement: &70238701358200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 2.7.0
21
+ version: 2.9.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70348236128460
24
+ version_requirements: *70238701358200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yard
27
- requirement: &70348236127920 !ruby/object:Gem::Requirement
27
+ requirement: &70238701356180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.7.4
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70348236127920
35
+ version_requirements: *70238701356180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70348236127400 !ruby/object:Gem::Requirement
38
+ requirement: &70238701353120 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70348236127400
46
+ version_requirements: *70238701353120
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70348236126800 !ruby/object:Gem::Requirement
49
+ requirement: &70238701415900 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70348236126800
57
+ version_requirements: *70238701415900
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &70348236126220 !ruby/object:Gem::Requirement
60
+ requirement: &70238701415140 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70348236126220
68
+ version_requirements: *70238701415140
69
69
  description: Calculates the different means for a data set (arithmetic, geometric
70
70
  and harmonic).
71
71
  email: nigel-lowry@ultra.eclipse.co.uk
@@ -77,6 +77,7 @@ extra_rdoc_files:
77
77
  files:
78
78
  - .document
79
79
  - .rspec
80
+ - .rvmrc
80
81
  - Gemfile
81
82
  - Gemfile.lock
82
83
  - LICENSE.txt
@@ -102,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
103
  version: '0'
103
104
  segments:
104
105
  - 0
105
- hash: 2418780072598608906
106
+ hash: 3343725683295383752
106
107
  required_rubygems_version: !ruby/object:Gem::Requirement
107
108
  none: false
108
109
  requirements:
@@ -111,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
112
  version: '0'
112
113
  requirements: []
113
114
  rubyforge_project:
114
- rubygems_version: 1.8.15
115
+ rubygems_version: 1.8.17
115
116
  signing_key:
116
117
  specification_version: 3
117
118
  summary: Small gem to work out the arithmetic, harmonic and geometric means of a data