class KeyValueTree::ActiveRecordStore
Public Class Methods
new(storage_class, key_symbol = :key, value_symbol = :value)
click to toggle source
# 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
Public Instance Methods
delete(key)
click to toggle source
# File lib/keyvaluetree/active_record_store.rb, line 22 def delete(key) @storage_class.delete_all(:key => key) end
delete_all(key)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/keyvaluetree/active_record_store.rb, line 26 def keys @storage_class.all.map { |each| each[@key_symbol] } end
keys_starting_with(key)
click to toggle source
# 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)
click to toggle source
# 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