Class: AWS

Inherits:
Fog::Bin show all
Defined in:
lib/fog/bin/aws.rb

Class Method Summary collapse

Methods inherited from Fog::Bin

available?, collections

Class Method Details

.[](service) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/fog/bin/aws.rb', line 28

def [](service)
  @@connections ||= Hash.new do |hash, key|
    hash[key] = case key
    when :cdn
      Fog::CDN.new(:provider => 'AWS')
    when :compute
      Fog::Compute.new(:provider => 'AWS')
    when :dns
      Fog::DNS.new(:provider => 'AWS')
    when :ec2
      location = caller.first
      warning = "[yellow][WARN] AWS[:ec2] is deprecated, use AWS[:compute] instead[/]"
      warning << " [light_black](" << location << ")[/] "
      Formatador.display_line(warning)
      Fog::Compute.new(:provider => 'AWS')
    when :elb
      Fog::AWS::ELB.new
    when :iam
      Fog::AWS::IAM.new
    when :eu_storage
      Fog::Storage.new(:provider => 'AWS', :region => 'eu-west-1')
    when :sdb
      Fog::AWS::SimpleDB.new
    when :s3
      location = caller.first
      warning = "[yellow][WARN] AWS[:s3] is deprecated, use AWS[:storage] instead[/]"
      warning << " [light_black](" << location << ")[/] "
      Formatador.display_line(warning)
      Fog::Storage.new(:provider => 'AWS')
    when :storage
      Fog::Storage.new(:provider => 'AWS')
    else
      raise ArgumentError, "Unrecognized service: #{service}"
    end
  end
  @@connections[service]
end

.class_for(key) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/bin/aws.rb', line 4

def class_for(key)
  case key
  when :cdn
    Fog::AWS::CDN
  when :compute, :ec2
    Fog::AWS::Compute
  when :dns
    Fog::AWS::DNS
  when :elb
    Fog::AWS::ELB
  when :iam
    Fog::AWS::IAM
  when :sdb
    Fog::AWS::SimpleDB
  when :eu_storage, :s3, :storage
    Fog::AWS::Storage
  else
    # @todo Replace most instances of ArgumentError with NotImplementedError
    # @todo For a list of widely supported Exceptions, see:
    # => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35
    raise ArgumentError, "Unsupported #{self} service: #{key}"
  end
end

.servicesObject



66
67
68
# File 'lib/fog/bin/aws.rb', line 66

def services
  [:cdn, :compute, :dns, :elb, :iam, :sdb, :storage]
end