class BeaApi::Client
> BeaApi::Client
¶ ↑
client#initialize method takes an api_key
Attributes
api_key[R]
datasets[R]
Public Class Methods
new(api_key)
click to toggle source
# File lib/bea_api/client.rb, line 12 def initialize(api_key) fail ArgumentError, 'You must set an api_key.' unless api_key _validate_api_key(api_key) end
Public Instance Methods
get_data(dataset, fields)
click to toggle source
# File lib/bea_api/client.rb, line 32 def get_data(dataset, fields) fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset) fail ArgumentError, 'Invalid fields.' unless fields.class == Hash && !fields.empty? _method(dataset, 'GetData', fields) end
get_datasets()
click to toggle source
# File lib/bea_api/client.rb, line 17 def get_datasets() _method(nil, 'GetDataSetList', {}) end
get_parameter_values(dataset, parameter)
click to toggle source
# File lib/bea_api/client.rb, line 26 def get_parameter_values(dataset, parameter) fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset) fail ArgumentError, 'Invalid parameter name.' unless parameter _method(dataset, 'GetParameterValues', {parametername: parameter}) end
get_parameters(dataset)
click to toggle source
# File lib/bea_api/client.rb, line 21 def get_parameters(dataset) fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset) _method(dataset, 'GetParameterList', {}) end
Protected Instance Methods
_method(dataset, method, options)
click to toggle source
# File lib/bea_api/client.rb, line 44 def _method(dataset, method, options) fail ArgumentError, 'You must include a dataset.' unless dataset || method.downcase == 'getdatasetlist' options.merge!(userid: @api_key, datasetname: dataset, method: method.downcase) Request.find(options) end
_validate_api_key(api_key)
click to toggle source
# File lib/bea_api/client.rb, line 39 def _validate_api_key(api_key) @api_key = api_key response = get_datasets() end