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
|
def children
|
||||||
db.smembers("#{scope}#{LABEL_INDEX}#{@label}").map { |member|
|
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
|
end
|
||||||
|
|
||||||
def update_index
|
def update_index
|
||||||
@label.groups.each do |label|
|
@label.groups.each do |label|
|
||||||
break if label.parent.nil?
|
# break if label.parent.nil?
|
||||||
db.sadd("#{scope}#{LABEL_INDEX}#{label.parent}", label.me)
|
parent = (label.parent || "")
|
||||||
|
db.sadd("#{scope}#{LABEL_INDEX}#{parent}", label.me)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -113,10 +113,14 @@ describe Redistat::Key do
|
|||||||
key.children.should have(1).item
|
key.children.should have(1).item
|
||||||
key.children.map { |k| k.label.me }.should == members
|
key.children.map { |k| k.label.me }.should == members
|
||||||
|
|
||||||
members = db.smembers("#{@scope}#{Redistat::LABEL_INDEX}#{key.label.parent}") # checking ''
|
members = db.smembers("#{@scope}#{Redistat::LABEL_INDEX}") # checking ''
|
||||||
members.should have(0).item
|
members.should have(1).item
|
||||||
|
members.should include('message')
|
||||||
|
|
||||||
key.parent.should be_nil
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user