class RGovData::OdataService
This is the catalog class that describes an OData Service
Public Instance Methods
dataset_keys()
click to toggle source
Returns an array of DataSets (keys) for the service
# File lib/rgovdata/service/odata_service.rb, line 7 def dataset_keys # @dataset_keys ||= native_instance.classes.keys @dataset_keys ||= native_instance.instance_variable_get(:@collections) end
native_instance()
click to toggle source
Returns the native service object if applicable By default, returns self
# File lib/rgovdata/service/odata_service.rb, line 14 def native_instance @native_instance ||= load_service end
Protected Instance Methods
clear()
click to toggle source
Clears current state TODO: move to Dn?
# File lib/rgovdata/service/odata_service.rb, line 45 def clear @datasets = @dataset_keys = @native_instance = nil end
load_service()
click to toggle source
Identifies, loads, and returns the native service instance
# File lib/rgovdata/service/odata_service.rb, line 19 def load_service clear # currently forcing SSL verification off (seems to be required for projectnimbus) # TODO: this should probably be a setting in the ServiceListing rest_options = {:verify_ssl=>false} if credentialset && credentialset != 'projectnimbus' credentials = config.credentialsets[credentialset] # merge basic auth rest_options.merge!({ :username => credentials['username'], :password => credentials['password'] }) end svc = OData::Service.new(uri, rest_options) if credentialset && credentialset == 'projectnimbus' credentials = config.credentialsets[credentialset] # some special funk to insert headers for projectnimbus authentication actual_rest_options = svc.instance_variable_get(:@rest_options) rest_options = actual_rest_options.merge({:headers => { 'AccountKey' => credentials['AccountKey'], 'UniqueUserID' => credentials['UniqueUserID'] }}) svc.instance_variable_set(:@rest_options,rest_options) end svc end