module RedisUIHelpers

Public Instance Methods

build_namespace_tree(keys) click to toggle source
# File lib/redis-ui/helpers.rb, line 68
def build_namespace_tree(keys)
  @namespace_tree = {}
  namespaces = keys.map{|k| k.split(':')[0..-2]}.uniq.sort_by(&:size)
  namespaces.each do |array|
    hash = array.reverse.inject({}) do |branch, string|
      newtrunk = {}
      newtrunk[string] = branch
      newtrunk
    end
    @namespace_tree.deep_merge!(hash)
  end
end
current_ns() click to toggle source
# File lib/redis-ui/helpers.rb, line 12
def current_ns
  @current_ns ||= ''
end
get_key(key, redis=self.redis) click to toggle source
# File lib/redis-ui/helpers.rb, line 16
def get_key(key, redis=self.redis)
  data = case redis.type(key)
         when "string"
           redis[key]
         when "list"
           redis.lrange(key, 0, -1)
         when "set"
           redis.smembers(key)
         when 'zset'
           redis.zrange(key, 0, -1)
         when 'hash'
           redis.hgetall(key)
         else
           '???'
         end

  {:key => key, :type => redis.type(key), :data => data}
end
partial(template,locals=nil) click to toggle source
# File lib/redis-ui/helpers.rb, line 6
def partial(template,locals=nil)
  locals = (locals.is_a?(Hash)) ? locals : {template.to_sym => locals}
  template = ('_' + template.to_s).to_sym
  erb template, {layout: false}, locals
end
redis() click to toggle source
# File lib/redis-ui/helpers.rb, line 2
def redis
  RedisUI.redis
end
render_tree(val) click to toggle source
# File lib/redis-ui/helpers.rb, line 60
def render_tree(val)
  str = "<ul>"
  val.each do |k, v|
    str << "<li><a href='#'>#{k}</a>#{render_tree(v)}</li>"
  end
  str << '</ul>'
end
show(val) click to toggle source
# File lib/redis-ui/helpers.rb, line 35
def show(val)
  case val
  when String
    val
  when Array
    if val.empty?
      '[]'
    else
      str = "<ul><li> · "
      str << val.map{|v|show(v)}.join('</li><li> · ')
      str << '</li></ul>'
    end
  when Hash
    str = "<ul><li> · "
    arr = []
    val.map do |k, v|
      arr << "#{k} => #{show(v)}"
    end
    str << arr.join("</li><li> · ")
    str << '</li></ul>'
  else
    val.to_s
  end
end