aws-sdk 1.2.6 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. data/lib/aws.rb +2 -0
  2. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +721 -0
  3. data/lib/aws/core.rb +10 -1
  4. data/lib/aws/core/client.rb +17 -12
  5. data/lib/aws/core/configuration.rb +13 -3
  6. data/lib/aws/core/configured_json_client_methods.rb +71 -0
  7. data/lib/aws/core/lazy_error_classes.rb +7 -2
  8. data/lib/aws/core/option_grammar.rb +67 -13
  9. data/lib/aws/core/resource.rb +9 -1
  10. data/lib/aws/core/session_signer.rb +95 -0
  11. data/lib/aws/dynamo_db.rb +169 -0
  12. data/lib/aws/dynamo_db/attribute_collection.rb +460 -0
  13. data/lib/aws/dynamo_db/batch_get.rb +206 -0
  14. data/lib/aws/dynamo_db/client.rb +119 -0
  15. data/lib/aws/dynamo_db/config.rb +20 -0
  16. data/lib/aws/dynamo_db/errors.rb +57 -0
  17. data/lib/aws/dynamo_db/expectations.rb +40 -0
  18. data/lib/aws/dynamo_db/item.rb +130 -0
  19. data/lib/aws/dynamo_db/item_collection.rb +837 -0
  20. data/lib/aws/{record/optimistic_locking.rb → dynamo_db/item_data.rb} +9 -12
  21. data/lib/aws/{record/attributes/boolean.rb → dynamo_db/keys.rb} +15 -23
  22. data/lib/aws/dynamo_db/primary_key_element.rb +47 -0
  23. data/lib/aws/dynamo_db/request.rb +78 -0
  24. data/lib/aws/{record/attributes/float.rb → dynamo_db/resource.rb} +10 -25
  25. data/lib/aws/dynamo_db/table.rb +418 -0
  26. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  27. data/lib/aws/dynamo_db/types.rb +86 -0
  28. data/lib/aws/ec2/resource_tag_collection.rb +3 -1
  29. data/lib/aws/record.rb +36 -8
  30. data/lib/aws/record/abstract_base.rb +642 -0
  31. data/lib/aws/record/attributes.rb +384 -0
  32. data/lib/aws/record/dirty_tracking.rb +0 -1
  33. data/lib/aws/record/errors.rb +0 -8
  34. data/lib/aws/record/hash_model.rb +163 -0
  35. data/lib/aws/record/hash_model/attributes.rb +182 -0
  36. data/lib/aws/record/hash_model/finder_methods.rb +178 -0
  37. data/lib/aws/record/hash_model/scope.rb +108 -0
  38. data/lib/aws/record/model.rb +429 -0
  39. data/lib/aws/record/model/attributes.rb +377 -0
  40. data/lib/aws/record/model/finder_methods.rb +232 -0
  41. data/lib/aws/record/model/scope.rb +213 -0
  42. data/lib/aws/record/scope.rb +43 -169
  43. data/lib/aws/record/validations.rb +11 -11
  44. data/lib/aws/s3/client.rb +9 -6
  45. data/lib/aws/s3/object_collection.rb +1 -1
  46. data/lib/aws/simple_db/expect_condition_option.rb +1 -1
  47. data/lib/aws/simple_db/item_collection.rb +5 -3
  48. data/lib/aws/sts/client.rb +9 -0
  49. metadata +73 -30
  50. data/lib/aws/record/attribute.rb +0 -94
  51. data/lib/aws/record/attribute_macros.rb +0 -312
  52. data/lib/aws/record/attributes/date.rb +0 -89
  53. data/lib/aws/record/attributes/datetime.rb +0 -86
  54. data/lib/aws/record/attributes/integer.rb +0 -68
  55. data/lib/aws/record/attributes/sortable_float.rb +0 -60
  56. data/lib/aws/record/attributes/sortable_integer.rb +0 -95
  57. data/lib/aws/record/attributes/string.rb +0 -69
  58. data/lib/aws/record/base.rb +0 -828
  59. data/lib/aws/record/finder_methods.rb +0 -230
  60. data/lib/aws/record/scopes.rb +0 -55
@@ -26,7 +26,7 @@ require 'aws/record/validators/method'
26
26
  module AWS
27
27
  module Record
28
28
 
29
- # Validation methods to be used with subclasses of AWS::Record::Base.
29
+ # Validation methods to be used with subclasses of AWS::Record::Model.
30
30
  #
31
31
  # = General Usage
32
32
  #
@@ -34,7 +34,7 @@ module AWS
34
34
  # Call the validation method followed by one more attribute names
35
35
  # and then an optional hash of modifiers.
36
36
  #
37
- # class Book < AWS::Record::Base
37
+ # class Book < AWS::Record::Model
38
38
  #
39
39
  # # ...
40
40
  #
@@ -89,7 +89,7 @@ module AWS
89
89
  # All of the validators can be used with configured attributes, but they
90
90
  # can also be used with any attribute that has a setter and a getter.
91
91
  #
92
- # Class Book < AWS::Record::Base
92
+ # Class Book < AWS::Record::Model
93
93
  #
94
94
  # attr_accessor :title
95
95
  #
@@ -156,7 +156,7 @@ module AWS
156
156
  # checkbox (like an EULA agreement or terms of service acknowledgement)
157
157
  # is checked.
158
158
  #
159
- # class User < AWS::Record::Base
159
+ # class User < AWS::Record::Model
160
160
  # boolean_attr :terms_of_service
161
161
  # validates_acceptance_of :terms_of_service
162
162
  # end
@@ -166,7 +166,7 @@ module AWS
166
166
  # If you choose to validate the acceptance of a non-existant attribute
167
167
  # then a setter and a getter will be added automtically for you.
168
168
  #
169
- # class User < AWS::Record::Base
169
+ # class User < AWS::Record::Model
170
170
  # validates_acceptance_of :terms_of_service
171
171
  # end
172
172
  #
@@ -183,7 +183,7 @@ module AWS
183
183
  # * +nil+ implies the field was omitted from the form and therefore
184
184
  # should not be validated
185
185
  #
186
- # class User < AWS::Record::Base
186
+ # class User < AWS::Record::Model
187
187
  # validates_acceptance_of :terms_of_service
188
188
  # end
189
189
  #
@@ -237,7 +237,7 @@ module AWS
237
237
  # by requiring it twice:
238
238
  #
239
239
  # Model:
240
- # class User < AWS::Record::Base
240
+ # class User < AWS::Record::Model
241
241
  # validates_confirmation_of :password, :if => :password_changed?
242
242
  # end
243
243
  #
@@ -376,7 +376,7 @@ module AWS
376
376
 
377
377
  # Adds a block validator that is called during record validation.
378
378
  #
379
- # class ExampleClass < AWS::Record::Base
379
+ # class ExampleClass < AWS::Record::Model
380
380
  #
381
381
  # string_attr :name
382
382
  #
@@ -422,7 +422,7 @@ module AWS
422
422
  # You may use this with multi-valued attributes the same way you use it
423
423
  # with single-valued attributes:
424
424
  #
425
- # class Product < AWS::Record::Base
425
+ # class Product < AWS::Record::Model
426
426
  #
427
427
  # string_attr :tags, :set => true
428
428
  #
@@ -468,7 +468,7 @@ module AWS
468
468
  # You may use this with multi-valued attributes the same way you use it
469
469
  # with single-valued attributes:
470
470
  #
471
- # class Product < AWS::Record::Base
471
+ # class Product < AWS::Record::Model
472
472
  #
473
473
  # string_attr :tags, :set => true
474
474
  #
@@ -507,7 +507,7 @@ module AWS
507
507
  # Validates that the attribute value is included in the given enumerable
508
508
  # object.
509
509
  #
510
- # class MultipleChoiceAnswer < AWS::Record::Base
510
+ # class MultipleChoiceAnswer < AWS::Record::Model
511
511
  # validates_inclusion_of :letter, :in => %w(a b c d e)
512
512
  # end
513
513
  #
@@ -877,11 +877,14 @@ module AWS
877
877
  end
878
878
 
879
879
  protected
880
- def xml_error_response? response
881
- (response.http_response.status >= 300 ||
882
- response.request_type == :complete_multipart_upload) and
883
- response.http_response.body and
884
- Core::XmlGrammar.parse(response.http_response.body).respond_to?(:code)
880
+ def extract_error_code response
881
+ if (response.http_response.status >= 300 ||
882
+ response.request_type == :complete_multipart_upload) and
883
+ body = response.http_response.body and
884
+ parse = Core::XmlGrammar.parse(body) and
885
+ parse.respond_to?(:code)
886
+ parse.code
887
+ end
885
888
  end
886
889
 
887
890
  protected
@@ -901,7 +904,7 @@ module AWS
901
904
  def should_retry? response
902
905
  super or
903
906
  response.request_type == :complete_multipart_upload &&
904
- xml_error_response?(response)
907
+ extract_error_code(response)
905
908
  end
906
909
 
907
910
  protected
@@ -51,7 +51,7 @@ module AWS
51
51
  # photos/2011/summer/vacation.jpg
52
52
  # photos/2011/summer/family.jpg
53
53
  #
54
- # tree = bucket.objects.with_prefix.prefix('photos').as_tree
54
+ # tree = bucket.objects.with_prefix('photos').as_tree
55
55
  #
56
56
  # directories = tree.children.select(&:branch?).collect(&:prefix)
57
57
  # #=> ['photos/2010', 'photos/2011']
@@ -29,7 +29,7 @@ module AWS
29
29
  :name => expected_name.to_s,
30
30
  :value => expected_value
31
31
  }
32
- when :unless
32
+ when :unless, :unless_exists
33
33
  expected << {
34
34
  :name => value.to_s,
35
35
  :exists => false
@@ -165,13 +165,15 @@ module AWS
165
165
  # nil is returned.
166
166
  #
167
167
  def each options = {}, &block
168
+ super
169
+ end
168
170
 
171
+ # @private
172
+ def each_batch options = {}, &block
169
173
  handle_query_options(options) do |collection, opts|
170
- return collection.each(opts, &block)
174
+ return collection.each_batch(opts, &block)
171
175
  end
172
-
173
176
  super
174
-
175
177
  end
176
178
 
177
179
  # Counts the items in the collection.
@@ -31,6 +31,15 @@ module AWS
31
31
 
32
32
  configure_client
33
33
 
34
+ def initialize *args
35
+ super
36
+ unless config.use_ssl?
37
+ msg = 'AWS Security Token Service (STS) requires ssl but the ' +
38
+ ':use_ssl option is set to false. Try passing :use_ssl => true'
39
+ raise ArgumentError, msg
40
+ end
41
+ end
42
+
34
43
  end
35
44
  end
36
45
  end
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 27
4
5
  prerelease:
5
- version: 1.2.6
6
+ segments:
7
+ - 1
8
+ - 3
9
+ - 0
10
+ version: 1.3.0
6
11
  platform: ruby
7
12
  authors:
8
13
  - Amazon Web Services
@@ -10,52 +15,70 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2012-01-04 00:00:00 Z
18
+ date: 2012-01-17 00:00:00 -08:00
19
+ default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: uuidtools
17
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
18
25
  none: false
19
26
  requirements:
20
27
  - - ~>
21
28
  - !ruby/object:Gem::Version
29
+ hash: 1
30
+ segments:
31
+ - 2
32
+ - 1
22
33
  version: "2.1"
23
34
  type: :runtime
24
- prerelease: false
25
- version_requirements: *id001
35
+ requirement: *id001
26
36
  - !ruby/object:Gem::Dependency
27
37
  name: httparty
28
- requirement: &id002 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
29
40
  none: false
30
41
  requirements:
31
42
  - - ~>
32
43
  - !ruby/object:Gem::Version
44
+ hash: 5
45
+ segments:
46
+ - 0
47
+ - 7
33
48
  version: "0.7"
34
49
  type: :runtime
35
- prerelease: false
36
- version_requirements: *id002
50
+ requirement: *id002
37
51
  - !ruby/object:Gem::Dependency
38
52
  name: nokogiri
39
- requirement: &id003 !ruby/object:Gem::Requirement
53
+ prerelease: false
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
40
55
  none: false
41
56
  requirements:
42
57
  - - ">="
43
58
  - !ruby/object:Gem::Version
59
+ hash: 15
60
+ segments:
61
+ - 1
62
+ - 4
63
+ - 4
44
64
  version: 1.4.4
45
65
  type: :runtime
46
- prerelease: false
47
- version_requirements: *id003
66
+ requirement: *id003
48
67
  - !ruby/object:Gem::Dependency
49
68
  name: json
50
- requirement: &id004 !ruby/object:Gem::Requirement
69
+ prerelease: false
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
51
71
  none: false
52
72
  requirements:
53
73
  - - ~>
54
74
  - !ruby/object:Gem::Version
75
+ hash: 7
76
+ segments:
77
+ - 1
78
+ - 4
55
79
  version: "1.4"
56
80
  type: :runtime
57
- prerelease: false
58
- version_requirements: *id004
81
+ requirement: *id004
59
82
  description: AWS SDK for Ruby
60
83
  email:
61
84
  executables: []
@@ -83,6 +106,7 @@ files:
83
106
  - lib/aws/core/configuration.rb
84
107
  - lib/aws/core/configured_client_methods.rb
85
108
  - lib/aws/core/configured_grammars.rb
109
+ - lib/aws/core/configured_json_client_methods.rb
86
110
  - lib/aws/core/configured_option_grammars.rb
87
111
  - lib/aws/core/configured_xml_grammars.rb
88
112
  - lib/aws/core/default_signer.rb
@@ -107,9 +131,27 @@ files:
107
131
  - lib/aws/core/response.rb
108
132
  - lib/aws/core/response_cache.rb
109
133
  - lib/aws/core/service_interface.rb
134
+ - lib/aws/core/session_signer.rb
110
135
  - lib/aws/core/uri_escape.rb
111
136
  - lib/aws/core/xml_grammar.rb
112
137
  - lib/aws/core.rb
138
+ - lib/aws/dynamo_db/attribute_collection.rb
139
+ - lib/aws/dynamo_db/batch_get.rb
140
+ - lib/aws/dynamo_db/client.rb
141
+ - lib/aws/dynamo_db/config.rb
142
+ - lib/aws/dynamo_db/errors.rb
143
+ - lib/aws/dynamo_db/expectations.rb
144
+ - lib/aws/dynamo_db/item.rb
145
+ - lib/aws/dynamo_db/item_collection.rb
146
+ - lib/aws/dynamo_db/item_data.rb
147
+ - lib/aws/dynamo_db/keys.rb
148
+ - lib/aws/dynamo_db/primary_key_element.rb
149
+ - lib/aws/dynamo_db/request.rb
150
+ - lib/aws/dynamo_db/resource.rb
151
+ - lib/aws/dynamo_db/table.rb
152
+ - lib/aws/dynamo_db/table_collection.rb
153
+ - lib/aws/dynamo_db/types.rb
154
+ - lib/aws/dynamo_db.rb
113
155
  - lib/aws/ec2/attachment.rb
114
156
  - lib/aws/ec2/attachment_collection.rb
115
157
  - lib/aws/ec2/availability_zone.rb
@@ -203,26 +245,22 @@ files:
203
245
  - lib/aws/iam/user_policy_collection.rb
204
246
  - lib/aws/iam.rb
205
247
  - lib/aws/rails.rb
206
- - lib/aws/record/attribute.rb
207
- - lib/aws/record/attribute_macros.rb
208
- - lib/aws/record/attributes/boolean.rb
209
- - lib/aws/record/attributes/date.rb
210
- - lib/aws/record/attributes/datetime.rb
211
- - lib/aws/record/attributes/float.rb
212
- - lib/aws/record/attributes/integer.rb
213
- - lib/aws/record/attributes/sortable_float.rb
214
- - lib/aws/record/attributes/sortable_integer.rb
215
- - lib/aws/record/attributes/string.rb
216
- - lib/aws/record/base.rb
248
+ - lib/aws/record/abstract_base.rb
249
+ - lib/aws/record/attributes.rb
217
250
  - lib/aws/record/conversion.rb
218
251
  - lib/aws/record/dirty_tracking.rb
219
252
  - lib/aws/record/errors.rb
220
253
  - lib/aws/record/exceptions.rb
221
- - lib/aws/record/finder_methods.rb
254
+ - lib/aws/record/hash_model/attributes.rb
255
+ - lib/aws/record/hash_model/finder_methods.rb
256
+ - lib/aws/record/hash_model/scope.rb
257
+ - lib/aws/record/hash_model.rb
258
+ - lib/aws/record/model/attributes.rb
259
+ - lib/aws/record/model/finder_methods.rb
260
+ - lib/aws/record/model/scope.rb
261
+ - lib/aws/record/model.rb
222
262
  - lib/aws/record/naming.rb
223
- - lib/aws/record/optimistic_locking.rb
224
263
  - lib/aws/record/scope.rb
225
- - lib/aws/record/scopes.rb
226
264
  - lib/aws/record/validations.rb
227
265
  - lib/aws/record/validator.rb
228
266
  - lib/aws/record/validators/acceptance.rb
@@ -334,6 +372,7 @@ files:
334
372
  - lib/net/http/connection_pool/connection.rb
335
373
  - lib/net/http/connection_pool/session.rb
336
374
  - lib/net/http/connection_pool.rb
375
+ - lib/aws/api_config/DynamoDB-2011-12-05.yml
337
376
  - lib/aws/api_config/EC2-2011-02-28.yml
338
377
  - lib/aws/api_config/ELB-2011-08-15.yml
339
378
  - lib/aws/api_config/IAM-2010-07-15.yml
@@ -347,6 +386,7 @@ files:
347
386
  - README.rdoc
348
387
  - NOTICE.txt
349
388
  - LICENSE.txt
389
+ has_rdoc: true
350
390
  homepage: http://aws.amazon.com/sdkforruby
351
391
  licenses:
352
392
  - Apache 2.0
@@ -360,7 +400,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
360
400
  requirements:
361
401
  - - ">="
362
402
  - !ruby/object:Gem::Version
363
- hash: -2254749614229087864
403
+ hash: 3
364
404
  segments:
365
405
  - 0
366
406
  version: "0"
@@ -369,11 +409,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
369
409
  requirements:
370
410
  - - ">="
371
411
  - !ruby/object:Gem::Version
412
+ hash: 3
413
+ segments:
414
+ - 0
372
415
  version: "0"
373
416
  requirements: []
374
417
 
375
418
  rubyforge_project:
376
- rubygems_version: 1.8.5
419
+ rubygems_version: 1.4.1
377
420
  signing_key:
378
421
  specification_version: 3
379
422
  summary: AWS SDK for Ruby
@@ -1,94 +0,0 @@
1
- # Copyright 2011-2012 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
- module Record
16
-
17
- # Base class for all of the AWS::Record attributes.
18
- # @private
19
- class Attribute
20
-
21
- # @param [Symbol] Name of this attribute. It should be a name that
22
- # is safe to use as a method.
23
- # @param [Hash] options
24
- # @option options [Boolean] :set (false) When true this attribute can
25
- # accept multiple unique values.
26
- def initialize name, options = {}
27
- @name = name.to_s
28
- @options = options.dup
29
- if options[:set] and !self.class.allow_set?
30
- raise ArgumentError, "invalid option :set for #{self.class}"
31
- end
32
- end
33
-
34
- # @return [String] The name of this attribute
35
- attr_reader :name
36
-
37
- # @return [Hash] The hash of options this attribute was constructed with
38
- attr_reader :options
39
-
40
- # @return [Boolean] Returns true if this attribute can have
41
- # multiple values.
42
- def set?
43
- options[:set] ? true : false
44
- end
45
-
46
- # @return Returns the default value for this attribute. Defaults to nil.
47
- def default_value
48
- options[:default_value]
49
- end
50
-
51
- # @param [Mixed] A single value to type cast.
52
- # @return [Mixed] Returns the type casted value.
53
- def type_cast raw_value
54
- self.class.type_cast(raw_value, options)
55
- end
56
-
57
- # @param [String] The serialized string value.
58
- # @return [Mixed] Returns a deserialized type-casted value.
59
- def deserialize serialized_value
60
- self.class.deserialize(serialized_value, options)
61
- end
62
-
63
- # Takes the type casted value and serializes it
64
- # @param [Mixed] A single value to serialize.
65
- # @return [Mixed] Returns the serialized value.
66
- def serialize type_casted_value
67
- self.class.serialize(type_casted_value, options)
68
- end
69
-
70
- # @param [String] serialized_value The string value as returned from AWS.
71
- # @return [Mixed] Returns the type-casted deserialized value.
72
- def self.deserialize serialized_value, options = {}
73
- self.type_cast(serialized_value, options)
74
- end
75
-
76
- # @return [Boolean] Returns true if this attribute type can be used
77
- # with the +:set => true+ option. Certain attirbutes can not
78
- # be represented with multiple values (like BooleanAttribute).
79
- def self.allow_set?
80
- raise 'allow_set? must be defined in subclasses'
81
- end
82
-
83
- # @private
84
- protected
85
- def self.expect klass, value, &block
86
- unless value.is_a?(klass)
87
- raise ArgumentError, "expected a #{klass} value, got #{value.class}"
88
- end
89
- yield
90
- end
91
-
92
- end
93
- end
94
- end