lib/outliers/provider.rb
module Outliers
class Provider
attr_reader :account
def self.find_by_name(name)
Outliers::Providers.name_map.fetch name, nil
end
def self.exists?(name)
find_by_name(name) != nil
end
def self.connect_to(account)
provider_name = account.fetch 'provider'
if exists? provider_name
find_by_name(provider_name).new account
else
raise Outliers::Exceptions::UnknownProvider.new "Invalid provider '#{provider_name}'."
end
end
def self.to_human
(self.to_s.split('::') - ['Outliers', 'Providers']).map { |p| p.underscore }.join('_').downcase
end
def self.resources
Outliers::Resources.resources.select {|r| r.to_human =~ /^#{to_human}/}
end
def self.collections
Outliers::Resources.collections.select {|r| r.to_human =~ /^#{to_human}/}
end
def initialize(account)
@account = account
@logger = Outliers.logger
settings account.keys_to_sym
end
def logger
@logger
end
end
end