diff --git a/lib/fog/bin.rb b/lib/fog/bin.rb index daade13173..d0292a52d4 100644 --- a/lib/fog/bin.rb +++ b/lib/fog/bin.rb @@ -4,7 +4,7 @@ module Fog class << self def available_providers - @available_providers ||= @providers.select {|provider| Kernel.const_get(provider).available?}.sort + @available_providers ||= Fog.providers.values.select {|provider| Kernel.const_get(provider).available?}.sort end end diff --git a/lib/fog/core/provider.rb b/lib/fog/core/provider.rb index 9c0c1b716d..b345bbc48d 100644 --- a/lib/fog/core/provider.rb +++ b/lib/fog/core/provider.rb @@ -1,7 +1,7 @@ module Fog def self.providers - @providers ||= [] + @providers ||= {} end def self.providers=(new_providers) @@ -11,7 +11,8 @@ def self.providers=(new_providers) module Provider def self.extended(base) - Fog.providers |= [base.to_s.split('::').last] + provider = base.to_s.split('::').last + Fog.providers[provider.downcase.to_sym] = provider end def [](service_key)