genability 0.1.0 → 0.2.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/.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
|