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