7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/fog/core/services_mixin.rb', line 7
def new(attributes)
attributes = attributes.dup provider = attributes.delete(:provider).to_s.downcase.to_sym
provider_name = Fog.providers[provider]
raise ArgumentError, "#{provider} is not a recognized provider" unless providers.include?(provider)
require_service_provider_library(service_name.downcase, provider)
spc = service_provider_constant(service_name, provider_name)
spc.new(attributes)
rescue LoadError, NameError raise ArgumentError, "#{provider} has no #{service_name.downcase} service"
end
|