mirror of
https://github.com/jimeh/redistat.git
synced 2026-02-19 13:26:39 +00:00
support indexing top-level labels too
This commit is contained in:
@@ -54,14 +54,16 @@ module Redistat
|
||||
|
||||
def children
|
||||
db.smembers("#{scope}#{LABEL_INDEX}#{@label}").map { |member|
|
||||
self.class.new(self.scope, "#{@label}#{GROUP_SEPARATOR}#{member}", self.date, @options)
|
||||
child_label = [@label, member].reject { |i| i.nil? }
|
||||
self.class.new(self.scope, child_label.join(GROUP_SEPARATOR), self.date, @options)
|
||||
}
|
||||
end
|
||||
|
||||
def update_index
|
||||
@label.groups.each do |label|
|
||||
break if label.parent.nil?
|
||||
db.sadd("#{scope}#{LABEL_INDEX}#{label.parent}", label.me)
|
||||
# break if label.parent.nil?
|
||||
parent = (label.parent || "")
|
||||
db.sadd("#{scope}#{LABEL_INDEX}#{parent}", label.me)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -113,10 +113,14 @@ describe Redistat::Key do
|
||||
key.children.should have(1).item
|
||||
key.children.map { |k| k.label.me }.should == members
|
||||
|
||||
members = db.smembers("#{@scope}#{Redistat::LABEL_INDEX}#{key.label.parent}") # checking ''
|
||||
members.should have(0).item
|
||||
members = db.smembers("#{@scope}#{Redistat::LABEL_INDEX}") # checking ''
|
||||
members.should have(1).item
|
||||
members.should include('message')
|
||||
|
||||
key.parent.should be_nil
|
||||
key = Redistat::Key.new("PageViews")
|
||||
key.children.should have(1).item
|
||||
key.children.map { |k| k.label.me }.should include('message')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user