module RedisScanner class Rule PRESET_RULES = [ [/(:\d+:)/, "::"], [/(:\w{8}-\w{4}-\w{4}-\w{4}-\w{12}:)/, "::"], [/(:\d{4}-\d{2}-\d{2}:)/, "::"], [/(:\d+)$/, ":"], [/(:\w{8}-\w{4}-\w{4}-\w{4}-\w{12})$/, ":"], [/(:\d{4}-\d{2}-\d{2})$/, ":"] ] def initialize @rules = PRESET_RULES end def extract_pattern(key) @rules.each do |rule, replacer| if m = rule.match(key) key = key.sub(m[1], replacer) break end end key end end end