Sha256: 5890afa1453235322b76ae10489e33b087d3fdb58a7f0941985b3aa27cba7301

Contents?: true

Size: 1 KB

Versions: 22

Compression:

Stored size: 1 KB

Contents

require 'miasma'

module Miasma
  module Models
    class Storage
      # Abstract bucket
      class Bucket < Types::Model

        attribute :name, String, :required => true
        attribute :created, Time, :coerce => lambda{|t| Time.parse(t.to_s)}
        attribute :metadata, Smash, :coerce => lambda{|o| o.to_smash}

        # @return [Files]
        def files
          memoize(:files) do
            Files.new(self)
          end
        end

        # Filter buckets
        #
        # @param filter [Hash]
        # @return [Array<Bucket>]
        def filter(filter={})
          raise NotImplementedError
        end

        protected

        # Proxy reload action up to the API
        def perform_reload
          api.bucket_reload(self)
        end

        # Proxy save action up to the API
        def perform_save
          api.bucket_save(self)
        end

        # Proxy destroy action up to the API
        def perform_destroy
          api.bucket_destroy(self)
        end

      end

    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

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