module Aerosol::AWS
This module holds the connections for all AWS
services used by the gem.
Public Instance Methods
creds()
click to toggle source
# File lib/aerosol/aws.rb, line 40 def creds Hash[env_attrs.map { |attr| [attr, public_send(attr)] }].reject { |k, v| v.nil? } end
env_attr(*names)
click to toggle source
# File lib/aerosol/aws.rb, line 21 def env_attr(*names) names.each do |name| define_method name do instance_variable_get(:"@#{name}") || ENV[name.to_s.upcase] end define_method :"#{name}=" do |val| reset_cache! instance_variable_set(:"@#{name}", val) end env_attrs << name end end
env_attrs()
click to toggle source
# File lib/aerosol/aws.rb, line 36 def env_attrs @env_attrs ||= [] end
reset_cache!()
click to toggle source
# File lib/aerosol/aws.rb, line 44 def reset_cache! services.each { |service| instance_variable_set(:"@#{service}", nil) } end
service(name, klass)
click to toggle source
# File lib/aerosol/aws.rb, line 5 def service(name, klass) define_method name do if val = instance_variable_get(:"@#{name}") val else instance = klass.new(creds) instance_variable_set(:"@#{name}", instance) end end services << name end
services()
click to toggle source
# File lib/aerosol/aws.rb, line 17 def services @services ||= [] end