class Etcd::Completion
Attributes
client[R]
Public Class Methods
new(opts={})
click to toggle source
# File lib/etcd-completion.rb, line 18 def initialize(opts={}) @client = opts[:client] || Etcd.client(opts) end
Public Instance Methods
filter(nodes, prefix)
click to toggle source
# File lib/etcd-completion.rb, line 35 def filter(nodes, prefix) nodes.select do |n| n.key.start_with?(prefix) end end
matches(prefix)
click to toggle source
# File lib/etcd-completion.rb, line 41 def matches(prefix) node = client.get(node_name(prefix)).node nodes = [node] + node.children nodes = filter(nodes, prefix) if nodes.size == 1 if nodes[0].directory? nodes += client.get(nodes[0].key).node.children end end nodes end
node_name(prefix)
click to toggle source
# File lib/etcd-completion.rb, line 22 def node_name(prefix) if (prefix == '/') '/' else index = prefix.rindex('/') if index.nil? '/' else prefix[0..index] end end end