Class: KeyValueTree::ActiveRecordStore
- Defined in:
- lib/keyvaluetree/active_record_store.rb
Instance Method Summary collapse
- #delete(key) ⇒ Object
- #delete_all(key) ⇒ Object
-
#initialize(storage_class, key_symbol = :key, value_symbol = :value) ⇒ ActiveRecordStore
constructor
A new instance of ActiveRecordStore.
- #key(key) ⇒ Object
- #keys ⇒ Object
- #keys_starting_with(key) ⇒ Object
- #store(key, value) ⇒ Object
Methods inherited from Store
Constructor Details
#initialize(storage_class, key_symbol = :key, value_symbol = :value) ⇒ ActiveRecordStore
Returns a new instance of ActiveRecordStore.
5 6 7 8 9 |
# File 'lib/keyvaluetree/active_record_store.rb', line 5 def initialize(storage_class, key_symbol = :key, value_symbol = :value) @storage_class = storage_class @key_symbol = key_symbol @value_symbol = value_symbol end |
Instance Method Details
#delete(key) ⇒ Object
22 23 24 |
# File 'lib/keyvaluetree/active_record_store.rb', line 22 def delete(key) @storage_class.delete_all(:key => key) end |
#delete_all(key) ⇒ Object
36 37 38 39 40 |
# File 'lib/keyvaluetree/active_record_store.rb', line 36 def delete_all(key) keys_starting_with(key.to_s).each do |each| self.delete(each) end end |
#key(key) ⇒ Object
11 12 13 14 |
# File 'lib/keyvaluetree/active_record_store.rb', line 11 def key(key) entry = @storage_class.find(@key_symbol => key) entry ? entry[@value_symbol] : nil end |
#keys ⇒ Object
26 27 28 |
# File 'lib/keyvaluetree/active_record_store.rb', line 26 def keys @storage_class.all.map { |each| each[@key_symbol] } end |
#keys_starting_with(key) ⇒ Object
30 31 32 33 34 |
# File 'lib/keyvaluetree/active_record_store.rb', line 30 def keys_starting_with(key) self.keys.select do |sub_key| sub_key.start_with?(key.to_s) end end |
#store(key, value) ⇒ Object
16 17 18 19 20 |
# File 'lib/keyvaluetree/active_record_store.rb', line 16 def store(key, value) setting = @storage_class.find_or_create(@key_symbol => key) setting[@value_symbol] = value setting.save! end |