Sha256: 77e3b8b84c50f8905b470a595f886d462752a7878610c434bffafafb28874120
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
require 'couchbase_doc_store' # haven't written this one yet... it's a copy of Stack code module CouchbaseStructures class SortedList include CouchbaseDocStore attr_accessor :sort_type, :sort_key def initialize(key, attr = {}) if attr.has_key? :sort_type case attr[:sort_type] when :json @sort_type = :json @sort_key = attr[:sort_key] when :simple @sort_type = :simple end end @key = key @list_key = "#{key}::sorted_list" initialize_document(@list_key, { :sorted_list => [], :last_updated => Time.now.utc.to_i }) self end def add(value) doc = get_document(@list_key) list = doc["sorted_list"] list << value # simple sort only for singular values, string, integer, float, etc. list.sort! # complex sort for Hash types doc["sorted_list"] = list doc["last_updated"] = Time.now.utc.to_i replace_document(@list_key, doc) list end def items doc = get_document(@list_key) doc["sorted_list"] end def size doc = get_document(@list_key) doc["sorted_list"].size end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
couchbase-structures-0.0.9 | lib/couchbase_structures/sorted_list.rb |
couchbase-structures-0.0.4 | lib/couchbase_structures/sorted_list.rb |