Class: Juno::Adapters::DataMapper
- Defined in:
- lib/juno/adapters/datamapper.rb
Overview
Datamapper backend
Defined Under Namespace
Classes: Store
Instance Method Summary collapse
- #clear(options = {}) ⇒ Object
- #delete(key, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ DataMapper
constructor
Constructor.
- #key?(key, options = {}) ⇒ Boolean
- #load(key, options = {}) ⇒ Object
- #store(key, value, options = {}) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(options = {}) ⇒ DataMapper
Constructor
Options:
-
:setup - Datamapper setup string
-
:repository - Repository name (default :juno)
-
:table - Table name (default :juno)
23 24 25 26 27 28 29 |
# File 'lib/juno/adapters/datamapper.rb', line 23 def initialize( = {}) raise ArgumentError, 'Option :setup is required' unless [:setup] @repository = .delete(:repository) || :juno Store.storage_names[@repository] = (.delete(:table) || :juno).to_s ::DataMapper.setup(@repository, [:setup]) context { Store.auto_upgrade! } end |
Instance Method Details
#clear(options = {}) ⇒ Object
64 65 66 67 |
# File 'lib/juno/adapters/datamapper.rb', line 64 def clear( = {}) context { Store.all.destroy! } self end |
#delete(key, options = {}) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/juno/adapters/datamapper.rb', line 54 def delete(key, = {}) context do if record = Store.get(key) value = record.v record.destroy! value end end end |
#key?(key, options = {}) ⇒ Boolean
31 32 33 |
# File 'lib/juno/adapters/datamapper.rb', line 31 def key?(key, = {}) context { !!Store.get(key) } end |
#load(key, options = {}) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/juno/adapters/datamapper.rb', line 35 def load(key, = {}) context do record = Store.get(key) record ? record.v : nil end end |
#store(key, value, options = {}) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/juno/adapters/datamapper.rb', line 42 def store(key, value, = {}) context do record = Store.get(key) if record record.update(:k => key, :v => value) else Store.create(:k => key, :v => value) end value end end |