Class: TabsTabs::Metrics::Task::Token

Inherits:
Object
  • Object
show all
Includes:
Storage
Defined in:
lib/tabs_tabs/metrics/task/token.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Storage

#del, #del_by_prefix, #exists, #expireat, #get, #hdel, #hget, #hgetall, #hincrby, #hkeys, #hset, #incr, #mget, #redis, #rpush, #sadd, #set, #sismember, #smembers, #smembers_all, #tabs_key, #ttl

Constructor Details

#initialize(token, key) ⇒ Token

Returns a new instance of Token.



10
11
12
13
# File 'lib/tabs_tabs/metrics/task/token.rb', line 10

def initialize(token, key)
  @key = key
  @token = token
end

Instance Attribute Details

#keyObject (readonly)

Returns the value of attribute key.



7
8
9
# File 'lib/tabs_tabs/metrics/task/token.rb', line 7

def key
  @key
end

#tokenObject (readonly)

Returns the value of attribute token.



8
9
10
# File 'lib/tabs_tabs/metrics/task/token.rb', line 8

def token
  @token
end

Instance Method Details

#==(other_token) ⇒ Object



33
34
35
# File 'lib/tabs_tabs/metrics/task/token.rb', line 33

def ==(other_token)
  self.token == other_token.token
end

#complete(timestamp = Time.now) ⇒ Object



21
22
23
24
25
26
27
# 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) ⇒ Object



15
16
17
18
19
# 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) ⇒ Object



29
30
31
# 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_sObject



37
38
39
# File 'lib/tabs_tabs/metrics/task/token.rb', line 37

def to_s
  "#{super}:#{token}"
end