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
data/.document
CHANGED
data/Gemfile
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem "faraday", "~> 0.
|
4
|
-
gem "faraday_middleware", "~> 0.
|
5
|
-
gem "hashie", "~> 1.
|
6
|
-
gem "multi_json", "~> 1.0.
|
7
|
-
gem "chronic", "~> 0.4
|
3
|
+
gem "faraday", "~> 0.7.4"
|
4
|
+
gem "faraday_middleware", "~> 0.7.0"
|
5
|
+
gem "hashie", "~> 1.2.0"
|
6
|
+
gem "multi_json", "~> 1.0.3"
|
7
|
+
gem "chronic", "~> 0.6.4"
|
8
8
|
|
9
9
|
group :development do
|
10
|
-
gem "rspec", "~> 2.
|
10
|
+
gem "rspec", "~> 2.7"
|
11
11
|
gem "yard", "~> 0.7.0"
|
12
|
-
gem "bundler", "~> 1.0.
|
13
|
-
gem "jeweler", "~> 1.6.
|
12
|
+
gem "bundler", "~> 1.0.7"
|
13
|
+
gem "jeweler", "~> 1.6.4"
|
14
14
|
gem "simplecov", "~> 0.4"
|
15
|
-
gem "vcr", "~> 1.
|
16
|
-
gem "webmock", "~> 1.
|
15
|
+
gem "vcr", "~> 1.11.3"
|
16
|
+
gem "webmock", "~> 1.7.4"
|
17
|
+
gem 'ruby-debug19', :require => 'ruby-debug'
|
17
18
|
end
|
18
19
|
|
data/HISTORY.md
CHANGED
@@ -5,3 +5,11 @@ HISTORY
|
|
5
5
|
----------------------
|
6
6
|
* Initial Release
|
7
7
|
|
8
|
+
0.2.0 - October 26, 2011
|
9
|
+
----------------------
|
10
|
+
* Added Calculate API calls
|
11
|
+
* Added Echo and Property API helper calls
|
12
|
+
* Update Faraday and Faraday Middleware to 0.7 versions
|
13
|
+
* Added .to\_friendly\_hash method to Hashie::Mash to convert results to Ruby / Rails friendly attributes
|
14
|
+
* Continued improving test coverage
|
15
|
+
|
data/README.md
CHANGED
@@ -19,10 +19,22 @@ Usage Examples
|
|
19
19
|
client = Genability::Client.new(:application_id = 'ValidAppId', :application_key => 'ValidAppKey')
|
20
20
|
|
21
21
|
# Or use the block configuration method
|
22
|
+
# Useful for using in a Rails initializer
|
22
23
|
# register an app at https://developer.genability.com
|
23
24
|
Genability.configure do |config|
|
24
|
-
config.application_id
|
25
|
-
config.application_key
|
25
|
+
config.application_id = 'ValidAppId'
|
26
|
+
config.application_key = 'ValidAppKey'
|
27
|
+
end
|
28
|
+
|
29
|
+
# Advanced Configuration Options
|
30
|
+
Genability.configure do |config|
|
31
|
+
config.application_id = 'ValidAppId'
|
32
|
+
config.application_key = 'ValidAppKey'
|
33
|
+
config.adapter = :typhoeus
|
34
|
+
config.endpoint = "http://api.genability.com/rest/"
|
35
|
+
config.format = :json
|
36
|
+
config.user_agent = "Genability API Ruby Gem"
|
37
|
+
config.proxy = "http://127.0.0.1"
|
26
38
|
end
|
27
39
|
|
28
40
|
# Get a list of load serving entities
|
@@ -53,11 +65,34 @@ Usage Examples
|
|
53
65
|
Genability.time_of_uses(2756, 1)
|
54
66
|
|
55
67
|
# Get the intervals for the particular time of use group of a given load serving entity
|
56
|
-
Genability.time_of_use_intervals(
|
68
|
+
Genability.time_of_use_intervals(734, 1)
|
57
69
|
|
58
70
|
# Get information about a zipcode
|
59
71
|
Genability.zipcode('48322')
|
60
72
|
|
73
|
+
# Calculate the cost of electricity for a given rate plan
|
74
|
+
#
|
75
|
+
# First, get the caculation metadata necessary to run the calculation
|
76
|
+
metadata = Genability.calculate_metadata(
|
77
|
+
512, # Master Tariff ID
|
78
|
+
"Monday, September 1st, 2011", # From DateTime
|
79
|
+
"Monday, September 10th, 2011", # To DateTime
|
80
|
+
{ # Metadata Options
|
81
|
+
:connection_type => "Primary Connection",
|
82
|
+
:city_limits => "Inside"
|
83
|
+
}
|
84
|
+
)
|
85
|
+
|
86
|
+
# Then, run the calculation with the metadata you just received
|
87
|
+
result = Genability.calculate(
|
88
|
+
512, # Master Tariff ID
|
89
|
+
"Monday, September 1st, 2011", # From DateTime
|
90
|
+
"Monday, September 10th, 2011", # To DateTime
|
91
|
+
metadata # Metadata from previous call
|
92
|
+
)
|
93
|
+
result.total_cost # => 10.837
|
94
|
+
|
95
|
+
|
61
96
|
# Please see the documentation for available options and the tests for additional examples
|
62
97
|
|
63
98
|
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
2
|
+
|
data/genability.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{genability}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Matthew Solt}]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-10-26}
|
13
13
|
s.description = %q{Ruby client for the Genability power pricing and related APIs - learn more at https://developer.genability.com}
|
14
14
|
s.email = %q{mattsolt@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,9 +33,12 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/genability.rb",
|
34
34
|
"lib/genability/api.rb",
|
35
35
|
"lib/genability/client.rb",
|
36
|
+
"lib/genability/client/calculate.rb",
|
37
|
+
"lib/genability/client/echo.rb",
|
36
38
|
"lib/genability/client/helpers.rb",
|
37
39
|
"lib/genability/client/load_serving_entity.rb",
|
38
40
|
"lib/genability/client/price.rb",
|
41
|
+
"lib/genability/client/property.rb",
|
39
42
|
"lib/genability/client/season.rb",
|
40
43
|
"lib/genability/client/tariff.rb",
|
41
44
|
"lib/genability/client/territory.rb",
|
@@ -46,9 +49,13 @@ Gem::Specification.new do |s|
|
|
46
49
|
"lib/genability/error.rb",
|
47
50
|
"lib/genability/request.rb",
|
48
51
|
"lib/mashie_extensions.rb",
|
52
|
+
"spec/cassettes/calculate.yml",
|
53
|
+
"spec/cassettes/echo.yml",
|
49
54
|
"spec/cassettes/load_serving_entities.yml",
|
50
55
|
"spec/cassettes/load_serving_entity.yml",
|
51
56
|
"spec/cassettes/prices.yml",
|
57
|
+
"spec/cassettes/properties.yml",
|
58
|
+
"spec/cassettes/property.yml",
|
52
59
|
"spec/cassettes/seasons.yml",
|
53
60
|
"spec/cassettes/tariff.yml",
|
54
61
|
"spec/cassettes/tariffs.yml",
|
@@ -57,8 +64,12 @@ Gem::Specification.new do |s|
|
|
57
64
|
"spec/cassettes/time_of_use.yml",
|
58
65
|
"spec/cassettes/time_of_uses.yml",
|
59
66
|
"spec/cassettes/zipcode.yml",
|
67
|
+
"spec/client/calculate_spec.rb",
|
68
|
+
"spec/client/echo_spec.rb",
|
69
|
+
"spec/client/helpers_spec.rb",
|
60
70
|
"spec/client/load_serving_entity_spec.rb",
|
61
71
|
"spec/client/price_spec.rb",
|
72
|
+
"spec/client/property_spec.rb",
|
62
73
|
"spec/client/season_spec.rb",
|
63
74
|
"spec/client/tariff_spec.rb",
|
64
75
|
"spec/client/territory_spec.rb",
|
@@ -79,45 +90,48 @@ Gem::Specification.new do |s|
|
|
79
90
|
s.specification_version = 3
|
80
91
|
|
81
92
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
82
|
-
s.add_runtime_dependency(%q<faraday>, ["~> 0.
|
83
|
-
s.add_runtime_dependency(%q<faraday_middleware>, ["~> 0.
|
84
|
-
s.add_runtime_dependency(%q<hashie>, ["~> 1.
|
85
|
-
s.add_runtime_dependency(%q<multi_json>, ["~> 1.0.
|
86
|
-
s.add_runtime_dependency(%q<chronic>, ["~> 0.4
|
87
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.
|
93
|
+
s.add_runtime_dependency(%q<faraday>, ["~> 0.7.4"])
|
94
|
+
s.add_runtime_dependency(%q<faraday_middleware>, ["~> 0.7.0"])
|
95
|
+
s.add_runtime_dependency(%q<hashie>, ["~> 1.2.0"])
|
96
|
+
s.add_runtime_dependency(%q<multi_json>, ["~> 1.0.3"])
|
97
|
+
s.add_runtime_dependency(%q<chronic>, ["~> 0.6.4"])
|
98
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.7"])
|
88
99
|
s.add_development_dependency(%q<yard>, ["~> 0.7.0"])
|
89
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.
|
90
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.6.
|
100
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.7"])
|
101
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
91
102
|
s.add_development_dependency(%q<simplecov>, ["~> 0.4"])
|
92
|
-
s.add_development_dependency(%q<vcr>, ["~> 1.
|
93
|
-
s.add_development_dependency(%q<webmock>, ["~> 1.
|
103
|
+
s.add_development_dependency(%q<vcr>, ["~> 1.11.3"])
|
104
|
+
s.add_development_dependency(%q<webmock>, ["~> 1.7.4"])
|
105
|
+
s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
|
94
106
|
else
|
95
|
-
s.add_dependency(%q<faraday>, ["~> 0.
|
96
|
-
s.add_dependency(%q<faraday_middleware>, ["~> 0.
|
97
|
-
s.add_dependency(%q<hashie>, ["~> 1.
|
98
|
-
s.add_dependency(%q<multi_json>, ["~> 1.0.
|
99
|
-
s.add_dependency(%q<chronic>, ["~> 0.4
|
100
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
107
|
+
s.add_dependency(%q<faraday>, ["~> 0.7.4"])
|
108
|
+
s.add_dependency(%q<faraday_middleware>, ["~> 0.7.0"])
|
109
|
+
s.add_dependency(%q<hashie>, ["~> 1.2.0"])
|
110
|
+
s.add_dependency(%q<multi_json>, ["~> 1.0.3"])
|
111
|
+
s.add_dependency(%q<chronic>, ["~> 0.6.4"])
|
112
|
+
s.add_dependency(%q<rspec>, ["~> 2.7"])
|
101
113
|
s.add_dependency(%q<yard>, ["~> 0.7.0"])
|
102
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.
|
103
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.
|
114
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.7"])
|
115
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
104
116
|
s.add_dependency(%q<simplecov>, ["~> 0.4"])
|
105
|
-
s.add_dependency(%q<vcr>, ["~> 1.
|
106
|
-
s.add_dependency(%q<webmock>, ["~> 1.
|
117
|
+
s.add_dependency(%q<vcr>, ["~> 1.11.3"])
|
118
|
+
s.add_dependency(%q<webmock>, ["~> 1.7.4"])
|
119
|
+
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
107
120
|
end
|
108
121
|
else
|
109
|
-
s.add_dependency(%q<faraday>, ["~> 0.
|
110
|
-
s.add_dependency(%q<faraday_middleware>, ["~> 0.
|
111
|
-
s.add_dependency(%q<hashie>, ["~> 1.
|
112
|
-
s.add_dependency(%q<multi_json>, ["~> 1.0.
|
113
|
-
s.add_dependency(%q<chronic>, ["~> 0.4
|
114
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
122
|
+
s.add_dependency(%q<faraday>, ["~> 0.7.4"])
|
123
|
+
s.add_dependency(%q<faraday_middleware>, ["~> 0.7.0"])
|
124
|
+
s.add_dependency(%q<hashie>, ["~> 1.2.0"])
|
125
|
+
s.add_dependency(%q<multi_json>, ["~> 1.0.3"])
|
126
|
+
s.add_dependency(%q<chronic>, ["~> 0.6.4"])
|
127
|
+
s.add_dependency(%q<rspec>, ["~> 2.7"])
|
115
128
|
s.add_dependency(%q<yard>, ["~> 0.7.0"])
|
116
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.
|
117
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.
|
129
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.7"])
|
130
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
118
131
|
s.add_dependency(%q<simplecov>, ["~> 0.4"])
|
119
|
-
s.add_dependency(%q<vcr>, ["~> 1.
|
120
|
-
s.add_dependency(%q<webmock>, ["~> 1.
|
132
|
+
s.add_dependency(%q<vcr>, ["~> 1.11.3"])
|
133
|
+
s.add_dependency(%q<webmock>, ["~> 1.7.4"])
|
134
|
+
s.add_dependency(%q<ruby-debug19>, [">= 0"])
|
121
135
|
end
|
122
136
|
end
|
123
137
|
|
data/lib/genability/client.rb
CHANGED
@@ -2,8 +2,11 @@ module Genability
|
|
2
2
|
# Wrapper for the Genability REST API
|
3
3
|
class Client < API
|
4
4
|
require 'genability/client/helpers'
|
5
|
+
require 'genability/client/calculate'
|
6
|
+
require 'genability/client/echo'
|
5
7
|
require 'genability/client/load_serving_entity'
|
6
8
|
require 'genability/client/price'
|
9
|
+
require 'genability/client/property'
|
7
10
|
require 'genability/client/season'
|
8
11
|
require 'genability/client/tariff'
|
9
12
|
require 'genability/client/territory'
|
@@ -12,8 +15,11 @@ module Genability
|
|
12
15
|
|
13
16
|
include Genability::Client::Helpers
|
14
17
|
|
18
|
+
include Genability::Client::Calculate
|
19
|
+
include Genability::Client::Echo
|
15
20
|
include Genability::Client::LoadServingEntity
|
16
21
|
include Genability::Client::Price
|
22
|
+
include Genability::Client::Property
|
17
23
|
include Genability::Client::Season
|
18
24
|
include Genability::Client::Tariff
|
19
25
|
include Genability::Client::Territory
|
@@ -0,0 +1,97 @@
|
|
1
|
+
module Genability
|
2
|
+
class Client
|
3
|
+
# The Calculate service basically calculates the cost of electricity for a
|
4
|
+
# given rate/pricing plan. This can be used to calculate a bill, "what-if"
|
5
|
+
# different rates, levels of usage, energy efficiency measures or any other
|
6
|
+
# electrical activity. It gives a total cost for a period of time. (Note
|
7
|
+
# that if you want a price/rate for a specific point in time, then look at
|
8
|
+
# the Price service.)
|
9
|
+
module Calculate
|
10
|
+
|
11
|
+
# @overload calculate_metadata(tariff_id, from_date_time, to_date_time, options = {})
|
12
|
+
# Calling the URL as a HTTP GET will return the "inputs" required to accurately
|
13
|
+
# calculate the cost for a given period. It essentially gives you the meta-data
|
14
|
+
# for what to pass into the calculate method, and as such provides a template
|
15
|
+
# for the payload of the HTTP POST.
|
16
|
+
# @param tariff_id [Integer] Unique Genability ID (primary key) for a tariff.
|
17
|
+
# @param from_date_time [DateTime, String] Starting date and time for this Calculate request.
|
18
|
+
# In ISO 8601 format. Will attempt to use the Chronic gem to parse if a string is used.
|
19
|
+
# @param to_date_time [DateTime, String] End date and time for this Calculate request.
|
20
|
+
# In ISO 8601 format. Will attempt to use the Chronic gem to parse if a string is used.
|
21
|
+
# @param options [Hash] A customizable set of options.
|
22
|
+
# @option options [Integer] :territory_id The territory ID of where the usage consumption occurred. (Required for most CA tariffs.)
|
23
|
+
# @return [Array] Array of TariffInput for consumption.
|
24
|
+
# @example Return the inputs required to accurately calculate the cost for a given period
|
25
|
+
# Genability.calculate_metadata(512, "2011-06-16T19:00:00.0-0400", "2011-08-01T00:00:00.0-0400")
|
26
|
+
# @format :json
|
27
|
+
# @authenticated true
|
28
|
+
# @rate_limited true
|
29
|
+
# @see https://developer.genability.com/documentation/api-reference/pricing/calculate
|
30
|
+
def calculate_metadata(tariff_id, from, to, options = {})
|
31
|
+
get("beta/calculate/#{tariff_id}", calculate_meta_params(from, to, options)).results
|
32
|
+
end
|
33
|
+
|
34
|
+
# Calculate the cost of electricity for a given rate/pricing plan.
|
35
|
+
# @overload calculate(tariff_id, from_date_time, to_date_time, tariff_inputs, options = {})
|
36
|
+
# @see https://developer.genability.com/documentation/api-reference/pricing/calculate
|
37
|
+
def calculate(tariff_id, from, to, tariff_inputs, options = {})
|
38
|
+
post( "beta/calculate/#{tariff_id}",
|
39
|
+
calculate_params(from, to, tariff_inputs, options)
|
40
|
+
).results.first
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def calculate_params(from, to, tariff_inputs, options)
|
46
|
+
{
|
47
|
+
"fromDateTime" => format_to_iso8601(from),
|
48
|
+
"toDateTime" => format_to_iso8601(to),
|
49
|
+
"territoryId" => options[:territory_id],
|
50
|
+
"detailLevel" => options[:detail_level],
|
51
|
+
"tariffInputs" => tariff_input_params(tariff_inputs)
|
52
|
+
}.
|
53
|
+
delete_if{ |k,v| v.nil? }.
|
54
|
+
merge({ "appId" => application_id,
|
55
|
+
"appKey" => application_key }).
|
56
|
+
to_json
|
57
|
+
end
|
58
|
+
|
59
|
+
def tariff_input_params(tariff_inputs)
|
60
|
+
[].tap do |a|
|
61
|
+
case tariff_inputs
|
62
|
+
when Hash
|
63
|
+
a << convert_tariff_input_params(tariff_inputs)
|
64
|
+
when Array
|
65
|
+
tariff_inputs.each do |ti|
|
66
|
+
a << convert_tariff_input_params(ti)
|
67
|
+
end
|
68
|
+
else
|
69
|
+
raise Genability::InvalidTariffInput
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def convert_tariff_input_params(tariff_input)
|
75
|
+
return tariff_input.to_hash if tariff_input.is_a? Hashie::Mash
|
76
|
+
{
|
77
|
+
"keyName" => tariff_input[:key_name],
|
78
|
+
"fromDateTime" => tariff_input[:from],
|
79
|
+
"toDateTime" => tariff_input[:to],
|
80
|
+
"unit" => tariff_input[:unit]
|
81
|
+
}
|
82
|
+
end
|
83
|
+
|
84
|
+
def calculate_meta_params(from, to, options)
|
85
|
+
{
|
86
|
+
"fromDateTime" => format_to_iso8601(from),
|
87
|
+
"toDateTime" => format_to_iso8601(to),
|
88
|
+
"territoryId" => options[:territory_id],
|
89
|
+
"connectionType" => options[:connection_type],
|
90
|
+
"cityLimits" => options[:city_limits]
|
91
|
+
}.delete_if{ |k,v| v.nil? }
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Genability
|
2
|
+
class Client
|
3
|
+
|
4
|
+
module Echo
|
5
|
+
|
6
|
+
def credentials_valid?
|
7
|
+
get("echo").status == "success"
|
8
|
+
end
|
9
|
+
|
10
|
+
# def validate_date(date)
|
11
|
+
# get("echo/validatedate", {"dateToValidate" => date}).results.first
|
12
|
+
# end
|
13
|
+
|
14
|
+
def raise_error(error_code)
|
15
|
+
get("echo/errors/#{error_code}")
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'json'
|
1
2
|
require 'time'
|
2
3
|
require 'chronic'
|
3
4
|
|
@@ -20,7 +21,7 @@ module Genability
|
|
20
21
|
"true"
|
21
22
|
end
|
22
23
|
|
23
|
-
def multi_option_handler(value)
|
24
|
+
def multi_option_handler(value = nil)
|
24
25
|
return nil if value.nil?
|
25
26
|
if value.is_a?(Array)
|
26
27
|
value.collect{|x| x.upcase}.join(',')
|
@@ -17,9 +17,9 @@ module Genability
|
|
17
17
|
# @authenticated true
|
18
18
|
# @rate_limited true
|
19
19
|
# @param options [Hash] A customizable set of options.
|
20
|
+
# @option options [String] :search_string Phrase for searching the names of Load Serving Entities (Optional)
|
20
21
|
# @option options [String] :starts_with Indicates the search phrase should match the start of the name. (Optional)
|
21
22
|
# @option options [String] :ends_with Indicates the search phrase should match the end of the name. (Optional)
|
22
|
-
# @option options [String] :contains Indicates the search phrase should be somewhere in the middle of the name. (Optional)
|
23
23
|
# @option options [Integer] :page The page number to begin the result set from. If not specified, this will begin with the first result set. (Optional)
|
24
24
|
# @option options [Integer] :per_page The number of results to return. If not specified, this will return 25 results. (Optional)
|
25
25
|
# @return [Array] List of load serving entities.
|
@@ -30,16 +30,14 @@ module Genability
|
|
30
30
|
# Genability.load_serving_entities(:page => 2)
|
31
31
|
# @example Return only 10 load serving entities
|
32
32
|
# Genability.load_serving_entities(:per_page => 10)
|
33
|
-
# @example Search for load serving entities with the name 'Infinite'
|
34
|
-
# Genability.load_serving_entities(:search => 'Infinite')
|
35
33
|
# @example Search for load serving entities starting with the letters 'Ka'
|
36
34
|
# Genability.load_serving_entities(:starts_with => 'Ka')
|
37
35
|
# @example Search for load serving entities ending with the word 'Inc'
|
38
36
|
# Genability.load_serving_entities(:ends_with => 'Inc')
|
39
|
-
# @example Search for load serving entities with the word 'Energy'
|
40
|
-
# Genability.load_serving_entities(:
|
37
|
+
# @example Search for load serving entities with the word 'Energy'
|
38
|
+
# Genability.load_serving_entities(:search_string => 'Energy')
|
41
39
|
def load_serving_entities(options={})
|
42
|
-
get("lses", lses_params(options)).results
|
40
|
+
get("public/lses", lses_params(options)).results
|
43
41
|
end
|
44
42
|
|
45
43
|
alias :lses :load_serving_entities
|
@@ -55,7 +53,7 @@ module Genability
|
|
55
53
|
# @example Return the details for Georgia Power Co
|
56
54
|
# Genability.load_serving_entity(2756)
|
57
55
|
def load_serving_entity(load_serving_entity_id)
|
58
|
-
get("lses/#{load_serving_entity_id}").results.first
|
56
|
+
get("public/lses/#{load_serving_entity_id}").results.first
|
59
57
|
end
|
60
58
|
|
61
59
|
alias :lse :load_serving_entity
|
@@ -64,13 +62,16 @@ module Genability
|
|
64
62
|
|
65
63
|
def lses_params(options)
|
66
64
|
{
|
67
|
-
'
|
68
|
-
'
|
69
|
-
'
|
70
|
-
'containsWildCard' => convert_to_boolean(options[:contains])
|
65
|
+
'searchString' => search_string(options),
|
66
|
+
'startsWith' => convert_to_boolean(options[:starts_with]),
|
67
|
+
'endsWith' => convert_to_boolean(options[:ends_with])
|
71
68
|
}.delete_if{ |k,v| v.nil? }.merge( pagination_params(options) )
|
72
69
|
end
|
73
70
|
|
71
|
+
def search_string(options)
|
72
|
+
options[:search_string] || options[:contains] || options[:starts_with] || options[:ends_with]
|
73
|
+
end
|
74
|
+
|
74
75
|
end
|
75
76
|
end
|
76
77
|
end
|