Class: Aws::Resources::Collection
- Inherits:
-
Object
- Object
- Aws::Resources::Collection
- Includes:
- Enumerable
- Defined in:
- lib/aws-sdk-resources/collection.rb
Instance Method Summary collapse
- #batches(&block) ⇒ Enumerator<Batch> private
- #each(&block) ⇒ Enumerator<Resource>
-
#first(count = 1) ⇒ Resource, Batch
Returns the first resource from the collection.
-
#initialize(operation, options) ⇒ Collection
constructor
private
A new instance of Collection.
- #inspect ⇒ Object private
-
#limit(limit) ⇒ Collection
Specifies the maximum number of items to enumerate.
- #method_missing(method_name, *args, &block) ⇒ Object private
- #respond_to?(method_name, *args) ⇒ Boolean private
Constructor Details
#initialize(operation, options) ⇒ Collection
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Collection.
10 11 12 13 |
# File 'lib/aws-sdk-resources/collection.rb', line 10 def initialize(operation, ) @operation = operation @options = end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
73 74 75 76 77 78 79 80 81 |
# File 'lib/aws-sdk-resources/collection.rb', line 73 def method_missing(method_name, *args, &block) if respond_to?(method_name) batches.each do |batch| batch.send(method_name, *args, &block) end else super end end |
Instance Method Details
#batches(&block) ⇒ Enumerator<Batch>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
26 27 28 |
# File 'lib/aws-sdk-resources/collection.rb', line 26 def batches(&block) @operation.batches(@options) end |
#each(&block) ⇒ Enumerator<Resource>
16 17 18 19 20 21 22 |
# File 'lib/aws-sdk-resources/collection.rb', line 16 def each(&block) if block_given? batches.each { |batch| batch.each(&block) } else self end end |
#first(count = 1) ⇒ Resource, Batch
Returns the first resource from the collection.
resource = collection.first
If you pass a count, then the first ‘count` resources are returned in a single batch. See the resource specific batch documentation for a list of supported batch methods.
resources = collection.first(10)
resources.delete
55 56 57 58 59 60 61 |
# File 'lib/aws-sdk-resources/collection.rb', line 55 def first(count = 1) if count == 1 limit(1).to_a.first else Batch.new(resource_class, limit(count).to_a) end end |
#inspect ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
84 85 86 87 88 89 90 91 |
# File 'lib/aws-sdk-resources/collection.rb', line 84 def inspect parts = {} parts[:type] = resource_class.name parts[:limit] = @options[:limit] parts[:params] = @options[:params] || {} parts = parts.inject("") {|s,(k,v)| s << " #{k}=#{v.inspect}" } ['#<', self.class.name, parts, '>'].join end |
#limit(limit) ⇒ Collection
Specifies the maximum number of items to enumerate.
collection.limit(10).each do |resource|
# yields at most 10 times
end
39 40 41 |
# File 'lib/aws-sdk-resources/collection.rb', line 39 def limit(limit) self.class.new(@operation, @options.merge(limit: limit)) end |
#respond_to?(method_name, *args) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
64 65 66 67 68 69 70 |
# File 'lib/aws-sdk-resources/collection.rb', line 64 def respond_to?(method_name, *args) if resource_class.batch_operation_names.include?(method_name.to_sym) true else super end end |