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