exposed the scope attribute of Event and Key

objects
This commit is contained in:
2010-07-20 01:07:55 +03:00
parent 475fc6e1a6
commit de018d7348
4 changed files with 42 additions and 27 deletions

View File

@@ -1,21 +1,26 @@
module Redistat
class Event
attr_reader :scope
attr_reader :key
attr_accessor :data
attr_accessor :stats
attr_accessor :meta
attr_accessor :options
def initialize(scope, label = nil, data = {}, date = nil, options = {})
@options = options
def initialize(scope, label = nil, date = nil, stats = {}, meta = {}, options = {})
@options = default_options.merge(options)
@scope = scope
@key = Key.new(scope, label, date, options)
#TODO ...intialize Redistat::Event
@key = Key.new(scope, label, date, @options)
@stats = stats ||= {}
@meta = meta ||= {}
end
def default_options
{ :depth => :hour, }
end
def date
@key.date.to_time
@key.date
end
def date=(input)
@@ -25,6 +30,14 @@ module Redistat
alias :time :date
alias :time= :date=
def scope
@key.scope
end
def scope=(input)
@key.scope = input
end
def label
@key.label
end

View File

@@ -3,12 +3,13 @@ module Redistat
attr_accessor :scope
attr_accessor :date
attr_accessor :options
def initialize(scope, label = nil, date = nil, options = {})
@scope = scope
self.label = label if !label.nil?
self.date = date ||= Time.now
@options = options
self.options = options
end
def date=(input)

View File

@@ -6,29 +6,27 @@ describe Redistat::Event do
@scope = "PageViews"
@label = "about_us"
@label_hash = Digest::SHA1.hexdigest(@label)
@stats = {:views => 1}
@meta = {:user_id => 239}
@options = {:depth => :hour}
@date = Time.now
@event = Redistat::Event.new(@scope, @label, {:views => 1}, @date, {:depth => :hour})
@event = Redistat::Event.new(@scope, @label, @date, @stats, @meta, @options)
end
# it "should initialize properly"
it "should allow changing Date" do
@event.time.should == @date
it "should allow changing attributes" do
# date
@event.date.to_time.should == @date
@date = Time.now
@event.date = @date
@event.time.should == @date
end
it "should allow changing Label" do
@event.date.to_time.should == @date
# label
@event.label.should == @label
@event.label_hash.should == @label_hash
@label = "contact_us"
@label_hash = Digest::SHA1.hexdigest(@label)
@event.label = @label
@event.label.should == @label
@event.label_hash.should == @label_hash
end

View File

@@ -30,19 +30,22 @@ describe Redistat::Key do
it "should abide to hash_label option" do
@key = Redistat::Key.new(@scope, @label, @date, {:depth => :day, :label_hash => true})
@key.to_s.should == "#{@scope}/#{@label_hash}:#{@key.date.to_s(:day)}"
@key = Redistat::Key.new(@scope, @label, @date, {:depth => :day, :label_hash => false})
@key.to_s.should == "#{@scope}/#{@label}:#{@key.date.to_s(:day)}"
end
it "should allow changing Date" do
it "should allow changing attributes" do
# scope
@key.scope.should == @scope
@scope = "VisitorCount"
@key.scope = @scope
@key.scope.should == @scope
# date
@key.date.to_time.should == @date
now = Time.now
@key.date = now
@key.date.to_time.should == now
end
it "should allow changing Label" do
@date = Time.now
@key.date = @date
@key.date.to_time.should == @date
# label
@key.label.should == @label
@key.label_hash == @label_hash
@label = "contact_us"