Sha256: 7c7eee1f1d85abe08b6d3c6fd13171cdc62f05aa9a27e88ae3db661fc211c5e7

Contents?: true

Size: 890 Bytes

Versions: 5

Compression:

Stored size: 890 Bytes

Contents

require 'ripple'

module Ripple
  module Document
    # Similar to ActiveRecord's tables or MongoMapper's collections, we
    # provide a sane default bucket in which to store your documents.
    module BucketAccess
      # @return [String] The bucket name assigned to the document class.  Subclasses will inherit their bucket name from their parent class unless they redefine it.
      def bucket_name
        superclass.respond_to?(:bucket_name) ? superclass.bucket_name : model_name.plural
      end

      # @return [Riak::Bucket] The bucket assigned to this class.
      def bucket
        Ripple.client.bucket(bucket_name)
      end

      # Set the bucket name for this class and its subclasses.
      # @param [String] value the new bucket name
      def bucket_name=(value)
        (class << self; self; end).send(:define_method, :bucket_name){ value }
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 4 rubygems

Version Path
wyngle-ripple-0.1.0 lib/ripple/document/bucket_access.rb
better-ripple-1.0.0 lib/ripple/document/bucket_access.rb
ripple-1.0.0.beta2 lib/ripple/document/bucket_access.rb
seomoz-ripple-1.0.0.pre lib/ripple/document/bucket_access.rb
ripple-1.0.0.beta lib/ripple/document/bucket_access.rb