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