aws-sdk 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -11,17 +11,13 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/s3/tree/leaf_node'
16
- require 'aws/s3/tree/branch_node'
17
-
18
14
  module AWS
19
15
  class S3
20
16
  class Tree
21
17
 
22
18
  class ChildCollection
23
19
 
24
- include Model
20
+ include Core::Model
25
21
  include Enumerable
26
22
 
27
23
  # @private
@@ -11,11 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/s3/tree/node'
15
- require 'aws/s3/s3_object'
16
- require 'aws/s3/object_version'
17
- require 'aws/s3/multipart_upload'
18
-
19
14
  module AWS
20
15
  class S3
21
16
  class Tree
@@ -11,9 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/s3/tree/node'
16
-
17
14
  module AWS
18
15
  class S3
19
16
 
@@ -23,7 +20,7 @@ module AWS
23
20
  # ({Tree} and {BranchNode}).
24
21
  module Parent
25
22
 
26
- include Model
23
+ include Core::Model
27
24
 
28
25
  # @private
29
26
  def initialize collection, options = {}
@@ -11,8 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
-
16
14
  module AWS
17
15
  class S3
18
16
 
@@ -23,7 +21,7 @@ module AWS
23
21
  # upload.parts.inject(0) { |sum, part| sum + part.size }
24
22
  class UploadedPart
25
23
 
26
- include Model
24
+ include Core::Model
27
25
 
28
26
  # @return [MultipartUpload] The upload to which this belongs.
29
27
  attr_reader :upload
@@ -11,10 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/s3/paginated_collection'
16
- require 'aws/s3/uploaded_part'
17
-
18
14
  module AWS
19
15
  class S3
20
16
 
@@ -27,7 +23,7 @@ module AWS
27
23
  class UploadedPartCollection
28
24
 
29
25
  include Enumerable
30
- include Model
26
+ include Core::Model
31
27
  include PaginatedCollection
32
28
 
33
29
  # @return [MultipartUpload] The upload to which the parts belong.
@@ -11,11 +11,8 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/common'
15
- require 'aws/service_interface'
16
- require 'aws/simple_db/errors'
17
- require 'aws/simple_db/client'
18
- require 'aws/simple_db/domain_collection'
14
+ require 'aws/core'
15
+ require 'aws/simple_db/config'
19
16
 
20
17
  module AWS
21
18
 
@@ -141,7 +138,25 @@ module AWS
141
138
  #
142
139
  class SimpleDB
143
140
 
144
- include ServiceInterface
141
+ AWS.register_autoloads(self, 'aws/simple_db') do
142
+ autoload :Attribute, 'attribute'
143
+ autoload :AttributeCollection, 'attribute_collection'
144
+ autoload :Client, 'client'
145
+ autoload :ConsistentReadOption, 'consistent_read_option'
146
+ autoload :DeleteAttributes, 'delete_attributes'
147
+ autoload :Domain, 'domain'
148
+ autoload :DomainCollection, 'domain_collection'
149
+ autoload :DomainMetadata, 'domain_metadata'
150
+ autoload :Errors, 'errors'
151
+ autoload :ExpectConditionOption, 'expect_condition_option'
152
+ autoload :Item, 'item'
153
+ autoload :ItemCollection, 'item_collection'
154
+ autoload :ItemData, 'item_data'
155
+ autoload :PutAttributes, 'put_attributes'
156
+ autoload :Request, 'request'
157
+ end
158
+
159
+ include Core::ServiceInterface
145
160
 
146
161
  # Returns a collection object that represents the domains in your
147
162
  # account.
@@ -11,18 +11,13 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/simple_db/consistent_read_option'
16
- require 'aws/simple_db/put_attributes'
17
- require 'aws/simple_db/delete_attributes'
18
-
19
14
  module AWS
20
15
  class SimpleDB
21
16
 
22
17
  # Represents a single named item attribute in SimpleDB.
23
18
  class Attribute
24
19
 
25
- include Model
20
+ include Core::Model
26
21
  include Enumerable
27
22
  include ConsistentReadOption
28
23
  include PutAttributes
@@ -11,17 +11,11 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/simple_db/attribute'
16
- require 'aws/simple_db/consistent_read_option'
17
- require 'aws/simple_db/put_attributes'
18
- require 'aws/simple_db/delete_attributes'
19
-
20
14
  module AWS
21
15
  class SimpleDB
22
16
  class AttributeCollection
23
17
 
24
- include Model
18
+ include Core::Model
25
19
  include Enumerable
26
20
  include ConsistentReadOption
27
21
  include PutAttributes
@@ -11,22 +11,20 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/base_client'
15
- require 'aws/configured_client_methods'
16
- require 'aws/simple_db/request'
17
- require 'aws/simple_db/client/xml'
18
- require 'aws/simple_db/client/options'
19
- require 'aws/inflection'
20
- require 'aws/simple_db/errors'
21
14
  require 'time'
22
15
 
23
16
  module AWS
24
17
  class SimpleDB
25
18
 
26
19
  # @private
27
- class Client < BaseClient
20
+ class Client < Core::Client
28
21
 
29
- include ConfiguredClientMethods
22
+ AWS.register_autoloads(self, 'aws/simple_db/client') do
23
+ autoload :Options, 'options'
24
+ autoload :XML, 'xml'
25
+ end
26
+
27
+ include Core::ConfiguredClientMethods
30
28
 
31
29
  API_VERSION = '2009-04-15'
32
30
 
@@ -11,16 +11,14 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/configured_option_grammars'
15
-
16
14
  module AWS
17
15
  class SimpleDB
18
- class Client < BaseClient
16
+ class Client < Core::Client
19
17
 
20
18
  # @private
21
19
  module Options
22
20
 
23
- include ConfiguredOptionGrammars
21
+ include Core::ConfiguredOptionGrammars
24
22
 
25
23
  define_configured_grammars
26
24
 
@@ -11,22 +11,17 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/configured_xml_grammars'
15
- require 'aws/ignore_result_element'
16
- require 'aws/xml_grammar'
17
-
18
14
  module AWS
19
15
  class SimpleDB
20
- class Client < BaseClient
16
+ class Client < Core::Client
21
17
 
22
18
  # @private
23
19
  module XML
24
20
 
25
- include ConfiguredXmlGrammars
26
-
27
- extend IgnoreResultElement
21
+ include Core::ConfiguredXmlGrammars
22
+ extend Core::IgnoreResultElement
28
23
 
29
- BaseResponse = XmlGrammar.customize do
24
+ BaseResponse = Core::XmlGrammar.customize do
30
25
  element "ResponseMetadata" do
31
26
  element "BoxUsage" do
32
27
  float_value
@@ -34,7 +29,7 @@ module AWS
34
29
  end
35
30
  end
36
31
 
37
- BaseError = XmlGrammar.customize do
32
+ BaseError = Core::XmlGrammar.customize do
38
33
  element("Errors") do
39
34
  ignore
40
35
  element("Error") do
@@ -11,21 +11,10 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/inflection'
14
+ AWS::Core::Configuration.module_eval do
15
15
 
16
- module AWS
16
+ add_service 'SimpleDB', 'simple_db', 'sdb.amazonaws.com'
17
17
 
18
- # @private
19
- module Naming
20
-
21
- def service_name
22
- self.name.split(/::/)[1]
23
- end
24
-
25
- def service_ruby_name
26
- @service_ruby_name ||= Inflection.ruby_name(service_name)
27
- end
28
-
29
- end
18
+ add_option :simple_db_consistent_reads, false, :boolean => true
30
19
 
31
20
  end
@@ -11,8 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/simple_db/expect_condition_option'
15
-
16
14
  module AWS
17
15
  class SimpleDB
18
16
 
@@ -11,11 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/errors'
15
- require 'aws/model'
16
- require 'aws/simple_db/domain_metadata'
17
- require 'aws/simple_db/item_collection'
18
-
19
14
  module AWS
20
15
  class SimpleDB
21
16
 
@@ -36,7 +31,7 @@ module AWS
36
31
  # @private
37
32
  class NonEmptyDeleteError < StandardError; end
38
33
 
39
- include Model
34
+ include Core::Model
40
35
 
41
36
  # @param [String] The name of a SimpleDB domain to reference.
42
37
  def initialize(name, options = {})
@@ -11,9 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/simple_db/domain'
16
-
17
14
  module AWS
18
15
  class SimpleDB
19
16
 
@@ -39,7 +36,7 @@ module AWS
39
36
  #
40
37
  class DomainCollection
41
38
 
42
- include Model
39
+ include Core::Model
43
40
  include Enumerable
44
41
 
45
42
  # Creates a domain in SimpleDB and returns a domain object.
@@ -11,8 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
-
16
14
  module AWS
17
15
  class SimpleDB
18
16
 
@@ -37,7 +35,7 @@ module AWS
37
35
  #
38
36
  class DomainMetadata
39
37
 
40
- include Model
38
+ include Core::Model
41
39
 
42
40
  # @private
43
41
  ATTRIBUTES = [
@@ -11,9 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/lazy_error_classes'
15
- require 'aws/simple_db/client/xml'
16
-
17
14
  module AWS
18
15
  class SimpleDB
19
16
 
@@ -39,7 +36,7 @@ module AWS
39
36
  # @private
40
37
  module Errors
41
38
  BASE_ERROR_GRAMMAR = Client::XML::BaseError
42
- include LazyErrorClasses
39
+ include Core::LazyErrorClasses
43
40
  end
44
41
 
45
42
  end
@@ -11,12 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/simple_db/item_data'
16
- require 'aws/simple_db/attribute_collection'
17
- require 'aws/simple_db/expect_condition_option'
18
- require 'aws/simple_db/consistent_read_option'
19
-
20
14
  module AWS
21
15
  class SimpleDB
22
16
 
@@ -29,7 +23,7 @@ module AWS
29
23
  #
30
24
  class Item
31
25
 
32
- include Model
26
+ include Core::Model
33
27
  include ExpectConditionOption
34
28
  include ConsistentReadOption
35
29
 
@@ -11,21 +11,13 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'aws/model'
15
- require 'aws/simple_db/item'
16
- require 'aws/simple_db/item_data'
17
- require 'aws/simple_db/consistent_read_option'
18
-
19
- # for 1.8.6
20
- require 'enumerator'
21
-
22
14
  module AWS
23
15
  class SimpleDB
24
16
 
25
17
  # Represents a collection of items in a SimpleDB domain.
26
18
  class ItemCollection
27
19
 
28
- include Model
20
+ include Core::Model
29
21
  include Enumerable
30
22
  include ConsistentReadOption
31
23
 
@@ -107,7 +99,9 @@ module AWS
107
99
  # @return [nil]
108
100
  def each options = {}, &block
109
101
 
110
- return if handle_query_options(:each, options, &block)
102
+ handle_query_options(options) do |c, opts|
103
+ return c.each(opts, &block)
104
+ end
111
105
 
112
106
  if attributes = options.delete(:select)
113
107
  return select(attributes, options, &block)
@@ -185,12 +179,14 @@ module AWS
185
179
 
186
180
  args = attributes + [options]
187
181
 
188
- return if handle_query_options(:select, *args, &block)
182
+ handle_query_options(*args) do |c, *clean_args|
183
+ return c.select(*clean_args, &block)
184
+ end
189
185
 
190
186
  unless block_given?
191
187
  return Enumerator.new(self, :select, *args)
192
188
  end
193
-
189
+
194
190
  if attributes.empty?
195
191
  output_list = '*'
196
192
  #elsif attributes == ['*']
@@ -238,7 +234,9 @@ module AWS
238
234
  # items to fetch from SimpleDB. More than one request may be
239
235
  # required to satisfy the limit.
240
236
  def count options = {}, &block
241
- return if handle_query_options(:count, options, &block)
237
+ handle_query_options(options) do |c, opts|
238
+ return c.count(opts, &block)
239
+ end
242
240
 
243
241
  options = options.merge(:output_list => "count(*)")
244
242
 
@@ -403,17 +401,18 @@ module AWS
403
401
  # turns e.g. each(:where => 'foo', ...) into where('foo').each(...)
404
402
  # @private
405
403
  protected
406
- def handle_query_options(method, *args, &block)
404
+ def handle_query_options(*args)
407
405
  options = args.pop if args.last.kind_of?(Hash)
408
- if query_option = (options.keys & [:where, :order, :limit]).first
409
- option_args = options[query_option]
410
- option_args = [option_args] unless option_args.kind_of?(Array)
411
- options.delete(query_option)
412
- send(query_option, *option_args).
413
- send(method, *(args + [options]), &block)
414
- true
415
- else
416
- false
406
+ if query_options = options.keys & [:where, :order, :limit] and
407
+ !query_options.empty?
408
+ c = self
409
+ query_options.each do |query_option|
410
+ option_args = options[query_option]
411
+ option_args = [option_args] unless option_args.kind_of?(Array)
412
+ options.delete(query_option)
413
+ c = send(query_option, *option_args)
414
+ end
415
+ yield(c, *(args + [options]))
417
416
  end
418
417
  end
419
418