Object
Datamapper backend @api public
@param [Hash] options @option options [String] :setup Datamapper setup string @option options [String/Symbol] :repository (:moneta) Repository name @option options [String/Symbol] :table (:moneta) Table name
# File lib/moneta/adapters/datamapper.rb, line 24 def initialize(options = {}) raise ArgumentError, 'Option :setup is required' unless options[:setup] @repository = (options.delete(:repository) || :moneta).to_sym Store.storage_names[@repository] = (options.delete(:table) || :moneta).to_s ::DataMapper.setup(@repository, options[:setup]) context { Store.auto_upgrade! } end
(see Proxy#clear)
# File lib/moneta/adapters/datamapper.rb, line 84 def clear(options = {}) context { Store.all.destroy! } self end
(see Proxy#create)
# File lib/moneta/adapters/datamapper.rb, line 61 def create(key, value, options = {}) context do Store.create(:k => key, :v => value) true end rescue # FIXME: This catches too many errors # it should only catch a not-unique-exception false end
(see Proxy#delete)
# File lib/moneta/adapters/datamapper.rb, line 73 def delete(key, options = {}) context do if record = Store.get(key) value = record.v record.destroy! value end end end
(see Proxy#key?)
# File lib/moneta/adapters/datamapper.rb, line 33 def key?(key, options = {}) context { Store.get(key) != nil } end
(see Proxy#load)
# File lib/moneta/adapters/datamapper.rb, line 38 def load(key, options = {}) context do record = Store.get(key) record && record.v end end
(see Proxy#store)
# File lib/moneta/adapters/datamapper.rb, line 46 def store(key, value, options = {}) context do if record = Store.get(key) record.update(:k => key, :v => value) else Store.create(:k => key, :v => value) end value end rescue tries ||= 0 (tries += 1) < 10 ? retry : raise end
Generated with the Darkfish Rdoc Generator 2.