aws-sdk 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. data/ca-bundle.crt +2 -348
  2. data/lib/aws.rb +24 -49
  3. data/lib/aws/{common.rb → core.rb} +120 -9
  4. data/lib/aws/{api_config.rb → core/api_config.rb} +19 -20
  5. data/lib/aws/core/api_config_transform.rb +36 -0
  6. data/lib/aws/core/async_handle.rb +91 -0
  7. data/lib/aws/core/authorize_v2.rb +39 -0
  8. data/lib/aws/{authorize_v3.rb → core/authorize_v3.rb} +16 -15
  9. data/lib/aws/{api_config_transform.rb → core/authorize_with_session_token.rb} +9 -12
  10. data/lib/aws/core/autoloader.rb +64 -0
  11. data/lib/aws/core/cacheable.rb +78 -0
  12. data/lib/aws/core/client.rb +471 -0
  13. data/lib/aws/core/client_logging.rb +125 -0
  14. data/lib/aws/core/collections.rb +229 -0
  15. data/lib/aws/core/configuration.rb +358 -0
  16. data/lib/aws/core/configured_client_methods.rb +76 -0
  17. data/lib/aws/core/configured_grammars.rb +63 -0
  18. data/lib/aws/{configured_option_grammars.rb → core/configured_option_grammars.rb} +18 -20
  19. data/lib/aws/{configured_xml_grammars.rb → core/configured_xml_grammars.rb} +19 -21
  20. data/lib/aws/core/default_signer.rb +67 -0
  21. data/lib/aws/core/http/curb_handler.rb +129 -0
  22. data/lib/aws/core/http/handler.rb +77 -0
  23. data/lib/aws/core/http/httparty_handler.rb +113 -0
  24. data/lib/aws/core/http/net_http_handler.rb +124 -0
  25. data/lib/aws/core/http/request.rb +207 -0
  26. data/lib/aws/core/http/response.rb +73 -0
  27. data/lib/aws/{ignore_result_element.rb → core/ignore_result_element.rb} +14 -18
  28. data/lib/aws/core/indifferent_hash.rb +88 -0
  29. data/lib/aws/core/inflection.rb +47 -0
  30. data/lib/aws/core/lazy_error_classes.rb +62 -0
  31. data/lib/aws/{uri_escape.rb → core/meta_utils.rb} +24 -23
  32. data/lib/aws/core/model.rb +57 -0
  33. data/lib/aws/{authorize_with_session_token.rb → core/naming.rb} +9 -8
  34. data/lib/aws/core/option_grammar.rb +562 -0
  35. data/lib/aws/core/policy.rb +914 -0
  36. data/lib/aws/core/resource.rb +380 -0
  37. data/lib/aws/core/resource_cache.rb +40 -0
  38. data/lib/aws/core/response.rb +125 -0
  39. data/lib/aws/core/response_cache.rb +50 -0
  40. data/lib/aws/core/service_interface.rb +60 -0
  41. data/lib/aws/core/uri_escape.rb +46 -0
  42. data/lib/aws/core/xml_grammar.rb +926 -0
  43. data/lib/aws/ec2.rb +47 -16
  44. data/lib/aws/ec2/attachment.rb +0 -2
  45. data/lib/aws/ec2/attachment_collection.rb +1 -6
  46. data/lib/aws/ec2/availability_zone.rb +0 -2
  47. data/lib/aws/ec2/availability_zone_collection.rb +0 -3
  48. data/lib/aws/ec2/client.rb +6 -9
  49. data/lib/aws/ec2/client/xml.rb +3 -6
  50. data/lib/aws/ec2/collection.rb +1 -4
  51. data/lib/aws/ec2/config.rb +18 -0
  52. data/lib/aws/ec2/elastic_ip.rb +0 -2
  53. data/lib/aws/ec2/elastic_ip_collection.rb +0 -4
  54. data/lib/aws/ec2/errors.rb +1 -4
  55. data/lib/aws/ec2/has_permissions.rb +0 -2
  56. data/lib/aws/ec2/image.rb +0 -5
  57. data/lib/aws/ec2/image_collection.rb +0 -6
  58. data/lib/aws/ec2/instance.rb +23 -9
  59. data/lib/aws/ec2/instance_collection.rb +85 -22
  60. data/lib/aws/ec2/key_pair.rb +0 -2
  61. data/lib/aws/ec2/key_pair_collection.rb +1 -4
  62. data/lib/aws/ec2/permission_collection.rb +2 -5
  63. data/lib/aws/ec2/region.rb +0 -2
  64. data/lib/aws/ec2/region_collection.rb +0 -4
  65. data/lib/aws/ec2/request.rb +4 -9
  66. data/lib/aws/ec2/reserved_instances.rb +0 -3
  67. data/lib/aws/ec2/reserved_instances_collection.rb +0 -4
  68. data/lib/aws/ec2/reserved_instances_offering.rb +0 -3
  69. data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -4
  70. data/lib/aws/ec2/resource.rb +3 -5
  71. data/lib/aws/ec2/resource_tag_collection.rb +1 -6
  72. data/lib/aws/ec2/security_group.rb +204 -72
  73. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +53 -0
  74. data/lib/aws/ec2/security_group/ip_permission.rb +92 -10
  75. data/lib/aws/ec2/security_group/ip_permission_collection.rb +14 -15
  76. data/lib/aws/ec2/security_group_collection.rb +11 -8
  77. data/lib/aws/ec2/snapshot.rb +0 -4
  78. data/lib/aws/ec2/snapshot_collection.rb +0 -4
  79. data/lib/aws/ec2/tag.rb +0 -3
  80. data/lib/aws/ec2/tag_collection.rb +1 -8
  81. data/lib/aws/ec2/tagged_item.rb +1 -3
  82. data/lib/aws/ec2/volume.rb +0 -6
  83. data/lib/aws/ec2/volume_collection.rb +0 -4
  84. data/lib/aws/errors.rb +0 -3
  85. data/lib/aws/iam.rb +33 -12
  86. data/lib/aws/iam/access_key.rb +0 -3
  87. data/lib/aws/iam/access_key_collection.rb +0 -3
  88. data/lib/aws/iam/account_alias_collection.rb +0 -2
  89. data/lib/aws/iam/client.rb +6 -8
  90. data/lib/aws/iam/client/xml.rb +4 -8
  91. data/lib/aws/iam/collection.rb +2 -5
  92. data/lib/aws/iam/config.rb +18 -0
  93. data/lib/aws/iam/errors.rb +2 -4
  94. data/lib/aws/iam/group.rb +0 -5
  95. data/lib/aws/iam/group_collection.rb +0 -3
  96. data/lib/aws/iam/group_policy_collection.rb +0 -2
  97. data/lib/aws/iam/group_user_collection.rb +1 -4
  98. data/lib/aws/iam/login_profile.rb +0 -2
  99. data/lib/aws/iam/mfa_device.rb +1 -3
  100. data/lib/aws/iam/mfa_device_collection.rb +0 -3
  101. data/lib/aws/iam/policy.rb +2 -4
  102. data/lib/aws/iam/policy_collection.rb +0 -3
  103. data/lib/aws/iam/request.rb +3 -7
  104. data/lib/aws/iam/resource.rb +1 -4
  105. data/lib/aws/iam/server_certificate.rb +0 -2
  106. data/lib/aws/iam/server_certificate_collection.rb +0 -3
  107. data/lib/aws/iam/signing_certificate.rb +0 -2
  108. data/lib/aws/iam/signing_certificate_collection.rb +0 -3
  109. data/lib/aws/iam/user.rb +0 -7
  110. data/lib/aws/iam/user_collection.rb +0 -3
  111. data/lib/aws/iam/user_group_collection.rb +0 -3
  112. data/lib/aws/iam/user_policy.rb +0 -2
  113. data/lib/aws/iam/user_policy_collection.rb +0 -3
  114. data/lib/aws/rails.rb +5 -4
  115. data/lib/aws/record.rb +4 -1
  116. data/lib/aws/record/base.rb +3 -2
  117. data/lib/aws/record/errors.rb +1 -3
  118. data/lib/aws/s3.rb +31 -6
  119. data/lib/aws/s3/access_control_list.rb +0 -2
  120. data/lib/aws/s3/acl_object.rb +10 -12
  121. data/lib/aws/s3/bucket.rb +1 -9
  122. data/lib/aws/s3/bucket_collection.rb +2 -5
  123. data/lib/aws/s3/bucket_version_collection.rb +1 -5
  124. data/lib/aws/s3/client.rb +34 -37
  125. data/lib/aws/s3/client/xml.rb +11 -14
  126. data/lib/aws/{resource_cache.rb → s3/config.rb} +6 -20
  127. data/lib/aws/s3/errors.rb +6 -7
  128. data/lib/aws/s3/multipart_upload.rb +1 -4
  129. data/lib/aws/s3/multipart_upload_collection.rb +1 -6
  130. data/lib/aws/s3/object_collection.rb +1 -5
  131. data/lib/aws/s3/object_metadata.rb +1 -3
  132. data/lib/aws/s3/object_upload_collection.rb +1 -7
  133. data/lib/aws/s3/object_version.rb +1 -4
  134. data/lib/aws/s3/object_version_collection.rb +1 -4
  135. data/lib/aws/s3/policy.rb +3 -5
  136. data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -2
  137. data/lib/aws/s3/prefixed_collection.rb +0 -2
  138. data/lib/aws/s3/presigned_post.rb +1 -3
  139. data/lib/aws/s3/request.rb +2 -5
  140. data/lib/aws/s3/s3_object.rb +1 -8
  141. data/lib/aws/s3/tree.rb +8 -6
  142. data/lib/aws/s3/tree/branch_node.rb +0 -3
  143. data/lib/aws/s3/tree/child_collection.rb +1 -5
  144. data/lib/aws/s3/tree/leaf_node.rb +0 -5
  145. data/lib/aws/s3/tree/parent.rb +1 -4
  146. data/lib/aws/s3/uploaded_part.rb +1 -3
  147. data/lib/aws/s3/uploaded_part_collection.rb +1 -5
  148. data/lib/aws/simple_db.rb +21 -6
  149. data/lib/aws/simple_db/attribute.rb +1 -6
  150. data/lib/aws/simple_db/attribute_collection.rb +1 -7
  151. data/lib/aws/simple_db/client.rb +7 -9
  152. data/lib/aws/simple_db/client/options.rb +2 -4
  153. data/lib/aws/simple_db/client/xml.rb +5 -10
  154. data/lib/aws/{naming.rb → simple_db/config.rb} +3 -14
  155. data/lib/aws/simple_db/delete_attributes.rb +0 -2
  156. data/lib/aws/simple_db/domain.rb +1 -6
  157. data/lib/aws/simple_db/domain_collection.rb +1 -4
  158. data/lib/aws/simple_db/domain_metadata.rb +1 -3
  159. data/lib/aws/simple_db/errors.rb +1 -4
  160. data/lib/aws/simple_db/item.rb +1 -7
  161. data/lib/aws/simple_db/item_collection.rb +22 -23
  162. data/lib/aws/simple_db/put_attributes.rb +0 -2
  163. data/lib/aws/simple_db/request.rb +3 -7
  164. data/lib/aws/simple_email_service.rb +11 -6
  165. data/lib/aws/simple_email_service/client.rb +7 -9
  166. data/lib/aws/simple_email_service/client/options.rb +3 -6
  167. data/lib/aws/simple_email_service/client/xml.rb +4 -8
  168. data/lib/aws/simple_email_service/config.rb +19 -0
  169. data/lib/aws/simple_email_service/email_address_collection.rb +1 -3
  170. data/lib/aws/simple_email_service/errors.rb +1 -4
  171. data/lib/aws/simple_email_service/quotas.rb +1 -3
  172. data/lib/aws/simple_email_service/request.rb +3 -7
  173. data/lib/aws/sns.rb +15 -8
  174. data/lib/aws/sns/client.rb +7 -8
  175. data/lib/aws/sns/client/options.rb +3 -6
  176. data/lib/aws/sns/client/xml.rb +4 -8
  177. data/lib/aws/sns/config.rb +18 -0
  178. data/lib/aws/sns/errors.rb +1 -4
  179. data/lib/aws/sns/policy.rb +3 -5
  180. data/lib/aws/sns/request.rb +4 -9
  181. data/lib/aws/sns/subscription.rb +1 -5
  182. data/lib/aws/sns/subscription_collection.rb +1 -5
  183. data/lib/aws/sns/topic.rb +1 -6
  184. data/lib/aws/sns/topic_collection.rb +1 -4
  185. data/lib/aws/sns/topic_subscription_collection.rb +1 -4
  186. data/lib/aws/sqs.rb +14 -5
  187. data/lib/aws/sqs/client.rb +6 -9
  188. data/lib/aws/sqs/client/xml.rb +4 -7
  189. data/lib/aws/sqs/config.rb +18 -0
  190. data/lib/aws/sqs/errors.rb +1 -4
  191. data/lib/aws/sqs/policy.rb +3 -5
  192. data/lib/aws/sqs/queue.rb +2 -7
  193. data/lib/aws/sqs/queue_collection.rb +4 -5
  194. data/lib/aws/sqs/received_message.rb +1 -3
  195. data/lib/aws/sqs/received_sns_message.rb +2 -2
  196. data/lib/aws/sqs/request.rb +4 -7
  197. data/lib/aws/sts.rb +12 -6
  198. data/lib/aws/sts/client.rb +6 -8
  199. data/lib/aws/sts/client/xml.rb +4 -8
  200. data/lib/aws/sts/config.rb +18 -0
  201. data/lib/aws/sts/errors.rb +1 -4
  202. data/lib/aws/sts/federated_session.rb +0 -2
  203. data/lib/aws/sts/policy.rb +3 -5
  204. data/lib/aws/sts/request.rb +3 -7
  205. metadata +60 -50
  206. data/lib/aws/async_handle.rb +0 -90
  207. data/lib/aws/authorize_v2.rb +0 -37
  208. data/lib/aws/base_client.rb +0 -488
  209. data/lib/aws/cacheable.rb +0 -79
  210. data/lib/aws/client_logging.rb +0 -122
  211. data/lib/aws/collections.rb +0 -230
  212. data/lib/aws/configuration.rb +0 -357
  213. data/lib/aws/configured_client_methods.rb +0 -81
  214. data/lib/aws/configured_grammars.rb +0 -65
  215. data/lib/aws/default_signer.rb +0 -65
  216. data/lib/aws/http/curb_handler.rb +0 -127
  217. data/lib/aws/http/handler.rb +0 -77
  218. data/lib/aws/http/httparty_handler.rb +0 -103
  219. data/lib/aws/http/request.rb +0 -165
  220. data/lib/aws/http/request_param.rb +0 -64
  221. data/lib/aws/http/response.rb +0 -72
  222. data/lib/aws/indifferent_hash.rb +0 -86
  223. data/lib/aws/inflection.rb +0 -46
  224. data/lib/aws/lazy_error_classes.rb +0 -64
  225. data/lib/aws/meta_utils.rb +0 -43
  226. data/lib/aws/model.rb +0 -57
  227. data/lib/aws/option_grammar.rb +0 -565
  228. data/lib/aws/policy.rb +0 -914
  229. data/lib/aws/resource.rb +0 -381
  230. data/lib/aws/response.rb +0 -125
  231. data/lib/aws/response_cache.rb +0 -50
  232. data/lib/aws/service_interface.rb +0 -60
  233. data/lib/aws/xml_grammar.rb +0 -925
@@ -1,165 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'stringio'
15
- require 'aws/http/request_param'
16
-
17
- module AWS
18
- module Http
19
-
20
- # Base class for all service reqeusts.
21
- class Request
22
-
23
- # Returns a new empty http request object.
24
- def initialize
25
- @host = nil
26
- @http_method = 'POST'
27
- @path = '/'
28
- @headers = CaseInsensitiveHash.new
29
- @params = []
30
- @use_ssl = true
31
- end
32
-
33
- # @return [String] hostname of the request
34
- attr_accessor :host
35
-
36
- # @return [CaseInsensitiveHash] request headers
37
- attr_reader :headers
38
-
39
- # @return [Array] An array of request params, each param responds to
40
- # #name and #value.
41
- attr_reader :params
42
-
43
- # @return [String] GET, PUT POST, HEAD or DELETE, defaults to POST
44
- attr_accessor :http_method
45
-
46
- # @return [String] path of the request URI, defaults to /
47
- attr_reader :path
48
-
49
- # @return [String] the AWS access key ID used to authorize the
50
- # request
51
- attr_accessor :access_key_id
52
-
53
- # @return [nil, URI] The URI to the proxy server requests are
54
- # sent through if configured. Returns nil if there is no proxy.
55
- attr_accessor :proxy_uri
56
-
57
- # @param [Boolean] ssl If the request should be sent over ssl or not.
58
- def use_ssl= use_ssl
59
- @use_ssl = use_ssl
60
- end
61
-
62
- # @return [Boolean] If this request should be sent over ssl or not.
63
- def use_ssl?
64
- @use_ssl
65
- end
66
-
67
- # @param [Boolean] verify_peer If the client should verify the
68
- # peer certificate or not.
69
- def ssl_verify_peer=(verify_peer)
70
- @ssl_verify_peer = verify_peer
71
- end
72
-
73
- # @return [Boolean] If the client should verify the peer
74
- # certificate or not.
75
- def ssl_verify_peer?
76
- @ssl_verify_peer
77
- end
78
-
79
- # @param [String] ca_file Path to a bundle of CA certs in PEM
80
- # format; the HTTP handler should use this to verify all HTTPS
81
- # requests if {#ssl_verify_peer?} is true.
82
- def ssl_ca_file=(ca_file)
83
- @ssl_ca_file = ca_file
84
- end
85
-
86
- # @return [String] Path to a bundle of CA certs in PEM format;
87
- # the HTTP handler should use this to verify all HTTPS
88
- # requests if {#ssl_verify_peer?} is true.
89
- def ssl_ca_file
90
- @ssl_ca_file
91
- end
92
-
93
- # Adds a request param.
94
- #
95
- # @overload add_param(param_name, param_value = nil)
96
- # Add a param (name/value)
97
- # @param [String] param_name
98
- # @param [String] param_value Leave blank for sub resources
99
- #
100
- # @overload add_param(param_obj)
101
- # Add a param (object)
102
- # @param [Param] param_obj
103
- #
104
- def add_param name_or_param, value = nil
105
- if name_or_param.kind_of?(Param)
106
- @params << name_or_param
107
- else
108
- @params << Param.new(name_or_param, value)
109
- end
110
- end
111
-
112
- # @private
113
- def get_param param_name
114
- @params.detect{|p| p.name == param_name } ||
115
- raise("undefined param #{param_name}")
116
- end
117
-
118
- # @return [String] the request uri
119
- def uri
120
- querystring ? "#{path}?#{querystring}" : path
121
- end
122
-
123
- # @return [String] Returns the request params url encoded, or nil if
124
- # this request has no params.
125
- def url_encoded_params
126
- if @params.empty?
127
- nil
128
- else
129
- @params.sort.collect{|p| p.encoded }.join('&')
130
- end
131
- end
132
-
133
- # @return [String, nil] Returns the requesty querystring.
134
- def querystring
135
- nil
136
- end
137
-
138
- # @return [String, nil] Returns the request body.
139
- def body
140
- url_encoded_params
141
- end
142
-
143
- # @private
144
- class CaseInsensitiveHash < Hash
145
-
146
- def []= key, value
147
- super(key.to_s.downcase, value)
148
- end
149
-
150
- def [] key
151
- super(key.to_s.downcase)
152
- end
153
-
154
- def has_key?(key)
155
- super(key.to_s.downcase)
156
- end
157
- alias_method :key?, :has_key?
158
- alias_method :include?, :has_key?
159
- alias_method :member?, :has_key?
160
-
161
- end
162
-
163
- end
164
- end
165
- end
@@ -1,64 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'aws/uri_escape'
15
-
16
- module AWS
17
- module Http
18
- class Request
19
-
20
- # Represents a single request paramater. Some services accept this
21
- # in a form encoded body string, others as query parameters.
22
- # It is up to each service's Request class to determine how to
23
- # consume these params.
24
- # @private
25
- class Param
26
-
27
- include UriEscape
28
-
29
- attr_accessor :name, :value
30
-
31
- def initialize name, value = nil
32
- @name = name
33
- @value = value
34
- end
35
-
36
- def <=> other
37
- @name <=> other.name
38
- end
39
-
40
- def to_s
41
- if value
42
- "#{name}=#{value}"
43
- else
44
- name
45
- end
46
- end
47
-
48
- def ==(other)
49
- other.kind_of?(Param) &&
50
- to_s == other.to_s
51
- end
52
-
53
- def encoded
54
- if value
55
- "#{escape(name)}=#{escape(value)}"
56
- else
57
- escape(name)
58
- end
59
- end
60
-
61
- end
62
- end
63
- end
64
- end
@@ -1,72 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
-
16
- module Http
17
-
18
- # Represents the http response from a service request.
19
- #
20
- # Responses have:
21
- #
22
- # * status (200, 404, 500, etc)
23
- # * headers (hash of response headers)
24
- # * body (the response body)
25
- class Response
26
-
27
- # @return [Integer] (200) response http status code
28
- attr_accessor :status
29
-
30
- # @return [Hash] ({}) response http headers
31
- attr_accessor :headers
32
-
33
- # @return [String] ('') response http body
34
- attr_accessor :body
35
-
36
- # @return [String] (false) set to true if the client gives up
37
- # before getting a response from the service.
38
- attr_accessor :timeout
39
- alias_method :timeout?, :timeout
40
-
41
- # @param [Hash] options
42
- # @option options [Integer] :status (200) HTTP status code
43
- # @option options [Hash] :headers ({}) HTTP response headers
44
- # @option options [String] :body ('') HTTP response body
45
- def initialize options = {}, &block
46
- @status = options[:status] || 200
47
- @headers = options[:headers] || {}
48
- @body = options[:body] || ''
49
- yield(self) if block_given?
50
- self
51
- end
52
-
53
- # Returns the header value with the given name.
54
- #
55
- # The value is matched case-insensitively so if the headers hash
56
- # contains a key like 'Date' and you request the value for
57
- # 'date' the 'Date' value will be returned.
58
- #
59
- # @param [String,Symbol] name The name of the header to fetch a value for.
60
- # @return [String,nil] The value of the given header
61
- def header name
62
- headers.each_pair do |header_name, header_value|
63
- if header_name.downcase == name.to_s.downcase
64
- return header_value.is_a?(Array) ? header_value.first : header_value
65
- end
66
- end
67
- nil
68
- end
69
-
70
- end
71
- end
72
- end
@@ -1,86 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
-
16
- # A utility class to provide indifferent access to hash data.
17
- #
18
- # Inspired by ActiveSupport's HashWithIndifferentAccess, this class
19
- # has a few notable differences:
20
- #
21
- # * ALL keys are converted to strings (via #to_s)
22
- # * It does not deep merge/convert hashes indifferently
23
- # * It will not perserve default value behaviours
24
- #
25
- # These features were omitted because our primary use for this class is to
26
- # wrap a 1-level hash as a return value, but we want the user to access
27
- # the values with string or symbol keys.
28
- #
29
- # @private
30
- class IndifferentHash < Hash
31
-
32
- def initialize *args
33
- if args.first.is_a?(Hash)
34
- super()
35
- merge!(*args)
36
- else
37
- super(*args)
38
- end
39
- end
40
-
41
- alias_method :_getter, :[]
42
- alias_method :_setter, :[]=
43
-
44
- def []=(key, value)
45
- _setter(_convert_key(key), value)
46
- end
47
- alias_method :store, :[]=
48
-
49
- def [] key
50
- _getter(_convert_key(key))
51
- end
52
-
53
- def merge! hash
54
- hash.each_pair do |key,value|
55
- self[key] = value
56
- end
57
- self
58
- end
59
- alias_method :update, :merge!
60
-
61
- def merge hash
62
- self.dup.merge!(hash)
63
- end
64
-
65
- def has_key? key
66
- super(_convert_key(key))
67
- end
68
- alias_method :key?, :has_key?
69
- alias_method :member?, :has_key?
70
- alias_method :include?, :has_key?
71
-
72
- def fetch key, *extras, &block
73
- super(_convert_key(key), *extras, &block)
74
- end
75
-
76
- def delete key
77
- super(_convert_key(key))
78
- end
79
-
80
- private
81
- def _convert_key key
82
- key.is_a?(String) ? key : key.to_s
83
- end
84
-
85
- end
86
- end
@@ -1,46 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
-
16
- # @private
17
- module Inflection
18
-
19
- def ruby_name(aws_name)
20
-
21
- #aws_name.sub(/^.*:/, '').
22
- # gsub(/[A-Z]+[a-z]+/){|str| "_#{str.downcase}_" }.
23
- # gsub(/(^_|_$)/, '').
24
- # gsub(/__/, '_').
25
- # downcase
26
-
27
- return 'etag' if aws_name == 'ETag'
28
-
29
- aws_name.
30
- sub(/^.*:/, ''). # strip namespace
31
- gsub(/([A-Z0-9]+)([A-Z][a-z])/, '\1_\2'). # split acronyms from words
32
- scan(/[a-z]+|\d+|[A-Z0-9]+[a-z]*/). # split remaining words
33
- join('_').downcase # join parts _ and downcase
34
-
35
- end
36
- module_function :ruby_name
37
-
38
- def class_name(name)
39
- name.sub(/^(.)/) { |m| m.upcase }.
40
- gsub(/[-_]([a-z])/i) { |m| m[1,1].upcase }
41
- end
42
- module_function :class_name
43
-
44
- end
45
-
46
- end
@@ -1,64 +0,0 @@
1
- # Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'aws/xml_grammar'
15
- require 'aws/errors'
16
-
17
- module AWS
18
-
19
- # @private
20
- module LazyErrorClasses
21
-
22
- # @private
23
- module ClassMethods
24
-
25
- def const_missing(name)
26
- base_error_grammar = self::BASE_ERROR_GRAMMAR
27
- const_missing_mutex.synchronize do
28
- return if const_defined?(name)
29
- const_set(name,
30
- Class.new(self::Base) do
31
- include Errors::ModeledError
32
-
33
- # so that MyService::Errors::Foo::Bar will work
34
- const_set(:BASE_ERROR_GRAMMAR, base_error_grammar)
35
- include LazyErrorClasses
36
- end)
37
- end
38
- end
39
-
40
- def error_class(code)
41
- module_eval(code.gsub(".","::"))
42
- end
43
-
44
- def included(mod)
45
- raise NotImplementedError.new("#{self} lazy-generates error classes; "+
46
- "therefore it is not suitable for "+
47
- "inclusion in other modules")
48
- end
49
-
50
- end
51
-
52
- def self.included(mod)
53
- unless mod.const_defined?(:BASE_ERROR_GRAMMAR)
54
- mod.const_set(:BASE_ERROR_GRAMMAR, XmlGrammar)
55
- end
56
- mutex = Mutex.new
57
- MetaUtils.extend_method(mod, :const_missing_mutex) { mutex }
58
- mod.send(:include, Errors)
59
- mod.extend(ClassMethods)
60
- end
61
-
62
- end
63
-
64
- end