class GreenButtonData::Client
Attributes
configuration[RW]
ssl[RW]
token[RW]
Public Class Methods
new(config)
click to toggle source
# File lib/green-button-data/client.rb, line 7 def initialize(config) @configuration = GreenButtonData::Configuration.new config.each do |key, value| if @configuration.respond_to? "#{key}=" @configuration.send "#{key}=", value end end end
Public Instance Methods
application_information(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 17 def application_information(id = nil, options = {}) if id.is_a? Hash options = id id = nil end get_resource( @configuration.application_information_url(id), id, ApplicationInformation, options ) end
interval_block(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 45 def interval_block(id = nil, options = {}) if id.is_a? Hash options = id id = nil end id ||= options[:interval_block_id] meter_reading_id = options[:meter_reading_id] usage_point_id = options[:usage_point_id] subscription_id = options[:subscription_id] get_resource( @configuration.interval_block_url( interval_block_id: id, meter_reading_id: meter_reading_id, usage_point_id: usage_point_id, subscription_id: subscription_id ), id, IntervalBlock, sanitize_options(options) ) end
interval_block_bulk(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 195 def interval_block_bulk(id = nil, options = {}) if id.is_a? Hash options = id id = nil end subscription_id = options[:subscription_id] bulk_file_id = options[:bulk_file_id] get_resource( @configuration.bulk_url( subscription_id: subscription_id, bulk_file_id: bulk_file_id ), id, IntervalBlock, sanitize_options(options) ) end
local_time_parameters(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 69 def local_time_parameters(id = nil, options = {}) if id.is_a? Hash options = id id = nil end get_resource( @configuration.local_time_parameters_url(id), id, LocalTimeParameters, sanitize_options(options) ) end
meter_reading(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 83 def meter_reading(id = nil, options = {}) if id.is_a? Hash options = id id = nil end id ||= options[:meter_reading_id] usage_point_id = options[:usage_point_id] subscription_id = options[:subscription_id] get_resource( @configuration.meter_reading_url( meter_reading_id: id, usage_point_id: usage_point_id, subscription_id: subscription_id ), id, MeterReading, sanitize_options(options) ) end
reading_type(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 105 def reading_type(id = nil, options = {}) if id.is_a? Hash options = id id = nil end get_resource( @configuration.reading_type_url(id), id, ReadingType, sanitize_options(options) ) end
retail_customer(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 177 def retail_customer(id = nil, options = {}) if id.is_a? Hash options = id id = nil end retail_customer_id = options[:subscription_id] get_resource( @configuration.retail_customer_url( subscription_id: retail_customer_id ), id, RetailCustomer, sanitize_options(options) ) end
retail_customer_bulk(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 235 def retail_customer_bulk(id = nil, options = {}) if id.is_a? Hash options = id id = nil end subscription_id = options[:subscription_id] bulk_file_id = options[:bulk_file_id] get_resource( @configuration.bulk_url( subscription_id: subscription_id, bulk_file_id: bulk_file_id ), id, RetailCustomer, sanitize_options(options) ) end
ssl=(ssl)
click to toggle source
# File lib/green-button-data/client.rb, line 119 def ssl=(ssl) ssl == nil || ssl.is_a?(Hash) or raise ArgumentError.new( "SSL options attribute must be a Hash" ) @ssl = ssl end
token=(token)
click to toggle source
# File lib/green-button-data/client.rb, line 127 def token=(token) token == nil || token.is_a?(String) or raise ArgumentError.new( "Request token must be a string" ) @token = token end
usage_point(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 135 def usage_point(id = nil, options = {}) if id.is_a? Hash options = id id = nil end id ||= options[:usage_point_id] subscription_id = options[:subscription_id] get_resource( @configuration.usage_point_url( usage_point_id: id, subscription_id: subscription_id ), id, UsagePoint, sanitize_options(options) ) end
usage_summary(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 155 def usage_summary(id = nil, options = {}) if id.is_a? Hash options = id id = nil end id ||= options[:usage_summary_id] usage_point_id = options[:usage_point_id] subscription_id = options[:subscription_id] get_resource( @configuration.usage_summary_url( usage_summary_id: id, usage_point_id: usage_point_id, subscription_id: subscription_id ), id, UsageSummary, sanitize_options(options) ) end
usage_summary_bulk(id = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 215 def usage_summary_bulk(id = nil, options = {}) if id.is_a? Hash options = id id = nil end subscription_id = options[:subscription_id] bulk_file_id = options[:bulk_file_id] get_resource( @configuration.bulk_url( subscription_id: subscription_id, bulk_file_id: bulk_file_id ), id, UsageSummary, sanitize_options(options) ) end
Private Instance Methods
get_resource(url, id = nil, klazz = nil, options = {})
click to toggle source
# File lib/green-button-data/client.rb, line 257 def get_resource(url, id = nil, klazz = nil, options = {}) klazz ||= Entry.class_from_name Entry.class_name_from_url url # Merge request options options[:token] ||= token if token options[:ssl] ||= ssl if ssl if id klazz.find url, options else klazz.all url, options end end
sanitize_options(options)
click to toggle source
# File lib/green-button-data/client.rb, line 271 def sanitize_options(options) options.delete(:interval_block_id) if options.has_key? :interval_block_id options.delete(:meter_reading_id) if options.has_key? :meter_reading_id options.delete(:subscription_id) if options.has_key? :subscription_id options.delete(:usage_point_id) if options.has_key? :usage_point_id options.delete(:usage_summary_id) if options.has_key? :usage_summary_id options.delete(:bulk_file_id) if options.has_key? :bulk_file_id options end