Sha256: faa8e4fa9a645f26a26f111f4c46a2051b5e26b49f7f7e445d95c8f70cf7d7a9
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 KB
Contents
module Dag class ObjectCollection < Model include Enumerable def initialize(api, bucket_name) super(api) @bucket = bucket_name end def [](object_name) object_named(object_name) end def where(prefix: nil, delimiter: nil) @prefix = prefix @delimiter = delimiter self end def each options = {} if @prefix options = options.merge(prefix: @prefix) end if @delimiter options = options.merge(delimiter: @delimiter) end marker = nil truncated = false begin if marker.present? options = options.merge(marker: marker) end objects_result = @api.objects(@bucket, options) objects = objects_result.full_objects truncated = objects_result.truncated? next_marker = objects_result.next_marker if next_marker.nil? marker = objects.last['Key'][0] if objects.present? else marker = next_marker end objects.each do |object| yield object_opts(object) end end while truncated end private def object_named(object_name) Dag::Object.new(@api, @bucket, object_name.to_s) end def object_opts(object_opts) Dag::Object.new(@api, @bucket, object_opts["Key"][0], object_opts) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
iij-dag-client-1.0.2 | lib/dag/client/model/object_collection.rb |
iij-dag-client-1.0.1 | lib/dag/client/model/object_collection.rb |