Class: AWS::S3::Tree::ChildCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/aws/s3/tree/child_collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#collectionObjectCollection, ... (readonly)



48
49
50
# File 'lib/aws/s3/tree/child_collection.rb', line 48

def collection
  @collection
end

#delimiterString (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

#parentTree, BranchNode (readonly)



43
44
45
# File 'lib/aws/s3/tree/child_collection.rb', line 43

def parent
  @parent
end

#prefixString? (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



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).

Yields:

  • (tree_node)

    Yields up a mixture of branches and leafs.

Yield Parameters:



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