class TabsTabs::Metrics::Task::Token
Attributes
key[R]
token[R]
Public Class Methods
new(token, key)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 10 def initialize(token, key) @key = key @token = token end
Public Instance Methods
==(other_token)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 33 def ==(other_token) self.token == other_token.token end
complete(timestamp=Time.now)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 21 def complete(timestamp=Time.now) self.complete_time = timestamp.utc unless sismember(tokens_storage_key, token) raise UnstartedTaskMetricError.new("No task for metric '#{key}' was started with token '#{token}'") end TabsTabs::Resolution.all.each { |res| record_complete(res, complete_time) } end
start(timestamp=Time.now)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 15 def start(timestamp=Time.now) self.start_time = timestamp.utc sadd(tokens_storage_key, token) TabsTabs::Resolution.all.each { |res| record_start(res, start_time) } end
time_elapsed(resolution)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 29 def time_elapsed(resolution) TabsTabs::Resolution.from_seconds(resolution, complete_time - start_time) end
to_s()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 37 def to_s "#{super}:#{token}" end
Private Instance Methods
complete_time()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 82 def complete_time Time.parse(get(completed_storage_key)) end
complete_time=(timestamp)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 77 def complete_time=(timestamp) set(completed_storage_key, timestamp) @complete_time = timestamp end
completed_storage_key()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 52 def completed_storage_key "stat:task:#{key}:#{token}:completed_time" end
record_complete(resolution, timestamp)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 64 def record_complete(resolution, timestamp) sadd(storage_key(resolution, timestamp, "completed"), token) end
record_start(resolution, timestamp)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 60 def record_start(resolution, timestamp) sadd(storage_key(resolution, timestamp, "started"), token) end
start_time()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 73 def start_time Time.parse(get(started_storage_key)) end
start_time=(timestamp)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 68 def start_time=(timestamp) set(started_storage_key, timestamp) @start_time = timestamp end
started_storage_key()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 48 def started_storage_key "stat:task:#{key}:#{token}:started_time" end
storage_key(resolution, timestamp, type)
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 43 def storage_key(resolution, timestamp, type) formatted_time = TabsTabs::Resolution.serialize(resolution, timestamp) "stat:task:#{key}:#{type}:#{resolution}:#{formatted_time}" end
tokens_storage_key()
click to toggle source
# File lib/tabs_tabs/metrics/task/token.rb, line 56 def tokens_storage_key "stat:task:#{key}:tokens" end