amee-analytics 2.1.1 → 2.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.1.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{amee-analytics}
8
- s.version = "2.1.1"
8
+ s.version = "2.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["James Hetherington", "Andrew Berkeley", "James Smith", "George Palmer"]
12
- s.date = %q{2011-10-21}
11
+ s.authors = [%q{James Hetherington}, %q{Andrew Berkeley}, %q{James Smith}, %q{George Palmer}]
12
+ s.date = %q{2011-11-03}
13
13
  s.description = %q{Part of the AMEE AppKit, this gem provides the ability to do mathmatical operations over a set of calculations}
14
14
  s.email = %q{help@amee.com}
15
15
  s.extra_rdoc_files = [
@@ -39,9 +39,9 @@ Gem::Specification.new do |s|
39
39
  "spec/spec_helper.rb"
40
40
  ]
41
41
  s.homepage = %q{http://github.com/AMEE/amee-analytics}
42
- s.licenses = ["MIT"]
43
- s.require_paths = ["lib"]
44
- s.rubygems_version = %q{1.5.3}
42
+ s.licenses = [%q{MIT}]
43
+ s.require_paths = [%q{lib}]
44
+ s.rubygems_version = %q{1.8.6}
45
45
  s.summary = %q{Analytics module for use with AMEE AppKit}
46
46
 
47
47
  if s.respond_to? :specification_version then
@@ -102,12 +102,12 @@ module AMEE
102
102
  #
103
103
  def standardize_units(term,unit=nil,per_unit=nil)
104
104
  term = term.to_sym unless term.is_a? Symbol
105
- new_calcs = send(term).standardize_units(unit,per_unit).map do |term|
105
+ send(term).standardize_units(unit,per_unit).map do |term|
106
106
  calc = term.parent
107
107
  calc.contents[term.label] = term
108
108
  calc
109
109
  end
110
- AMEE::DataAbstraction::CalculationCollection.new(new_calcs)
110
+ AMEE::DataAbstraction::CalculationCollection.new(self)
111
111
  end
112
112
 
113
113
  # Similar to <tt>#standardize_units</tt> but standardizes units in place,
@@ -154,8 +154,8 @@ module AMEE
154
154
  # list.standardize_units(nil, 'BTU') #=> <TermsList>
155
155
  #
156
156
  def standardize_units(unit=nil,per_unit=nil)
157
- return self if homogeneous? and ((unit.nil? or (first.unit and first.unit.label == unit)) and
158
- (per_unit.nil? or (first.per_unit and first.per_unit.label == per_unit)))
157
+ return self if homogeneous? && ((unit.nil? or (first.unit && first.unit.label == unit)) &&
158
+ (per_unit.nil? || (first.per_unit && first.per_unit.label == per_unit)))
159
159
  unit = predominant_unit if unit.nil?
160
160
  per_unit = predominant_per_unit if per_unit.nil?
161
161
  new_terms = map { |term| term.convert_unit(:unit => unit, :per_unit => per_unit) }
@@ -155,6 +155,34 @@ describe CalculationCollection do
155
155
  coll.first['co2'].value.should be_within(0.01).of(529109.429243706)
156
156
  end
157
157
 
158
+ it "should standardize units in place and retain calcs missing term" do
159
+ @coll.first['usage'].unit 'J'
160
+ @coll.first['usage'].value.should eql 500
161
+ @coll.first['usage'].unit.label.should eql 'J'
162
+ pp @coll
163
+ @coll[1].contents.delete(:usage)
164
+ pp @coll
165
+ @coll.size.should eql 3
166
+ @coll.standardize_units!(:usage,:kWh)
167
+ pp @coll
168
+ @coll.first['usage'].unit 'kWh'
169
+ @coll.first['usage'].value.should be_within(0.000001).of(0.000138888888888889)
170
+ @coll[1].contents['usage'].should eql nil
171
+ @coll.size.should eql 3
172
+ end
173
+
174
+ it "should standardize units returning new collection" do
175
+ @coll.first['co2'].value.should eql 240
176
+ @coll.first['co2'].unit.label.should eql 't'
177
+ @coll[1].contents.delete(:co2)
178
+ @coll.size.should eql 3
179
+ coll = @coll.standardize_units(:co2,:lb)
180
+ coll.first['co2'].unit 'lb'
181
+ coll.first['co2'].value.should be_within(0.01).of(529109.429243706)
182
+ coll[1].contents['co2'].should eql nil
183
+ coll.size.should eql 3
184
+ end
185
+
158
186
  it "should handle 'type' as a terms filter" do
159
187
  calcs = []
160
188
  calcs << add_transport_calc(500,240)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amee-analytics
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 1
9
- - 1
10
- version: 2.1.1
9
+ - 2
10
+ version: 2.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - James Hetherington
@@ -18,12 +18,11 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2011-10-21 00:00:00 +01:00
22
- default_executable:
21
+ date: 2011-11-03 00:00:00 Z
23
22
  dependencies:
24
23
  - !ruby/object:Gem::Dependency
25
- name: amee-data-abstraction
26
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
+ type: :runtime
25
+ requirement: &id001 !ruby/object:Gem::Requirement
27
26
  none: false
28
27
  requirements:
29
28
  - - ~>
@@ -33,12 +32,12 @@ dependencies:
33
32
  - 2
34
33
  - 2
35
34
  version: "2.2"
35
+ version_requirements: *id001
36
+ name: amee-data-abstraction
36
37
  prerelease: false
37
- type: :runtime
38
- requirement: *id001
39
38
  - !ruby/object:Gem::Dependency
40
- name: amee-data-persistence
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ type: :runtime
40
+ requirement: &id002 !ruby/object:Gem::Requirement
42
41
  none: false
43
42
  requirements:
44
43
  - - ~>
@@ -48,12 +47,12 @@ dependencies:
48
47
  - 2
49
48
  - 2
50
49
  version: "2.2"
50
+ version_requirements: *id002
51
+ name: amee-data-persistence
51
52
  prerelease: false
52
- type: :runtime
53
- requirement: *id002
54
53
  - !ruby/object:Gem::Dependency
55
- name: bundler
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ type: :development
55
+ requirement: &id003 !ruby/object:Gem::Requirement
57
56
  none: false
58
57
  requirements:
59
58
  - - ~>
@@ -64,12 +63,12 @@ dependencies:
64
63
  - 0
65
64
  - 0
66
65
  version: 1.0.0
66
+ version_requirements: *id003
67
+ name: bundler
67
68
  prerelease: false
68
- type: :development
69
- requirement: *id003
70
69
  - !ruby/object:Gem::Dependency
71
- name: jeweler
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ type: :development
71
+ requirement: &id004 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
75
74
  - - ~>
@@ -80,12 +79,12 @@ dependencies:
80
79
  - 6
81
80
  - 4
82
81
  version: 1.6.4
82
+ version_requirements: *id004
83
+ name: jeweler
83
84
  prerelease: false
84
- type: :development
85
- requirement: *id004
86
85
  - !ruby/object:Gem::Dependency
87
- name: rails
88
- version_requirements: &id005 !ruby/object:Gem::Requirement
86
+ type: :development
87
+ requirement: &id005 !ruby/object:Gem::Requirement
89
88
  none: false
90
89
  requirements:
91
90
  - - ~>
@@ -96,12 +95,12 @@ dependencies:
96
95
  - 0
97
96
  - 10
98
97
  version: 3.0.10
98
+ version_requirements: *id005
99
+ name: rails
99
100
  prerelease: false
100
- type: :development
101
- requirement: *id005
102
101
  - !ruby/object:Gem::Dependency
103
- name: rspec
104
- version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ type: :development
103
+ requirement: &id006 !ruby/object:Gem::Requirement
105
104
  none: false
106
105
  requirements:
107
106
  - - "="
@@ -112,12 +111,12 @@ dependencies:
112
111
  - 6
113
112
  - 0
114
113
  version: 2.6.0
114
+ version_requirements: *id006
115
+ name: rspec
115
116
  prerelease: false
116
- type: :development
117
- requirement: *id006
118
117
  - !ruby/object:Gem::Dependency
119
- name: flexmock
120
- version_requirements: &id007 !ruby/object:Gem::Requirement
118
+ type: :development
119
+ requirement: &id007 !ruby/object:Gem::Requirement
121
120
  none: false
122
121
  requirements:
123
122
  - - ~>
@@ -128,12 +127,12 @@ dependencies:
128
127
  - 9
129
128
  - 0
130
129
  version: 0.9.0
130
+ version_requirements: *id007
131
+ name: flexmock
131
132
  prerelease: false
132
- type: :development
133
- requirement: *id007
134
133
  - !ruby/object:Gem::Dependency
135
- name: rcov
136
- version_requirements: &id008 !ruby/object:Gem::Requirement
134
+ type: :development
135
+ requirement: &id008 !ruby/object:Gem::Requirement
137
136
  none: false
138
137
  requirements:
139
138
  - - ">="
@@ -142,12 +141,12 @@ dependencies:
142
141
  segments:
143
142
  - 0
144
143
  version: "0"
144
+ version_requirements: *id008
145
+ name: rcov
145
146
  prerelease: false
146
- type: :development
147
- requirement: *id008
148
147
  - !ruby/object:Gem::Dependency
149
- name: rdoc
150
- version_requirements: &id009 !ruby/object:Gem::Requirement
148
+ type: :development
149
+ requirement: &id009 !ruby/object:Gem::Requirement
151
150
  none: false
152
151
  requirements:
153
152
  - - ">="
@@ -156,9 +155,9 @@ dependencies:
156
155
  segments:
157
156
  - 0
158
157
  version: "0"
158
+ version_requirements: *id009
159
+ name: rdoc
159
160
  prerelease: false
160
- type: :development
161
- requirement: *id009
162
161
  description: Part of the AMEE AppKit, this gem provides the ability to do mathmatical operations over a set of calculations
163
162
  email: help@amee.com
164
163
  executables: []
@@ -189,7 +188,6 @@ files:
189
188
  - spec/fixtures/config/calculations/calcs.rb
190
189
  - spec/spec.opts
191
190
  - spec/spec_helper.rb
192
- has_rdoc: true
193
191
  homepage: http://github.com/AMEE/amee-analytics
194
192
  licenses:
195
193
  - MIT
@@ -219,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
217
  requirements: []
220
218
 
221
219
  rubyforge_project:
222
- rubygems_version: 1.5.3
220
+ rubygems_version: 1.8.6
223
221
  signing_key:
224
222
  specification_version: 3
225
223
  summary: Analytics module for use with AMEE AppKit