aws-sdk-resources 2.0.2.pre → 2.0.3.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d8d73ea1b21204559a8fb036e60f6d380268a743
4
- data.tar.gz: b92f963d53c46d4dc64aaab930a5acea6bcba3b3
3
+ metadata.gz: 2a81b17767e316a7a512bb61c9b9cb392a0c7150
4
+ data.tar.gz: 7630c31ed82206477494004bb74ea2b5fbf03702
5
5
  SHA512:
6
- metadata.gz: cf73777ea642f80159f357fc2b0e6e1c935637c7688e650ba8949205a242517997a88e84527d02c78264caf37abf19cc92e69f3b510d42a5fca945fc9ff4dca0
7
- data.tar.gz: ad3dd237c4c1ef3068794bfa1d2ec347f07e44880321a748f610f18037aa82cd57203984d808e431f8106ed4844ea61626cf1b78bd020eaf87da4158d1bb558d
6
+ metadata.gz: 8ef040fef33dd3ad75ad628d038de5ec9e1c28e32e875d949aa944fc50921ece4f1637d8b47156b2b396e9999993707dc26a4dfd97ee08d2e93ae381b350c61a
7
+ data.tar.gz: c69c84b2b228f504aaccf75c19e3074ad5a6e3c139f1e92c58e2fa38211b1731e3df3d6c38e4ff84bdb39d2b383b03e9e9cb2c3477c5ed665afbc9ff39f47103
@@ -26,7 +26,7 @@ module Aws
26
26
  define_has_many(namespace, resource, definition['hasMany'] || {})
27
27
  define_has_some(namespace, resource, definition['hasSome'] || {})
28
28
  define_has_one(namespace, resource, definition['hasOne'] || {})
29
- define_data_attributes(namespace, resource, definition['shape'])
29
+ define_data_attributes(namespace, resource, definition)
30
30
  define_subresources(namespace, resource, definition['subResources'] || {})
31
31
  end
32
32
  define_top_level_references(namespace)
@@ -109,13 +109,13 @@ module Aws
109
109
  end
110
110
  end
111
111
 
112
- def define_data_attributes(namespace, resource, shape_name)
113
- return unless shape_name
112
+ def define_data_attributes(namespace, resource, definition)
113
+ return unless shape_name = definition['shape']
114
114
  shape = resource.client_class.api.shape_map.shape('shape' => shape_name)
115
115
  shape.member_names.each do |member_name|
116
116
  if
117
- resource.identifiers.include?(member_name) ||
118
- resource.instance_methods.include?(member_name)
117
+ resource.instance_methods.include?(member_name) ||
118
+ data_attribute_is_an_identifier?(member_name, resource, definition)
119
119
  then
120
120
  next # some data attributes are duplicates to identifiers
121
121
  else
@@ -124,6 +124,11 @@ module Aws
124
124
  end
125
125
  end
126
126
 
127
+ def data_attribute_is_an_identifier?(attr_name, resource, definition)
128
+ resource.identifiers.include?(attr_name) ||
129
+ definition['identifiers'].any? { |i| underscore(i['dataMember']) == attr_name.to_s }
130
+ end
131
+
127
132
  def define_load(namespace, resource, definition)
128
133
  return unless definition
129
134
  resource.load_operation = Operations::DataOperation.new(
@@ -188,7 +188,7 @@ module Aws
188
188
  remaining -= batch.size
189
189
  else
190
190
  yield(batch.first(remaining))
191
- break
191
+ return
192
192
  end
193
193
  end
194
194
  end
@@ -8,6 +8,52 @@ module Aws
8
8
 
9
9
  class Object
10
10
 
11
+ # Generates a pre-signed URL for this object.
12
+ #
13
+ # @example Pre-signed GET URL, valid for one hour
14
+ #
15
+ # obj.presigned_url(:get, expires_in: 3600)
16
+ # #=> "https://bucket-name.s3.amazonaws.com/object-key?..."
17
+ #
18
+ # @example Pre-signed PUT with a canned ACL
19
+ #
20
+ # # the object uploaded using this URL will be publicly accessible
21
+ # obj.presigned_url(:put, acl: 'public-read')
22
+ # #=> "https://bucket-name.s3.amazonaws.com/object-key?..."
23
+ #
24
+ # @param [Symbol] http_method
25
+ # The HTTP method to generate a presigned URL for. Valid values
26
+ # are `:get`, `:put`, `:head`, and `:delete`.
27
+ #
28
+ # @param [Hash] params
29
+ # Additional request parameters to use when generating the pre-signed
30
+ # URL. See the related documentation in {Client} for accepted
31
+ # params.
32
+ #
33
+ # | HTTP Method | Client Method |
34
+ # |---------------|------------------------|
35
+ # | `:get` | {Client#put_object} |
36
+ # | `:put` | {Client#get_object} |
37
+ # | `:head` | {Client#head_object} |
38
+ # | `:delete` | {Client#delete_object} |
39
+ #
40
+ # @option params [Integer] :exipres_in (900) Number of seconds before
41
+ # the pre-signed URL expires. This may not exceed one week (604800
42
+ # seconds).
43
+ #
44
+ # @raise [ArgumentError] Raised if `:expires_in` exceeds one week
45
+ # (604800 seconds).
46
+ #
47
+ # @return [String]
48
+ #
49
+ def presigned_url(http_method, params = {})
50
+ presigner = Presigner.new(client: client)
51
+ presigner.presigned_url("#{http_method.downcase}_object", params.merge(
52
+ bucket: bucket_name,
53
+ key: key,
54
+ ))
55
+ end
56
+
11
57
  # Uploads a file from disk to the current object in S3.
12
58
  #
13
59
  # @example
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2.pre
4
+ version: 2.0.3.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2014-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.2
19
+ version: 2.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.2
26
+ version: 2.0.3
27
27
  description: Provides resource-oriented abstractions for AWS.
28
28
  email:
29
29
  executables: []
@@ -89,3 +89,4 @@ signing_key:
89
89
  specification_version: 4
90
90
  summary: AWS SDK for Ruby - Resources
91
91
  test_files: []
92
+ has_rdoc: