mirror of
https://github.com/jimeh/redistat.git
synced 2026-02-19 13:26:39 +00:00
Allow for configurable group separator
This commit is contained in:
@@ -38,6 +38,21 @@ describe Redistat::Label do
|
||||
label.to_s.should == 'email/message/public'
|
||||
end
|
||||
|
||||
it "should allow you to use a different group separator" do
|
||||
include Redistat
|
||||
Redistat.group_separator = '|'
|
||||
label = Label.join('email', 'message', 'public')
|
||||
label.should be_a(Label)
|
||||
label.to_s.should == 'email|message|public'
|
||||
label = Label.join(Label.new('email'), Label.new('message'), Label.new('public'))
|
||||
label.should be_a(Label)
|
||||
label.to_s.should == 'email|message|public'
|
||||
label = Label.join('email', '', 'message', nil, 'public')
|
||||
label.should be_a(Label)
|
||||
label.to_s.should == 'email|message|public'
|
||||
Redistat.group_separator = Redistat::GROUP_SEPARATOR
|
||||
end
|
||||
|
||||
describe "Grouping" do
|
||||
before(:each) do
|
||||
@name = "message/public/offensive"
|
||||
|
||||
@@ -136,4 +136,41 @@ describe Redistat::Summary do
|
||||
summary["visitors/us"].should == "8"
|
||||
end
|
||||
|
||||
it "should store label-based grouping enabled stats using a different group separator" do
|
||||
Redistat.group_separator = '|'
|
||||
stats = {"views" => 3, "visitors|eu" => 2, "visitors|us" => 4}
|
||||
label = "views|about_us"
|
||||
key = Redistat::Key.new(@scope, label, @date)
|
||||
Redistat::Summary.update_all(key, stats, :hour)
|
||||
|
||||
key.groups[0].label.to_s.should == "views|about_us"
|
||||
key.groups[1].label.to_s.should == "views"
|
||||
child1 = key.groups[0]
|
||||
parent = key.groups[1]
|
||||
|
||||
label = "views|contact"
|
||||
key = Redistat::Key.new(@scope, label, @date)
|
||||
Redistat::Summary.update_all(key, stats, :hour)
|
||||
|
||||
key.groups[0].label.to_s.should == "views|contact"
|
||||
key.groups[1].label.to_s.should == "views"
|
||||
child2 = key.groups[0]
|
||||
|
||||
summary = db.hgetall(child1.to_s(:hour))
|
||||
summary["views"].should == "3"
|
||||
summary["visitors|eu"].should == "2"
|
||||
summary["visitors|us"].should == "4"
|
||||
|
||||
summary = db.hgetall(child2.to_s(:hour))
|
||||
summary["views"].should == "3"
|
||||
summary["visitors|eu"].should == "2"
|
||||
summary["visitors|us"].should == "4"
|
||||
|
||||
summary = db.hgetall(parent.to_s(:hour))
|
||||
summary["views"].should == "6"
|
||||
summary["visitors|eu"].should == "4"
|
||||
summary["visitors|us"].should == "8"
|
||||
Redistat.group_separator = Redistat::GROUP_SEPARATOR
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user