Class: Fog::AWS::ServiceMapper Private

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/aws/service_mapper.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

This is a temporary lookup helper for extracting into external module.

Cleaner provider/service registration will replace this code.

Class Method Summary collapse

Class Method Details

.[](service) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/fog/aws/service_mapper.rb', line 64

def self.[](service)
  @@connections ||= Hash.new do |hash, key|
    hash[key] = case key
                  when :auto_scaling
                    Fog::AWS::AutoScaling.new
                  when :beanstalk
                    Fog::AWS::ElasticBeanstalk.new
                  when :cdn
                    Fog::Logger.warning("AWS[:cdn] is not recommended, use CDN[:aws] for portability")
                    Fog::CDN.new(:provider => 'AWS')
                  when :cloud_formation
                    Fog::AWS::CloudFormation.new
                  when :cloud_watch
                    Fog::AWS::CloudWatch.new
                  when :compute
                    Fog::Logger.warning("AWS[:compute] is not recommended, use Compute[:aws] for portability")
                    Fog::Compute.new(:provider => 'AWS')
                  when :data_pipeline
                    Fog::AWS::DataPipeline.new
                  when :ddb, :dynamodb
                    Fog::AWS::DynamoDB.new
                  when :dns
                    Fog::Logger.warning("AWS[:dns] is not recommended, use DNS[:aws] for portability")
                    Fog::DNS.new(:provider => 'AWS')
                  when :elasticache
                    Fog::AWS::Elasticache.new
                  when :elb
                    Fog::AWS::ELB.new
                  when :emr
                    Fog::AWS::EMR.new
                  when :glacier
                    Fog::AWS::Glacier.new
                  when :iam
                    Fog::AWS::IAM.new
                  when :redshift
                    Fog::AWS::Redshift.new
                  when :rds
                    Fog::AWS::RDS.new
                  when :eu_storage
                    Fog::Storage.new(:provider => 'AWS', :region => 'eu-west-1')
                  when :sdb, :simpledb
                    Fog::AWS::SimpleDB.new
                  when :ses
                    Fog::AWS::SES.new
                  when :sqs
                    Fog::AWS::SQS.new
                  when :storage
                    Fog::Logger.warning("AWS[:storage] is not recommended, use Storage[:aws] for portability")
                    Fog::Storage.new(:provider => 'AWS')
                  when :sns
                    Fog::AWS::SNS.new
                  when :sts
                    Fog::AWS::STS.new
                  else
                    raise ArgumentError, "Unrecognized service: #{key.inspect}"
                end
  end
  @@connections[service]
end

.class_for(key) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
# File 'lib/fog/aws/service_mapper.rb', line 10

def self.class_for(key)
  case key
    when :auto_scaling
      Fog::AWS::AutoScaling
    when :beanstalk
      Fog::AWS::ElasticBeanstalk
    when :cdn
      Fog::AWS::CDN
    when :cloud_formation
      Fog::AWS::CloudFormation
    when :cloud_watch
      Fog::AWS::CloudWatch
    when :compute
      Fog::AWS::Compute
    when :data_pipeline
      Fog::AWS::DataPipeline
    when :ddb, :dynamodb
      Fog::AWS::DynamoDB
    when :dns
      Fog::AWS::DNS
    when :elasticache
      Fog::AWS::Elasticache
    when :elb
      Fog::AWS::ELB
    when :emr
      Fog::AWS::EMR
    when :glacier
      Fog::AWS::Glacier
    when :iam
      Fog::AWS::IAM
    when :redshift
      Fog::AWS::Redshift
    when :sdb, :simpledb
      Fog::AWS::SimpleDB
    when :ses
      Fog::AWS::SES
    when :sqs
      Fog::AWS::SQS
    when :eu_storage, :storage
      Fog::AWS::Storage
    when :rds
      Fog::AWS::RDS
    when :sns
      Fog::AWS::SNS
    when :sts
      Fog::AWS::STS
    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

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



124
125
126
# File 'lib/fog/aws/service_mapper.rb', line 124

def self.services
  Fog::AWS.services
end