@return [String,nil] The prefix of this collection.
@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
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
@private
# File lib/aws/s3/prefixed_collection.rb, line 73 def list_options(options) opts = super opts[:prefix] = prefix if prefix opts end