Class: AWS::S3::Tree::ChildCollection
- Inherits:
-
Object
- Object
- AWS::S3::Tree::ChildCollection
- Includes:
- Core::Model, Enumerable
- Defined in:
- lib/aws/s3/tree/child_collection.rb
Instance Attribute Summary collapse
-
#collection ⇒ ObjectCollection, ...
readonly
Returns the collection this tree is based on.
-
#delimiter ⇒ String
readonly
When looking at S3 keys as a tree, the delimiter defines what string pattern seperates each level of the tree.
-
#parent ⇒ Tree, BranchNode
readonly
The parent node in the tree.
-
#prefix ⇒ String?
readonly
A tree may have a prefix of where in the bucket to be based from.
Attributes included from Core::Model
Instance Method Summary collapse
-
#append? ⇒ Boolean
Returns true if the tree is set to auto-append the delimiter to the prefix when the prefix does not end with the delimiter.
-
#each {|tree_node| ... } ⇒ nil
Yields up branches and leaves.
-
#initialize(parent, collection, options = {}) ⇒ ChildCollection
constructor
A new instance of ChildCollection.
Methods included from Core::Model
#client, #config_prefix, #inspect
Constructor Details
#initialize(parent, collection, options = {}) ⇒ ChildCollection
Returns a new instance of ChildCollection.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/aws/s3/tree/child_collection.rb', line 24 def initialize parent, collection, = {} = { :prefix => nil, :delimiter => '/', :append => true, }.merge() @parent = parent @collection = collection @prefix = [:prefix] @delimiter = [:delimiter] @append = [:append] super end |
Instance Attribute Details
#collection ⇒ ObjectCollection, ... (readonly)
Returns the collection this tree is based on.
48 49 50 |
# File 'lib/aws/s3/tree/child_collection.rb', line 48 def collection @collection end |
#delimiter ⇒ String (readonly)
When looking at S3 keys as a tree, the delimiter defines what string pattern seperates each level of the tree. The delimiter defaults to ‘/’ (like in a file system).
58 59 60 |
# File 'lib/aws/s3/tree/child_collection.rb', line 58 def delimiter @delimiter end |
#parent ⇒ Tree, BranchNode (readonly)
Returns The parent node in the tree.
43 44 45 |
# File 'lib/aws/s3/tree/child_collection.rb', line 43 def parent @parent end |
#prefix ⇒ String? (readonly)
A tree may have a prefix of where in the bucket to be based from.
52 53 54 |
# File 'lib/aws/s3/tree/child_collection.rb', line 52 def prefix @prefix end |
Instance Method Details
#append? ⇒ Boolean
Returns true if the tree is set to auto-append the delimiter to the prefix when the prefix does not end with the delimiter.
63 64 65 |
# File 'lib/aws/s3/tree/child_collection.rb', line 63 def append? @append end |
#each {|tree_node| ... } ⇒ nil
Yields up branches and leaves.
A branch node represents a common prefix (like a directory) and a leaf node represents a key (S3 object).
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/aws/s3/tree/child_collection.rb', line 75 def each &block collection = self.collection if prefix = prefix_with_delim collection = collection.with_prefix(prefix) end collection.each(:delimiter => delimiter) do |member| case when member.respond_to?(:key) yield LeafNode.new(parent, member) when member.respond_to?(:prefix) yield BranchNode.new(parent, member, :delimiter => delimiter, :append => append?) end end nil end |