amee-analytics 1.0.1 → 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.
- data/Gemfile +2 -2
- data/VERSION +1 -1
- data/amee-analytics.gemspec +10 -9
- data/lib/amee/data_abstraction/terms_list_analytics_support.rb +48 -8
- data/spec/amee/analytics/calculation_collection_spec.rb +18 -2
- data/spec/amee/analytics/terms_list_spec.rb +84 -1
- data/spec/fixtures/config/calculations/calcs.rb +55 -0
- data/spec/spec_helper.rb +14 -63
- metadata +46 -45
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
3
|
# Dependencies
|
4
|
-
gem "amee-data-abstraction","~> 1.
|
5
|
-
gem "amee-data-persistence","~> 1.
|
4
|
+
gem "amee-data-abstraction","~> 1.3"
|
5
|
+
gem "amee-data-persistence","~> 1.2"
|
6
6
|
|
7
7
|
# Add dependencies to develop your gem here.
|
8
8
|
# Include everything needed to run rake, tests, features, etc.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/amee-analytics.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{amee-analytics}
|
8
|
-
s.version = "1.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 = ["James Hetherington", "Andrew Berkeley", "James Smith", "George Palmer"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-10-18}
|
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 = [
|
@@ -35,21 +35,22 @@ Gem::Specification.new do |s|
|
|
35
35
|
"spec/amee/analytics/calculation_collection_spec.rb",
|
36
36
|
"spec/amee/analytics/term_spec.rb",
|
37
37
|
"spec/amee/analytics/terms_list_spec.rb",
|
38
|
+
"spec/fixtures/config/calculations/calcs.rb",
|
38
39
|
"spec/spec.opts",
|
39
40
|
"spec/spec_helper.rb"
|
40
41
|
]
|
41
42
|
s.homepage = %q{http://github.com/AMEE/amee-analytics}
|
42
43
|
s.licenses = ["MIT"]
|
43
44
|
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = %q{1.
|
45
|
+
s.rubygems_version = %q{1.5.3}
|
45
46
|
s.summary = %q{Analytics module for use with AMEE AppKit}
|
46
47
|
|
47
48
|
if s.respond_to? :specification_version then
|
48
49
|
s.specification_version = 3
|
49
50
|
|
50
51
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
|
-
s.add_runtime_dependency(%q<amee-data-abstraction>, ["~> 1.
|
52
|
-
s.add_runtime_dependency(%q<amee-data-persistence>, ["~> 1.
|
52
|
+
s.add_runtime_dependency(%q<amee-data-abstraction>, ["~> 1.3"])
|
53
|
+
s.add_runtime_dependency(%q<amee-data-persistence>, ["~> 1.2"])
|
53
54
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
54
55
|
s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
|
55
56
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
@@ -57,8 +58,8 @@ Gem::Specification.new do |s|
|
|
57
58
|
s.add_development_dependency(%q<flexmock>, ["> 0.8.6"])
|
58
59
|
s.add_development_dependency(%q<activerecord>, ["~> 2.3.5"])
|
59
60
|
else
|
60
|
-
s.add_dependency(%q<amee-data-abstraction>, ["~> 1.
|
61
|
-
s.add_dependency(%q<amee-data-persistence>, ["~> 1.
|
61
|
+
s.add_dependency(%q<amee-data-abstraction>, ["~> 1.3"])
|
62
|
+
s.add_dependency(%q<amee-data-persistence>, ["~> 1.2"])
|
62
63
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
63
64
|
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
64
65
|
s.add_dependency(%q<rcov>, [">= 0"])
|
@@ -67,8 +68,8 @@ Gem::Specification.new do |s|
|
|
67
68
|
s.add_dependency(%q<activerecord>, ["~> 2.3.5"])
|
68
69
|
end
|
69
70
|
else
|
70
|
-
s.add_dependency(%q<amee-data-abstraction>, ["~> 1.
|
71
|
-
s.add_dependency(%q<amee-data-persistence>, ["~> 1.
|
71
|
+
s.add_dependency(%q<amee-data-abstraction>, ["~> 1.3"])
|
72
|
+
s.add_dependency(%q<amee-data-persistence>, ["~> 1.2"])
|
72
73
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
73
74
|
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
74
75
|
s.add_dependency(%q<rcov>, [">= 0"])
|
@@ -250,6 +250,28 @@ module AMEE
|
|
250
250
|
Result.new { label label; value value; unit unit; per_unit per_unit }
|
251
251
|
end
|
252
252
|
|
253
|
+
# Move an individual term to a specified location (index) within the list.
|
254
|
+
# The specific term is selected on the basis of one of it's attributes values,
|
255
|
+
# with the attribute to use (e.g. :value, :unit) given by <tt>attr</attr>
|
256
|
+
# and value by <tt>value</tt>. The location within the list to move the term
|
257
|
+
# is given as an index integer value as the final argument.
|
258
|
+
#
|
259
|
+
def move_by(attr,value,index)
|
260
|
+
if attr == :unit || attr == :per_unit
|
261
|
+
value = Unit.for value
|
262
|
+
end
|
263
|
+
term = find {|t| t.send(attr) == value }
|
264
|
+
return if term.nil?
|
265
|
+
delete(term)
|
266
|
+
insert(index, term)
|
267
|
+
end
|
268
|
+
|
269
|
+
# Rotate the list terms by one element - shifts the first-placed term to the
|
270
|
+
# end of the list, advancing all terms forward by one place.
|
271
|
+
def rotate
|
272
|
+
push(self.shift)
|
273
|
+
end
|
274
|
+
|
253
275
|
# Sorts the terms list in place according to the term attribute indiated by
|
254
276
|
# <tt>attr</tt>, returning <tt>self</tt>.
|
255
277
|
#
|
@@ -263,18 +285,36 @@ module AMEE
|
|
263
285
|
|
264
286
|
# Similar to <tt>#sort_by!</tt> but returns a new instance of
|
265
287
|
# <i>TermsList</i> arranged according to the values on the
|
266
|
-
# attribute <tt>attr</tt>.
|
288
|
+
# attribute <tt>attr</tt>.
|
267
289
|
#
|
268
|
-
# my_terms_list.sort_by :value
|
269
290
|
#
|
270
|
-
#
|
291
|
+
# If differences in units exist between terms, sorting occur based on the
|
292
|
+
# absolute quantities implied.
|
293
|
+
#
|
294
|
+
# E.g.
|
295
|
+
#
|
296
|
+
# my_terms_list.sort_by :value
|
297
|
+
#
|
298
|
+
# #=> <AMEE::DataAbstraction::TermsList ... >
|
271
299
|
#
|
272
300
|
def sort_by(attr)
|
273
|
-
# Remove unset terms before sort and append at end
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
301
|
+
# 1. Remove unset terms before sort and append at end
|
302
|
+
#
|
303
|
+
# 2. Establish set terms
|
304
|
+
#
|
305
|
+
# 3. Zip together with corresponding standardized units list creating a
|
306
|
+
# list of Term pairs
|
307
|
+
#
|
308
|
+
# 4. Sort list according to standardized Terms
|
309
|
+
#
|
310
|
+
# 5. Return map of original (now sorted) Terms
|
311
|
+
|
312
|
+
unset_terms, set_terms = self.partition { |term| term.unset? || term.value.nil? }
|
313
|
+
standardized_set_terms = TermsList.new(set_terms).standardize_units
|
314
|
+
ordered_set_terms = set_terms.zip(standardized_set_terms).sort! do |term,other_term|
|
315
|
+
term[1].send(attr) <=> other_term[1].send(attr)
|
316
|
+
end.map {|term_array| term_array[0]}
|
317
|
+
TermsList.new(ordered_set_terms + unset_terms)
|
278
318
|
end
|
279
319
|
|
280
320
|
# Return an instance of <i>TermsList</i> containing only terms labelled
|
@@ -5,7 +5,6 @@ include AMEE::DataAbstraction
|
|
5
5
|
describe CalculationCollection do
|
6
6
|
|
7
7
|
before(:each) do
|
8
|
-
initialize_calculation_set
|
9
8
|
@calcs = []
|
10
9
|
@calcs << add_elec_calc(500,240)
|
11
10
|
@calcs << add_elec_calc(1000,480)
|
@@ -48,7 +47,7 @@ describe CalculationCollection do
|
|
48
47
|
terms.all? {|term| term.is_a? AMEE::DataAbstraction::Output }.should be_true
|
49
48
|
end
|
50
49
|
|
51
|
-
it "should sum term values with
|
50
|
+
it "should sum term values with homogeneous calcs" do
|
52
51
|
@coll.co2.sum.to_s.should eql "1320.0 t"
|
53
52
|
@coll.co2.mean.to_s.should eql "440.0 t"
|
54
53
|
@coll.usage.sum.to_s.should eql "2734.0 kWh"
|
@@ -122,6 +121,23 @@ describe CalculationCollection do
|
|
122
121
|
coll.last['co2'].value.should eql 600
|
123
122
|
end
|
124
123
|
|
124
|
+
it "should sort calcs considering differences in units" do
|
125
|
+
@coll.first['usage'].value.should eql 500
|
126
|
+
@coll.first['usage'].unit.label.should eql 'kWh'
|
127
|
+
@coll[1]['usage'].value.should eql 1000
|
128
|
+
@coll[1]['usage'].unit.label.should eql 'kWh'
|
129
|
+
@coll.last['usage'].unit 'J'
|
130
|
+
@coll.last['usage'].value.should eql 1234
|
131
|
+
@coll.last['usage'].unit.label.should eql 'J'
|
132
|
+
@coll.sort_by_usage!
|
133
|
+
@coll.first['usage'].value.should eql 1234
|
134
|
+
@coll.first['usage'].unit.label.should eql 'J'
|
135
|
+
@coll[1]['usage'].value.should eql 500
|
136
|
+
@coll[1]['usage'].unit.label.should eql 'kWh'
|
137
|
+
@coll.last['usage'].value.should eql 1000
|
138
|
+
@coll.last['usage'].unit.label.should eql 'kWh'
|
139
|
+
end
|
140
|
+
|
125
141
|
it "should standardize units in place" do
|
126
142
|
@coll.first['usage'].unit 'J'
|
127
143
|
@coll.first['usage'].value.should eql 500
|
@@ -5,7 +5,6 @@ include AMEE::DataAbstraction
|
|
5
5
|
describe TermsList do
|
6
6
|
|
7
7
|
before(:each) do
|
8
|
-
initialize_calculation_set
|
9
8
|
calcs = []
|
10
9
|
calcs << add_elec_calc(500,240)
|
11
10
|
calcs << add_elec_calc(1000,480)
|
@@ -335,6 +334,90 @@ describe TermsList do
|
|
335
334
|
@list.last.value.should eql nil
|
336
335
|
end
|
337
336
|
|
337
|
+
it "should return a sorted terms list considering differences in units" do
|
338
|
+
@list=@list.co2
|
339
|
+
@list.first.unit 't'
|
340
|
+
@list[1].unit 'lb'
|
341
|
+
@list.last.unit 'kg'
|
342
|
+
@list.first.to_s.should eql "240.0 t"
|
343
|
+
@list[1].to_s.should eql "480.0 lb"
|
344
|
+
@list.last.to_s.should eql "600.0 kg"
|
345
|
+
@list.reverse!
|
346
|
+
@list.first.to_s.should_not eql "240.0 t"
|
347
|
+
@list.last.to_s.should_not eql "600.0 kg"
|
348
|
+
list = @list.sort_by_value
|
349
|
+
list.first.to_s.should eql "480.0 lb"
|
350
|
+
list[1].to_s.should eql "600.0 kg"
|
351
|
+
list.last.to_s.should eql "240.0 t"
|
352
|
+
end
|
353
|
+
|
354
|
+
it "should sort on non-numeric values" do
|
355
|
+
@list=@list.country
|
356
|
+
@list.first.value 'Zambia'
|
357
|
+
@list[1].value 'Bulgaria'
|
358
|
+
@list.last.value 'Mauritania'
|
359
|
+
@list.first.to_s.should eql 'Zambia'
|
360
|
+
@list[1].to_s.should eql 'Bulgaria'
|
361
|
+
@list.last.to_s.should eql 'Mauritania'
|
362
|
+
@list.reverse!
|
363
|
+
@list.first.to_s.should_not eql 'Zambia'
|
364
|
+
@list.last.to_s.should_not eql 'Mauritania'
|
365
|
+
list = @list.sort_by_value
|
366
|
+
list.first.to_s.should eql 'Bulgaria'
|
367
|
+
list[1].to_s.should eql 'Mauritania'
|
368
|
+
list.last.to_s.should eql'Zambia'
|
369
|
+
end
|
370
|
+
|
371
|
+
it "should move a term on the basis of value" do
|
372
|
+
@list=@list.co2
|
373
|
+
@list.first.to_s.should eql "240.0 t"
|
374
|
+
@list[1].to_s.should eql "480.0 t"
|
375
|
+
@list.last.to_s.should eql "600.0 t"
|
376
|
+
@list.move_by(:value, 600.0,0)
|
377
|
+
@list.first.to_s.should eql "600.0 t"
|
378
|
+
@list[1].to_s.should eql "240.0 t"
|
379
|
+
@list.last.to_s.should eql "480.0 t"
|
380
|
+
end
|
381
|
+
|
382
|
+
it "should move a term on the basis of unit object" do
|
383
|
+
@list=@list.co2
|
384
|
+
@list.first.unit 't'
|
385
|
+
@list[1].unit 'lb'
|
386
|
+
@list.last.unit 'kg'
|
387
|
+
@list.first.to_s.should eql "240.0 t"
|
388
|
+
@list[1].to_s.should eql "480.0 lb"
|
389
|
+
@list.last.to_s.should eql "600.0 kg"
|
390
|
+
@list.move_by(:unit, Unit.kg,1)
|
391
|
+
@list.first.to_s.should eql "240.0 t"
|
392
|
+
@list[1].to_s.should eql "600.0 kg"
|
393
|
+
@list.last.to_s.should eql "480.0 lb"
|
394
|
+
end
|
395
|
+
|
396
|
+
it "should move a term on the basis of unit label" do
|
397
|
+
@list=@list.co2
|
398
|
+
@list.first.unit 't'
|
399
|
+
@list[1].unit 'lb'
|
400
|
+
@list.last.unit 'kg'
|
401
|
+
@list.first.to_s.should eql "240.0 t"
|
402
|
+
@list[1].to_s.should eql "480.0 lb"
|
403
|
+
@list.last.to_s.should eql "600.0 kg"
|
404
|
+
@list.move_by(:unit, :t,-1)
|
405
|
+
@list.first.to_s.should eql "480.0 lb"
|
406
|
+
@list[1].to_s.should eql "600.0 kg"
|
407
|
+
@list.last.to_s.should eql "240.0 t"
|
408
|
+
end
|
409
|
+
|
410
|
+
it "should rotate terms" do
|
411
|
+
@list=@list.co2
|
412
|
+
@list.first.to_s.should eql "240.0 t"
|
413
|
+
@list[1].to_s.should eql "480.0 t"
|
414
|
+
@list.last.to_s.should eql "600.0 t"
|
415
|
+
@list.rotate
|
416
|
+
@list.first.to_s.should eql "480.0 t"
|
417
|
+
@list[1].to_s.should eql "600.0 t"
|
418
|
+
@list.last.to_s.should eql "240.0 t"
|
419
|
+
end
|
420
|
+
|
338
421
|
it "should return a new TermList for numeric only terms" do
|
339
422
|
@list=@list.co2.numeric_terms.should be_a TermsList
|
340
423
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
calculation{
|
2
|
+
name 'Electricity'
|
3
|
+
label :electricity
|
4
|
+
path '/business/energy/electricity/grid'
|
5
|
+
drill {
|
6
|
+
label :country
|
7
|
+
path 'country'
|
8
|
+
value 'Argentina'
|
9
|
+
}
|
10
|
+
profile {
|
11
|
+
label :usage
|
12
|
+
name 'Electricity Used'
|
13
|
+
path 'energyPerTime'
|
14
|
+
default_unit :kWh
|
15
|
+
}
|
16
|
+
output {
|
17
|
+
label :co2
|
18
|
+
name 'Carbon Dioxide'
|
19
|
+
path 'default'
|
20
|
+
default_unit :t
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
calculation{
|
25
|
+
name 'Transport'
|
26
|
+
label :transport
|
27
|
+
path '/transport/defra/vehicle'
|
28
|
+
drill {
|
29
|
+
label :type
|
30
|
+
path 'type'
|
31
|
+
name 'Type'
|
32
|
+
}
|
33
|
+
drill {
|
34
|
+
label :size
|
35
|
+
path 'size'
|
36
|
+
name 'Size'
|
37
|
+
}
|
38
|
+
drill {
|
39
|
+
label :fuel
|
40
|
+
path 'fuel'
|
41
|
+
name 'Fuel'
|
42
|
+
}
|
43
|
+
profile {
|
44
|
+
label :distance
|
45
|
+
name 'distance'
|
46
|
+
path 'distance'
|
47
|
+
default_unit :km
|
48
|
+
}
|
49
|
+
output {
|
50
|
+
label :co2
|
51
|
+
name 'Carbon Dioxide'
|
52
|
+
path 'default'
|
53
|
+
default_unit :t
|
54
|
+
}
|
55
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec'
|
|
3
3
|
|
4
4
|
require 'amee-analytics'
|
5
5
|
require 'amee-data-persistence'
|
6
|
-
require 'amee/data_abstraction/
|
6
|
+
require 'amee/data_abstraction/ongoing_calculation_persistence_support.rb'
|
7
7
|
require 'amee/data_abstraction/calculation_collection_analytics_support'
|
8
8
|
require 'amee/data_abstraction/terms_list_analytics_support'
|
9
9
|
require 'amee/data_abstraction/term_analytics_support'
|
@@ -15,80 +15,31 @@ AMEE::DataAbstraction::CalculationCollection.class_eval { include AMEE::DataAbst
|
|
15
15
|
AMEE::DataAbstraction::TermsList.class_eval { include AMEE::DataAbstraction::TermsListAnalyticsSupport }
|
16
16
|
AMEE::DataAbstraction::Term.class_eval { include AMEE::DataAbstraction::TermAnalyticsSupport }
|
17
17
|
|
18
|
-
|
18
|
+
class Rails
|
19
|
+
def self.root
|
20
|
+
File.dirname(__FILE__) + '/fixtures'
|
21
|
+
end
|
22
|
+
def self.logger
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
end
|
19
26
|
|
20
27
|
Spec::Runner.configure do |config|
|
21
28
|
config.mock_with :flexmock
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
eval "Calculations = AMEE::DataAbstraction::CalculationSet.new {
|
26
|
-
calculation{
|
27
|
-
name 'Electricity'
|
28
|
-
label :electricity
|
29
|
-
path '/business/energy/electricity/grid'
|
30
|
-
drill {
|
31
|
-
label :country
|
32
|
-
path 'country'
|
33
|
-
fixed 'Argentina'
|
34
|
-
}
|
35
|
-
profile {
|
36
|
-
label :usage
|
37
|
-
name 'Electricity Used'
|
38
|
-
path 'energyPerTime'
|
39
|
-
default_unit :kWh
|
40
|
-
}
|
41
|
-
output {
|
42
|
-
label :co2
|
43
|
-
name 'Carbon Dioxide'
|
44
|
-
path :default
|
45
|
-
default_unit :t
|
46
|
-
}
|
47
|
-
}
|
48
|
-
calculation{
|
49
|
-
name 'Transport'
|
50
|
-
label :transport
|
51
|
-
path '/transport/defra/vehicle'
|
52
|
-
drill {
|
53
|
-
label :type
|
54
|
-
path 'type'
|
55
|
-
name 'Type'
|
56
|
-
}
|
57
|
-
drill {
|
58
|
-
label :size
|
59
|
-
path 'size'
|
60
|
-
name 'Size'
|
61
|
-
}
|
62
|
-
drill {
|
63
|
-
label :fuel
|
64
|
-
path 'fuel'
|
65
|
-
name 'Fuel'
|
66
|
-
}
|
67
|
-
profile {
|
68
|
-
label :distance
|
69
|
-
name 'distance'
|
70
|
-
path 'distance'
|
71
|
-
default_unit :km
|
72
|
-
}
|
73
|
-
output {
|
74
|
-
label :co2
|
75
|
-
name 'Carbon Dioxide'
|
76
|
-
path :default
|
77
|
-
default_unit :t
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}"
|
29
|
+
config.before(:all) do
|
30
|
+
CalculationSet.find("calcs")
|
31
|
+
end
|
81
32
|
end
|
82
33
|
|
83
34
|
def add_elec_calc(act,res)
|
84
|
-
calc =
|
35
|
+
calc = CalculationSet.find("calcs")[:electricity].begin_calculation
|
85
36
|
calc['usage'].value act
|
86
37
|
calc['co2'].value res
|
87
38
|
return calc
|
88
39
|
end
|
89
40
|
|
90
41
|
def add_transport_calc(act,res)
|
91
|
-
calc =
|
42
|
+
calc = CalculationSet.find("calcs")[:transport].begin_calculation
|
92
43
|
calc['distance'].value act
|
93
44
|
calc['co2'].value res
|
94
45
|
return calc
|
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Hetherington
|
@@ -18,43 +18,42 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2011-
|
21
|
+
date: 2011-10-18 00:00:00 +01:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
|
-
|
26
|
-
|
27
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
name: amee-data-abstraction
|
26
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
28
27
|
none: false
|
29
28
|
requirements:
|
30
29
|
- - ~>
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
hash:
|
31
|
+
hash: 9
|
33
32
|
segments:
|
34
33
|
- 1
|
35
|
-
-
|
36
|
-
version: "1.
|
37
|
-
name: amee-data-abstraction
|
38
|
-
version_requirements: *id001
|
39
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
- 3
|
35
|
+
version: "1.3"
|
40
36
|
prerelease: false
|
41
37
|
type: :runtime
|
42
|
-
requirement:
|
38
|
+
requirement: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: amee-data-persistence
|
41
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
43
42
|
none: false
|
44
43
|
requirements:
|
45
44
|
- - ~>
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
46
|
+
hash: 11
|
48
47
|
segments:
|
49
48
|
- 1
|
50
|
-
-
|
51
|
-
version: "1.
|
52
|
-
name: amee-data-persistence
|
53
|
-
version_requirements: *id002
|
54
|
-
- !ruby/object:Gem::Dependency
|
49
|
+
- 2
|
50
|
+
version: "1.2"
|
55
51
|
prerelease: false
|
56
|
-
type: :
|
57
|
-
requirement:
|
52
|
+
type: :runtime
|
53
|
+
requirement: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: jeweler
|
56
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
58
57
|
none: false
|
59
58
|
requirements:
|
60
59
|
- - ~>
|
@@ -65,12 +64,12 @@ dependencies:
|
|
65
64
|
- 6
|
66
65
|
- 4
|
67
66
|
version: 1.6.4
|
68
|
-
name: jeweler
|
69
|
-
version_requirements: *id003
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
67
|
prerelease: false
|
72
68
|
type: :development
|
73
|
-
requirement:
|
69
|
+
requirement: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
74
73
|
none: false
|
75
74
|
requirements:
|
76
75
|
- - "="
|
@@ -81,12 +80,12 @@ dependencies:
|
|
81
80
|
- 3
|
82
81
|
- 0
|
83
82
|
version: 1.3.0
|
84
|
-
name: rspec
|
85
|
-
version_requirements: *id004
|
86
|
-
- !ruby/object:Gem::Dependency
|
87
83
|
prerelease: false
|
88
84
|
type: :development
|
89
|
-
requirement:
|
85
|
+
requirement: *id004
|
86
|
+
- !ruby/object:Gem::Dependency
|
87
|
+
name: rcov
|
88
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
90
89
|
none: false
|
91
90
|
requirements:
|
92
91
|
- - ">="
|
@@ -95,12 +94,12 @@ dependencies:
|
|
95
94
|
segments:
|
96
95
|
- 0
|
97
96
|
version: "0"
|
98
|
-
name: rcov
|
99
|
-
version_requirements: *id005
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
97
|
prerelease: false
|
102
98
|
type: :development
|
103
|
-
requirement:
|
99
|
+
requirement: *id005
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: rspec_spinner
|
102
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
104
103
|
none: false
|
105
104
|
requirements:
|
106
105
|
- - "="
|
@@ -111,12 +110,12 @@ dependencies:
|
|
111
110
|
- 1
|
112
111
|
- 3
|
113
112
|
version: 1.1.3
|
114
|
-
name: rspec_spinner
|
115
|
-
version_requirements: *id006
|
116
|
-
- !ruby/object:Gem::Dependency
|
117
113
|
prerelease: false
|
118
114
|
type: :development
|
119
|
-
requirement:
|
115
|
+
requirement: *id006
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: flexmock
|
118
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
120
119
|
none: false
|
121
120
|
requirements:
|
122
121
|
- - ">"
|
@@ -127,12 +126,12 @@ dependencies:
|
|
127
126
|
- 8
|
128
127
|
- 6
|
129
128
|
version: 0.8.6
|
130
|
-
name: flexmock
|
131
|
-
version_requirements: *id007
|
132
|
-
- !ruby/object:Gem::Dependency
|
133
129
|
prerelease: false
|
134
130
|
type: :development
|
135
|
-
requirement:
|
131
|
+
requirement: *id007
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: activerecord
|
134
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
136
135
|
none: false
|
137
136
|
requirements:
|
138
137
|
- - ~>
|
@@ -143,8 +142,9 @@ dependencies:
|
|
143
142
|
- 3
|
144
143
|
- 5
|
145
144
|
version: 2.3.5
|
146
|
-
|
147
|
-
|
145
|
+
prerelease: false
|
146
|
+
type: :development
|
147
|
+
requirement: *id008
|
148
148
|
description: Part of the AMEE AppKit, this gem provides the ability to do mathmatical operations over a set of calculations
|
149
149
|
email: help@amee.com
|
150
150
|
executables: []
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- spec/amee/analytics/calculation_collection_spec.rb
|
174
174
|
- spec/amee/analytics/term_spec.rb
|
175
175
|
- spec/amee/analytics/terms_list_spec.rb
|
176
|
+
- spec/fixtures/config/calculations/calcs.rb
|
176
177
|
- spec/spec.opts
|
177
178
|
- spec/spec_helper.rb
|
178
179
|
has_rdoc: true
|
@@ -205,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
206
|
requirements: []
|
206
207
|
|
207
208
|
rubyforge_project:
|
208
|
-
rubygems_version: 1.
|
209
|
+
rubygems_version: 1.5.3
|
209
210
|
signing_key:
|
210
211
|
specification_version: 3
|
211
212
|
summary: Analytics module for use with AMEE AppKit
|