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
@@ -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