amee-data-abstraction 1.3.1 → 2.0.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 (39) hide show
  1. data/.rvmrc +1 -1
  2. data/CHANGELOG.txt +0 -3
  3. data/Gemfile +5 -7
  4. data/Gemfile.lock +20 -14
  5. data/README.txt +15 -28
  6. data/Rakefile +17 -16
  7. data/VERSION +1 -1
  8. data/amee-data-abstraction.gemspec +21 -24
  9. data/lib/amee-data-abstraction.rb +6 -0
  10. data/lib/amee-data-abstraction/calculation.rb +1 -1
  11. data/lib/amee-data-abstraction/calculation_set.rb +10 -152
  12. data/lib/amee-data-abstraction/drill.rb +6 -23
  13. data/lib/amee-data-abstraction/input.rb +0 -24
  14. data/lib/amee-data-abstraction/ongoing_calculation.rb +9 -13
  15. data/lib/amee-data-abstraction/term.rb +13 -31
  16. data/spec/amee-data-abstraction/calculation_set_spec.rb +11 -245
  17. data/spec/amee-data-abstraction/calculation_spec.rb +18 -23
  18. data/spec/amee-data-abstraction/drill_spec.rb +7 -34
  19. data/spec/amee-data-abstraction/input_spec.rb +73 -113
  20. data/spec/amee-data-abstraction/metadatum_spec.rb +1 -1
  21. data/spec/amee-data-abstraction/ongoing_calculation_spec.rb +29 -45
  22. data/spec/amee-data-abstraction/profile_spec.rb +2 -2
  23. data/spec/amee-data-abstraction/prototype_calculation_spec.rb +11 -18
  24. data/spec/amee-data-abstraction/term_spec.rb +8 -50
  25. data/spec/amee-data-abstraction/terms_list_spec.rb +12 -16
  26. data/spec/config/amee_units_spec.rb +2 -1
  27. data/spec/core-extensions/class_spec.rb +18 -18
  28. data/spec/core-extensions/hash_spec.rb +2 -1
  29. data/spec/core-extensions/ordered_hash_spec.rb +2 -1
  30. data/spec/core-extensions/proc_spec.rb +1 -1
  31. data/spec/fixtures/{config/electricity.rb → electricity.rb} +2 -2
  32. data/spec/fixtures/electricity_and_transport.rb +55 -0
  33. data/spec/fixtures/{config/calculations/transport.rb → transport.rb} +2 -2
  34. data/spec/spec_helper.rb +7 -43
  35. metadata +56 -61
  36. data/init.rb +0 -4
  37. data/rails/init.rb +0 -32
  38. data/spec/fixtures/config/calculations/electricity.rb +0 -35
  39. data/spec/fixtures/config/calculations/electricity_and_transport.rb +0 -53
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amee-data-abstraction
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
- - 1
8
- - 3
9
- - 1
10
- version: 1.3.1
7
+ - 2
8
+ - 0
9
+ - 0
10
+ version: 2.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - James Hetherington
@@ -18,26 +18,28 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2011-10-18 00:00:00 +01:00
21
+ date: 2011-09-28 00:00:00 +01:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
25
+ prerelease: false
25
26
  name: amee
27
+ type: :runtime
26
28
  version_requirements: &id001 !ruby/object:Gem::Requirement
27
29
  none: false
28
30
  requirements:
29
31
  - - ~>
30
32
  - !ruby/object:Gem::Version
31
- hash: 5
33
+ hash: 27
32
34
  segments:
33
- - 3
34
- - 1
35
- version: "3.1"
36
- prerelease: false
37
- type: :runtime
35
+ - 4
36
+ - 0
37
+ version: "4.0"
38
38
  requirement: *id001
39
39
  - !ruby/object:Gem::Dependency
40
+ prerelease: false
40
41
  name: uuidtools
42
+ type: :runtime
41
43
  version_requirements: &id002 !ruby/object:Gem::Requirement
42
44
  none: false
43
45
  requirements:
@@ -49,27 +51,27 @@ dependencies:
49
51
  - 1
50
52
  - 2
51
53
  version: 2.1.2
52
- prerelease: false
53
- type: :runtime
54
54
  requirement: *id002
55
55
  - !ruby/object:Gem::Dependency
56
+ prerelease: false
56
57
  name: quantify
58
+ type: :runtime
57
59
  version_requirements: &id003 !ruby/object:Gem::Requirement
58
60
  none: false
59
61
  requirements:
60
- - - "="
62
+ - - ~>
61
63
  - !ruby/object:Gem::Version
62
- hash: 27
64
+ hash: 15
63
65
  segments:
64
- - 1
65
- - 2
66
66
  - 2
67
- version: 1.2.2
68
- prerelease: false
69
- type: :runtime
67
+ - 0
68
+ - 0
69
+ version: 2.0.0
70
70
  requirement: *id003
71
71
  - !ruby/object:Gem::Dependency
72
+ prerelease: false
72
73
  name: bundler
74
+ type: :development
73
75
  version_requirements: &id004 !ruby/object:Gem::Requirement
74
76
  none: false
75
77
  requirements:
@@ -81,11 +83,11 @@ dependencies:
81
83
  - 0
82
84
  - 0
83
85
  version: 1.0.0
84
- prerelease: false
85
- type: :development
86
86
  requirement: *id004
87
87
  - !ruby/object:Gem::Dependency
88
+ prerelease: false
88
89
  name: jeweler
90
+ type: :development
89
91
  version_requirements: &id005 !ruby/object:Gem::Requirement
90
92
  none: false
91
93
  requirements:
@@ -97,70 +99,66 @@ dependencies:
97
99
  - 6
98
100
  - 4
99
101
  version: 1.6.4
100
- prerelease: false
101
- type: :development
102
102
  requirement: *id005
103
103
  - !ruby/object:Gem::Dependency
104
+ prerelease: false
104
105
  name: rspec
106
+ type: :development
105
107
  version_requirements: &id006 !ruby/object:Gem::Requirement
106
108
  none: false
107
109
  requirements:
108
110
  - - "="
109
111
  - !ruby/object:Gem::Version
110
- hash: 27
112
+ hash: 23
111
113
  segments:
112
- - 1
113
- - 3
114
+ - 2
115
+ - 6
114
116
  - 0
115
- version: 1.3.0
116
- prerelease: false
117
- type: :development
117
+ version: 2.6.0
118
118
  requirement: *id006
119
119
  - !ruby/object:Gem::Dependency
120
- name: rcov
120
+ prerelease: false
121
+ name: flexmock
122
+ type: :development
121
123
  version_requirements: &id007 !ruby/object:Gem::Requirement
122
124
  none: false
123
125
  requirements:
124
- - - ">="
126
+ - - ">"
125
127
  - !ruby/object:Gem::Version
126
- hash: 3
128
+ hash: 51
127
129
  segments:
128
130
  - 0
129
- version: "0"
130
- prerelease: false
131
- type: :development
131
+ - 8
132
+ - 6
133
+ version: 0.8.6
132
134
  requirement: *id007
133
135
  - !ruby/object:Gem::Dependency
134
- name: rspec_spinner
136
+ prerelease: false
137
+ name: rcov
138
+ type: :development
135
139
  version_requirements: &id008 !ruby/object:Gem::Requirement
136
140
  none: false
137
141
  requirements:
138
- - - "="
142
+ - - ">="
139
143
  - !ruby/object:Gem::Version
140
- hash: 21
144
+ hash: 3
141
145
  segments:
142
- - 1
143
- - 1
144
- - 3
145
- version: 1.1.3
146
- prerelease: false
147
- type: :development
146
+ - 0
147
+ version: "0"
148
148
  requirement: *id008
149
149
  - !ruby/object:Gem::Dependency
150
- name: flexmock
150
+ prerelease: false
151
+ name: rdoc
152
+ type: :development
151
153
  version_requirements: &id009 !ruby/object:Gem::Requirement
152
154
  none: false
153
155
  requirements:
154
- - - ">"
156
+ - - ">="
155
157
  - !ruby/object:Gem::Version
156
- hash: 51
158
+ hash: 3
157
159
  segments:
158
160
  - 0
159
- - 8
160
- - 6
161
- version: 0.8.6
162
- prerelease: false
163
- type: :development
161
+ version: "0"
164
162
  requirement: *id009
165
163
  description: Part of the AMEEappkit this gem provides a data abstraction layer, decreasing the amount and detail of development required
166
164
  email: help@amee.com
@@ -183,7 +181,6 @@ files:
183
181
  - amee-data-abstraction.gemspec
184
182
  - examples/_calculator_form.erb
185
183
  - examples/calculation_controller.rb
186
- - init.rb
187
184
  - lib/amee-data-abstraction.rb
188
185
  - lib/amee-data-abstraction/calculation.rb
189
186
  - lib/amee-data-abstraction/calculation_set.rb
@@ -203,7 +200,6 @@ files:
203
200
  - lib/core-extensions/hash.rb
204
201
  - lib/core-extensions/ordered_hash.rb
205
202
  - lib/core-extensions/proc.rb
206
- - rails/init.rb
207
203
  - spec/amee-data-abstraction/calculation_set_spec.rb
208
204
  - spec/amee-data-abstraction/calculation_spec.rb
209
205
  - spec/amee-data-abstraction/drill_spec.rb
@@ -219,10 +215,9 @@ files:
219
215
  - spec/core-extensions/hash_spec.rb
220
216
  - spec/core-extensions/ordered_hash_spec.rb
221
217
  - spec/core-extensions/proc_spec.rb
222
- - spec/fixtures/config/calculations/electricity.rb
223
- - spec/fixtures/config/calculations/electricity_and_transport.rb
224
- - spec/fixtures/config/calculations/transport.rb
225
- - spec/fixtures/config/electricity.rb
218
+ - spec/fixtures/electricity.rb
219
+ - spec/fixtures/electricity_and_transport.rb
220
+ - spec/fixtures/transport.rb
226
221
  - spec/spec.opts
227
222
  - spec/spec_helper.rb
228
223
  has_rdoc: true
@@ -255,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
250
  requirements: []
256
251
 
257
252
  rubyforge_project:
258
- rubygems_version: 1.5.3
253
+ rubygems_version: 1.4.2
259
254
  signing_key:
260
255
  specification_version: 3
261
256
  summary: Calculation and form building tool hiding details of AMEEconnect
data/init.rb DELETED
@@ -1,4 +0,0 @@
1
- # Copyright (C) 2011 AMEE UK Ltd. - http://www.amee.com
2
- # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
-
4
- require File.dirname(__FILE__) + "/rails/init"
data/rails/init.rb DELETED
@@ -1,32 +0,0 @@
1
-
2
- # Authors:: James Hetherington, James Smith, Andrew Berkeley, George Palmer
3
- # Copyright:: Copyright (c) 2011 AMEE UK Ltd
4
- # License:: Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject
10
- # to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included
13
- # in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18
- # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19
- # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20
- # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21
- # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
-
23
- require 'amee-data-abstraction.rb'
24
-
25
- module AMEE::DataAbstraction
26
-
27
- # Override the connection accessor to provide the global connection in rails apps
28
- def self.connection
29
- AMEE::Rails.connection
30
- end
31
-
32
- end
@@ -1,35 +0,0 @@
1
- calculation { # The application has support for an electricity calculation. :electricity is the internal label used to refer to it
2
- label :electricity
3
- name "Electricity Consumption"
4
- path '/business/energy/electricity/grid'
5
-
6
- drill {
7
- fixed 'argentina' #Not to be unset, value pre-given
8
- label :country #Name will default to label.humanize if not given
9
- path 'country' #Some of the fields on the form are drill-downs, but the application doesn't need to display these differently
10
- #type :autocompleting_text_box #default for a drill with entries is probably a dropdown
11
- }
12
-
13
- profile {
14
- label :energy_used
15
- # Symbol provided here is used in generating html ids for elements etc
16
- path 'energyPerTime' #The amee profile item value corresponding to the field
17
- name "Energy Used" #The display name used on the form
18
- unit "kWh" #Default unit choice
19
- interface :text_box #Probably not needed, as likely to be the default for profile item value unsets
20
- validation lambda{|x|x.is_a? Float} #Probably not needed, as default can be deduced from PIV TYPE in API. Here as illustrative.
21
- alternative_units :MWh, :MBTU, :BTU # If these are explcitly specified then the alternatives are limited to only these units. Otherwise all dimensionally equivalent units are available as alternatives by default
22
- }
23
-
24
- # Alternatively, the drill might be fixed
25
- #permanent :country {
26
- # drill_path 'country'
27
- # value 'Argentina'
28
-
29
- output { #A marv output value
30
- label :co2
31
- path 'default' #It's not a marv, use the default output
32
- name "Carbon Dioxide"
33
- }
34
- }
35
-
@@ -1,53 +0,0 @@
1
- all_calculations {
2
- metadatum {
3
- label :department
4
- choices %w{stuff things more_stuff meta_things}
5
- }
6
- }
7
-
8
- calculation{
9
- name 'electricity'
10
- label :electricity
11
- path '/business/energy/electricity/grid'
12
- profile {
13
- label :usage
14
- name 'Electricity Used'
15
- path 'energyPerTime'
16
- }
17
- drill {
18
- label :country
19
- path 'country'
20
- fixed 'Argentina'
21
- }
22
- output {
23
- label :co2
24
- path 'default'
25
- }
26
- }
27
-
28
- calculation {
29
- name 'transport'
30
- label :transport
31
- path '/transport/car/generic'
32
-
33
- drill {
34
- path 'fuel'
35
- label :fuel
36
- name 'Fuel Type'
37
- }
38
- drill {
39
- path 'size'
40
- label :size
41
- name 'Vehicle Size'
42
- }
43
- profile {
44
- path 'distance'
45
- label :distance
46
- name 'Distance Driven'
47
- }
48
- output {
49
- label :co2
50
- path 'default'
51
- name 'Carbon Dioxide'
52
- }
53
- }