module AWS::S3::PrefixedCollection

Attributes

prefix[R]

@return [String,nil] The prefix of this collection.

Public Class Methods

new(*args) click to toggle source

@private

# File lib/aws/s3/prefixed_collection.rb, line 22
def initialize *args
  options = args.last.is_a?(Hash) ? args.pop : {}
  @prefix = options[:prefix]
  args.push(options)
  super(*args)
end

Public Instance Methods

with_prefix(prefix, mode = :replace) click to toggle source

Returns a new collection with a different prefix

@example

objects = collection.with_prefix('photos')
objects.prefix #=> 'photos'

@example Chaining #with_prefix replaces previous prefix

objects = collection.with_prefix('photos').with_prefix('videos')
objects.prefix #=> 'videos'

@example Chaining #with_prefix with :append

objects = collection.with_prefix('a/').with_prefix('b/', :append)
objects.prefix #=> 'a/b/'

@example Chaining #with_prefix with :prepend

objects = collection.with_prefix('a/').with_prefix('b/', :prepend)
objects.prefix #=> 'b/a/'

@param [String] prefix The prefix condition that limits what objects

are returned by this collection.

@param [Symbol] mode (:replace) If you chain calls to with_prefix

the +mode+ affects if the prefix prepends, appends, or replaces.
Valid modes are:
* +:replace+
* +:append+
* +:prepend+

@return [Collection] Returns a new collection with a modified prefix.

# File lib/aws/s3/prefixed_collection.rb, line 59
def with_prefix prefix, mode = :replace
  new_prefix = case mode
  when :replace then prefix
  when :append  then "#{@prefix}#{prefix}"
  when :prepend then "#{prefix}#{@prefix}"
  else
    raise ArgumentError, "invalid prefix mode `#{mode}`, it must be " +
      ":replace, :append or :prepend"
  end
  self.class.new(bucket, :prefix => new_prefix)
end

Protected Instance Methods

list_options(options) click to toggle source

@private

# File lib/aws/s3/prefixed_collection.rb, line 73
def list_options(options)
  opts = super
  opts[:prefix] = prefix if prefix
  opts
end