genability 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +2 -2
- data/Gemfile +11 -10
- data/HISTORY.md +8 -0
- data/README.md +38 -3
- data/Rakefile +1 -0
- data/VERSION +2 -1
- data/genability.gemspec +46 -32
- data/lib/faraday/request/url_encoding_fix.rb +0 -1
- data/lib/genability/client.rb +6 -0
- data/lib/genability/client/calculate.rb +97 -0
- data/lib/genability/client/echo.rb +21 -0
- data/lib/genability/client/helpers.rb +2 -1
- data/lib/genability/client/load_serving_entity.rb +12 -11
- data/lib/genability/client/price.rb +1 -1
- data/lib/genability/client/property.rb +26 -0
- data/lib/genability/client/season.rb +1 -1
- data/lib/genability/client/tariff.rb +2 -2
- data/lib/genability/client/territory.rb +2 -2
- data/lib/genability/client/time_of_use.rb +3 -2
- data/lib/genability/client/zip_code.rb +1 -1
- data/lib/genability/configuration.rb +1 -2
- data/lib/genability/connection.rb +1 -5
- data/lib/genability/error.rb +4 -0
- data/lib/genability/request.rb +8 -1
- data/lib/mashie_extensions.rb +15 -4
- data/spec/cassettes/calculate.yml +55 -0
- data/spec/cassettes/echo.yml +57 -0
- data/spec/cassettes/load_serving_entities.yml +18 -18
- data/spec/cassettes/load_serving_entity.yml +2 -2
- data/spec/cassettes/prices.yml +6 -6
- data/spec/cassettes/properties.yml +55 -0
- data/spec/cassettes/property.yml +28 -0
- data/spec/cassettes/seasons.yml +2 -2
- data/spec/cassettes/tariff.yml +3 -3
- data/spec/cassettes/tariffs.yml +36 -9
- data/spec/cassettes/territories.yml +30 -3
- data/spec/cassettes/territory.yml +3 -3
- data/spec/cassettes/time_of_use.yml +5 -7
- data/spec/cassettes/time_of_uses.yml +3 -3
- data/spec/cassettes/zipcode.yml +2 -2
- data/spec/client/calculate_spec.rb +68 -0
- data/spec/client/echo_spec.rb +46 -0
- data/spec/client/helpers_spec.rb +34 -0
- data/spec/client/load_serving_entity_spec.rb +14 -5
- data/spec/client/property_spec.rb +45 -0
- data/spec/client/tariff_spec.rb +9 -1
- data/spec/client/territory_spec.rb +12 -1
- data/spec/client/time_of_use_spec.rb +2 -2
- data/spec/faraday/response_spec.rb +2 -2
- data/spec/genability_spec.rb +1 -1
- data/spec/spec_helper.rb +12 -8
- metadata +36 -13
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Genability::Client do
|
4
|
+
|
5
|
+
Genability::Configuration::VALID_FORMATS.each do |format|
|
6
|
+
|
7
|
+
context ".new(:format => '#{format}')" do
|
8
|
+
|
9
|
+
before(:all) do
|
10
|
+
@options = {:format => format}.merge(configuration_defaults)
|
11
|
+
@client = Genability::Client.new(@options)
|
12
|
+
@time = Time.now
|
13
|
+
end
|
14
|
+
|
15
|
+
# ISO 8601 date format with a syntax of:
|
16
|
+
# yyyy-MM-dd'T'HH:mm:ss.SSSZ
|
17
|
+
# ex. 2011-06-13T14:30:00.0-0700
|
18
|
+
# All fields must be specified even if they are zero. The .SSS
|
19
|
+
# are the milliseconds and the Z is the GMT time zone offset.
|
20
|
+
context ".format_to_iso8601" do
|
21
|
+
|
22
|
+
it "should format dates to ISO 8601" do
|
23
|
+
@client.send(:format_to_iso8601, @time).
|
24
|
+
should =~ /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{1,3}-\d{4}/
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
@@ -18,7 +18,7 @@ describe Genability::Client do
|
|
18
18
|
it "should return an array of load serving entities" do
|
19
19
|
lses = @client.load_serving_entities
|
20
20
|
lses.should be_an Array
|
21
|
-
lses.first.name.
|
21
|
+
lses.first.name.should_not be_nil
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should return 25 results by default" do
|
@@ -30,23 +30,32 @@ describe Genability::Client do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should accept a pageStart parameter" do
|
33
|
-
@client.load_serving_entities(:page => 2)
|
33
|
+
lses = @client.load_serving_entities(:page => 2)
|
34
|
+
lses.should be_an Array
|
35
|
+
lses.count.should == 25
|
36
|
+
lses.first.name.should_not be_nil
|
34
37
|
end
|
35
38
|
|
36
39
|
it "should accept a startsWithWildCard parameter" do
|
37
|
-
@client.load_serving_entities(:starts_with => 'In')
|
40
|
+
lses = @client.load_serving_entities(:starts_with => 'In')
|
41
|
+
lses.should_not be_empty
|
42
|
+
lses.each do |result|
|
38
43
|
result.name.should =~ /^In/
|
39
44
|
end
|
40
45
|
end
|
41
46
|
|
42
47
|
it "should accept an endsWithWildCard parameter" do
|
43
|
-
@client.load_serving_entities(:ends_with => 'Inc')
|
48
|
+
lses = @client.load_serving_entities(:ends_with => 'Inc')
|
49
|
+
lses.should_not be_empty
|
50
|
+
lses.each do |result|
|
44
51
|
result.name.should =~ /Inc$/
|
45
52
|
end
|
46
53
|
end
|
47
54
|
|
48
55
|
it "should accept a containsWildCard parameter" do
|
49
|
-
@client.load_serving_entities(:
|
56
|
+
lses = @client.load_serving_entities(:search_string => 'Energy')
|
57
|
+
lses.should_not be_empty
|
58
|
+
lses.each do |result|
|
50
59
|
result.name.should =~ /Energy/
|
51
60
|
end
|
52
61
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Genability::Client do
|
4
|
+
|
5
|
+
Genability::Configuration::VALID_FORMATS.each do |format|
|
6
|
+
|
7
|
+
context ".new(:format => '#{format}')" do
|
8
|
+
|
9
|
+
before(:all) do
|
10
|
+
@options = {:format => format}.merge(configuration_defaults)
|
11
|
+
@client = Genability::Client.new(@options)
|
12
|
+
end
|
13
|
+
|
14
|
+
context ".property" do
|
15
|
+
|
16
|
+
use_vcr_cassette "property"
|
17
|
+
|
18
|
+
it "should get a single property by key name" do
|
19
|
+
property = @client.property("connectionType")
|
20
|
+
property.key_name.should == "connectionType"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
context ".properties" do
|
26
|
+
|
27
|
+
use_vcr_cassette "properties"
|
28
|
+
|
29
|
+
it "should get a list of properties" do
|
30
|
+
properties = @client.properties
|
31
|
+
properties.first.display_name.should =~ /1000 kWh Block/
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should get a list of properties for a specific entity" do
|
35
|
+
properties = @client.properties(:entity_id => 734)
|
36
|
+
properties.first.entity_id.should == 734
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
data/spec/client/tariff_spec.rb
CHANGED
@@ -21,6 +21,12 @@ describe Genability::Client do
|
|
21
21
|
tariffs.first.tariff_id.should == 79
|
22
22
|
end
|
23
23
|
|
24
|
+
# this example also demonstrates searching within results
|
25
|
+
it "should allow searches by lse_id" do
|
26
|
+
tariffs = @client.tariffs(:lse_id => 734)
|
27
|
+
tariffs.select{|x| x['tariffCode'] == "E-7"}.first.tariff_code.should == "E-7"
|
28
|
+
end
|
29
|
+
|
24
30
|
it "should accept a string for customerClasses and tariffTypes parameters" do
|
25
31
|
@client.tariffs(:customer_classes => 'residential').each do |tariff|
|
26
32
|
tariff.customer_class.should =~ /RESIDENTIAL/
|
@@ -40,7 +46,9 @@ describe Genability::Client do
|
|
40
46
|
use_vcr_cassette "tariff"
|
41
47
|
|
42
48
|
it "should return a tariff" do
|
43
|
-
@client.tariff(512)
|
49
|
+
tariff = @client.tariff(512)
|
50
|
+
tariff.should be_a Hashie::Mash
|
51
|
+
tariff.tariff_id.should == 512
|
44
52
|
end
|
45
53
|
|
46
54
|
end
|
@@ -21,6 +21,15 @@ describe Genability::Client do
|
|
21
21
|
territories.first.territory_id.should == 807
|
22
22
|
end
|
23
23
|
|
24
|
+
it "should get the territory ID from a zipcode" do
|
25
|
+
territories = @client.territories(
|
26
|
+
:lse_id => 734,
|
27
|
+
:contains_item_type => 'ZIPCODE',
|
28
|
+
:contains_item_value => 94115,
|
29
|
+
:master_tariff_id => 522)
|
30
|
+
territories.first.territory_id.should == 3538
|
31
|
+
end
|
32
|
+
|
24
33
|
end
|
25
34
|
|
26
35
|
context ".territory" do
|
@@ -28,7 +37,9 @@ describe Genability::Client do
|
|
28
37
|
use_vcr_cassette "territory"
|
29
38
|
|
30
39
|
it "should return a territory" do
|
31
|
-
@client.territory(3539)
|
40
|
+
territory = @client.territory(3539)
|
41
|
+
territory.should be_a Hashie::Mash
|
42
|
+
territory.lse_id.should == 734
|
32
43
|
end
|
33
44
|
|
34
45
|
end
|
@@ -27,8 +27,8 @@ describe Genability::Client do
|
|
27
27
|
|
28
28
|
use_vcr_cassette "time_of_use"
|
29
29
|
|
30
|
-
it "should return a
|
31
|
-
intervals = @client.time_of_use_intervals(
|
30
|
+
it "should return the intervals for a given LSE and touGroupId" do
|
31
|
+
intervals = @client.time_of_use_intervals(734, 1)
|
32
32
|
intervals.should be_an Array
|
33
33
|
intervals.first.tou_group_id.should == 1
|
34
34
|
end
|
@@ -15,8 +15,8 @@ describe Faraday::Response do
|
|
15
15
|
}.each do |status, exception|
|
16
16
|
context "when HTTP status is #{status}" do
|
17
17
|
|
18
|
-
before do
|
19
|
-
stub_get('lses
|
18
|
+
before(:each) do
|
19
|
+
stub_get('public/lses?appId=ValidAppID&appKey=ValidAppKey').
|
20
20
|
to_return(:status => status)
|
21
21
|
end
|
22
22
|
|
data/spec/genability_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe "Genability" do
|
|
6
6
|
it { Genability::Configuration::DEFAULT_ADAPTER.should == :net_http }
|
7
7
|
it { Genability::Configuration::DEFAULT_APPLICATION_ID.should be_nil }
|
8
8
|
it { Genability::Configuration::DEFAULT_APPLICATION_KEY.should be_nil }
|
9
|
-
it { Genability::Configuration::DEFAULT_ENDPOINT.should == 'http://api.genability.com/rest/
|
9
|
+
it { Genability::Configuration::DEFAULT_ENDPOINT.should == 'http://api.genability.com/rest/' }
|
10
10
|
it { Genability::Configuration::DEFAULT_FORMAT.should == :json }
|
11
11
|
it { Genability::Configuration::DEFAULT_USER_AGENT.should == 'Genability API Ruby Gem' }
|
12
12
|
it { Genability::Configuration::DEFAULT_PROXY.should be_nil }
|
data/spec/spec_helper.rb
CHANGED
@@ -36,36 +36,40 @@ def configuration_defaults
|
|
36
36
|
CONFIGURATION_DEFAULTS
|
37
37
|
end
|
38
38
|
|
39
|
+
def genability_request_path(path)
|
40
|
+
Genability.endpoint + path
|
41
|
+
end
|
42
|
+
|
39
43
|
def a_delete(path)
|
40
|
-
a_request(:delete,
|
44
|
+
a_request(:delete, genability_request_path(path))
|
41
45
|
end
|
42
46
|
|
43
47
|
def a_get(path)
|
44
|
-
a_request(:get,
|
48
|
+
a_request(:get, genability_request_path(path))
|
45
49
|
end
|
46
50
|
|
47
51
|
def a_post(path)
|
48
|
-
a_request(:post,
|
52
|
+
a_request(:post, genability_request_path(path))
|
49
53
|
end
|
50
54
|
|
51
55
|
def a_put(path)
|
52
|
-
a_request(:put,
|
56
|
+
a_request(:put, genability_request_path(path))
|
53
57
|
end
|
54
58
|
|
55
59
|
def stub_delete(path)
|
56
|
-
stub_request(:delete,
|
60
|
+
stub_request(:delete, genability_request_path(path))
|
57
61
|
end
|
58
62
|
|
59
63
|
def stub_get(path)
|
60
|
-
stub_request(:get,
|
64
|
+
stub_request(:get, genability_request_path(path))
|
61
65
|
end
|
62
66
|
|
63
67
|
def stub_post(path)
|
64
|
-
stub_request(:post,
|
68
|
+
stub_request(:post, genability_request_path(path))
|
65
69
|
end
|
66
70
|
|
67
71
|
def stub_put(path)
|
68
|
-
stub_request(:put,
|
72
|
+
stub_request(:put, genability_request_path(path))
|
69
73
|
end
|
70
74
|
|
71
75
|
def fixture_path
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: genability
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Matthew Solt
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-10-26 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 0.7.4
|
24
24
|
type: :runtime
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 0.7.0
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
45
|
+
version: 1.2.0
|
46
46
|
type: :runtime
|
47
47
|
version_requirements: *id003
|
48
48
|
- !ruby/object:Gem::Dependency
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.0.
|
56
|
+
version: 1.0.3
|
57
57
|
type: :runtime
|
58
58
|
version_requirements: *id004
|
59
59
|
- !ruby/object:Gem::Dependency
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0.4
|
67
|
+
version: 0.6.4
|
68
68
|
type: :runtime
|
69
69
|
version_requirements: *id005
|
70
70
|
- !ruby/object:Gem::Dependency
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 2.
|
78
|
+
version: "2.7"
|
79
79
|
type: :development
|
80
80
|
version_requirements: *id006
|
81
81
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
requirements:
|
98
98
|
- - ~>
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: 1.0.
|
100
|
+
version: 1.0.7
|
101
101
|
type: :development
|
102
102
|
version_requirements: *id008
|
103
103
|
- !ruby/object:Gem::Dependency
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
requirements:
|
109
109
|
- - ~>
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 1.6.
|
111
|
+
version: 1.6.4
|
112
112
|
type: :development
|
113
113
|
version_requirements: *id009
|
114
114
|
- !ruby/object:Gem::Dependency
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 1.
|
133
|
+
version: 1.11.3
|
134
134
|
type: :development
|
135
135
|
version_requirements: *id011
|
136
136
|
- !ruby/object:Gem::Dependency
|
@@ -141,9 +141,20 @@ dependencies:
|
|
141
141
|
requirements:
|
142
142
|
- - ~>
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 1.
|
144
|
+
version: 1.7.4
|
145
145
|
type: :development
|
146
146
|
version_requirements: *id012
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: ruby-debug19
|
149
|
+
prerelease: false
|
150
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: "0"
|
156
|
+
type: :development
|
157
|
+
version_requirements: *id013
|
147
158
|
description: Ruby client for the Genability power pricing and related APIs - learn more at https://developer.genability.com
|
148
159
|
email: mattsolt@gmail.com
|
149
160
|
executables: []
|
@@ -170,9 +181,12 @@ files:
|
|
170
181
|
- lib/genability.rb
|
171
182
|
- lib/genability/api.rb
|
172
183
|
- lib/genability/client.rb
|
184
|
+
- lib/genability/client/calculate.rb
|
185
|
+
- lib/genability/client/echo.rb
|
173
186
|
- lib/genability/client/helpers.rb
|
174
187
|
- lib/genability/client/load_serving_entity.rb
|
175
188
|
- lib/genability/client/price.rb
|
189
|
+
- lib/genability/client/property.rb
|
176
190
|
- lib/genability/client/season.rb
|
177
191
|
- lib/genability/client/tariff.rb
|
178
192
|
- lib/genability/client/territory.rb
|
@@ -183,9 +197,13 @@ files:
|
|
183
197
|
- lib/genability/error.rb
|
184
198
|
- lib/genability/request.rb
|
185
199
|
- lib/mashie_extensions.rb
|
200
|
+
- spec/cassettes/calculate.yml
|
201
|
+
- spec/cassettes/echo.yml
|
186
202
|
- spec/cassettes/load_serving_entities.yml
|
187
203
|
- spec/cassettes/load_serving_entity.yml
|
188
204
|
- spec/cassettes/prices.yml
|
205
|
+
- spec/cassettes/properties.yml
|
206
|
+
- spec/cassettes/property.yml
|
189
207
|
- spec/cassettes/seasons.yml
|
190
208
|
- spec/cassettes/tariff.yml
|
191
209
|
- spec/cassettes/tariffs.yml
|
@@ -194,8 +212,12 @@ files:
|
|
194
212
|
- spec/cassettes/time_of_use.yml
|
195
213
|
- spec/cassettes/time_of_uses.yml
|
196
214
|
- spec/cassettes/zipcode.yml
|
215
|
+
- spec/client/calculate_spec.rb
|
216
|
+
- spec/client/echo_spec.rb
|
217
|
+
- spec/client/helpers_spec.rb
|
197
218
|
- spec/client/load_serving_entity_spec.rb
|
198
219
|
- spec/client/price_spec.rb
|
220
|
+
- spec/client/property_spec.rb
|
199
221
|
- spec/client/season_spec.rb
|
200
222
|
- spec/client/tariff_spec.rb
|
201
223
|
- spec/client/territory_spec.rb
|
@@ -228,9 +250,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
250
|
requirements: []
|
229
251
|
|
230
252
|
rubyforge_project:
|
231
|
-
rubygems_version: 1.8.
|
253
|
+
rubygems_version: 1.8.11
|
232
254
|
signing_key:
|
233
255
|
specification_version: 3
|
234
256
|
summary: Ruby client for the Genability API
|
235
257
|
test_files: []
|
236
258
|
|
259
|
+
has_rdoc:
|