Class: ScoutApm::StoreReportingPeriodTimestamp

Inherits:
Object
  • Object
show all
Defined in:
lib/scout_apm/store.rb

Overview

A timestamp, normalized to the beginning of a minute. Used as a hash key to bucket metrics into per-minute groups

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(time = Time.now) ⇒ StoreReportingPeriodTimestamp

Returns a new instance of StoreReportingPeriodTimestamp.



147
148
149
150
# File 'lib/scout_apm/store.rb', line 147

def initialize(time=Time.now)
  @raw_time = time.utc # The actual time passed in. Store it so we can to_s it without reparsing a timestamp
  @timestamp = @raw_time.to_i - @raw_time.sec # The normalized time (integer) to compare by
end

Instance Attribute Details

#timestampObject (readonly)

Returns the value of attribute timestamp.



145
146
147
# File 'lib/scout_apm/store.rb', line 145

def timestamp
  @timestamp
end

Class Method Details

.minutes_ago(min, base_time = Time.now) ⇒ Object



152
153
154
155
# File 'lib/scout_apm/store.rb', line 152

def self.minutes_ago(min, base_time=Time.now)
  adjusted = base_time - (min * 60)
  new(adjusted)
end

Instance Method Details

#==(o) ⇒ Object



177
178
179
# File 'lib/scout_apm/store.rb', line 177

def ==(o)
  self.eql?(o)
end

#age_in_secondsObject



185
186
187
# File 'lib/scout_apm/store.rb', line 185

def age_in_seconds
  Time.now.to_i - timestamp
end

#eql?(o) ⇒ Boolean

Returns:

  • (Boolean)


173
174
175
# File 'lib/scout_apm/store.rb', line 173

def eql?(o)
  self.class == o.class && timestamp.eql?(o.timestamp)
end

#hashObject



181
182
183
# File 'lib/scout_apm/store.rb', line 181

def hash
  timestamp.hash
end

#strftime(pattern = nil) ⇒ Object



161
162
163
164
165
166
167
# File 'lib/scout_apm/store.rb', line 161

def strftime(pattern=nil)
  if pattern.nil?
    to_time.iso8601
  else
    to_time.strftime(pattern)
  end
end

#to_sObject



157
158
159
# File 'lib/scout_apm/store.rb', line 157

def to_s
  strftime
end

#to_timeObject



169
170
171
# File 'lib/scout_apm/store.rb', line 169

def to_time
  Time.at(@timestamp)
end