Sha256: 87b15e79e6b361ca5587b80dd16a570472614b57a1001946c0a26ed9b502e3f9

Contents?: true

Size: 1.28 KB

Versions: 19

Compression:

Stored size: 1.28 KB

Contents

require 'miasma'

module Miasma
  module Models
    class Storage

      # Abstract file collection
      class Files < Types::Collection

        # @return [Bucket] parent bucket
        attr_reader :bucket

        # Create new instance
        #
        # @param bucket [Bucket] parent bucket
        # @return [self]
        def initialize(bucket)
          @bucket = bucket
          super bucket.api
        end

        # Return files matching given filter
        #
        # @param options [Hash] filter options
        # @return [Array<File>]
        # @option options [String] :prefix key prefix
        def filter(options={})
          super
        end

        # @return [File] new unsaved instance
        def build(args={})
          instance = self.model.new(bucket)
          args.each do |m_name, m_value|
            m_name = "#{m_name}="
            instance.send(m_name, m_value)
          end
          instance
        end

        # @return [File] collection item class
        def model
          File
        end

        protected

        # @return [Array<File>]
        def perform_population
          api.file_all(bucket)
        end

        # @return [Array<File>]
        def perform_filter(args)
          api.file_filter(bucket, args)
        end

      end

    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
miasma-0.3.2 lib/miasma/models/storage/files.rb
miasma-0.3.0 lib/miasma/models/storage/files.rb
miasma-0.2.38 lib/miasma/models/storage/files.rb
miasma-0.2.36 lib/miasma/models/storage/files.rb
miasma-0.2.34 lib/miasma/models/storage/files.rb
miasma-0.2.32 lib/miasma/models/storage/files.rb
miasma-0.2.30 lib/miasma/models/storage/files.rb
miasma-0.2.28 lib/miasma/models/storage/files.rb
miasma-0.2.26 lib/miasma/models/storage/files.rb
miasma-0.2.24 lib/miasma/models/storage/files.rb
miasma-0.2.22 lib/miasma/models/storage/files.rb
miasma-0.2.20 lib/miasma/models/storage/files.rb
miasma-0.2.18 lib/miasma/models/storage/files.rb
miasma-0.2.16 lib/miasma/models/storage/files.rb
miasma-0.2.14 lib/miasma/models/storage/files.rb
miasma-0.2.12 lib/miasma/models/storage/files.rb
miasma-0.2.10 lib/miasma/models/storage/files.rb
miasma-0.2.8 lib/miasma/models/storage/files.rb
miasma-0.2.6 lib/miasma/models/storage/files.rb