means 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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