module ConfigManager::Settings::Persistence::ClassMethods
Public Instance Methods
build(params)
click to toggle source
# File lib/config_manager/settings/persistence.rb, line 13 def build(params) tags = (params[:tags] || params[:formatted_tags] || ""). gsub(/\s*,\s*/,','). split(',') new(params[:id], params[:value], tags) end
create(params)
click to toggle source
# File lib/config_manager/settings/persistence.rb, line 20 def create(params) setting = build(params) if setting.valid? setting.persist find(params[:id], true) else setting end end
delete(id)
click to toggle source
# File lib/config_manager/settings/persistence.rb, line 43 def delete(id) $redis.del(generate_key(id), generate_tags_key(id)) end
persist(id, value, *indexes)
click to toggle source
# File lib/config_manager/settings/persistence.rb, line 30 def persist(id, value, *indexes) $redis.set(generate_key(id), value) unless indexes.empty? $redis.sadd(generate_tags_key(id), indexes) $redis.sadd(tag_global_key, indexes) end # update global and tag indexes indexes = indexes.map{|index| generate_index(index)} indexes << global_key index_by(id, indexes) end
Private Instance Methods
index_by(id, indexes)
click to toggle source
stores the setting id under the requested indexes this allows us to search all keys for a given index such as the global index returning all keys or a tag
# File lib/config_manager/settings/persistence.rb, line 51 def index_by(id, indexes) indexes.each do |index| $redis.sadd(index, generate_key(id)) end end