class Fluent::EventTime
Constants
- FORMATTER
- TYPE
Public Class Methods
eq?(a, b)
click to toggle source
# File lib/fluent/time.rb, line 106 def self.eq?(a, b) if a.is_a?(Fluent::EventTime) && b.is_a?(Fluent::EventTime) a.sec == b.sec && a.nsec == b.nsec else a == b end end
from_msgpack_ext(data)
click to toggle source
# File lib/fluent/time.rb, line 98 def self.from_msgpack_ext(data) new(*data.unpack('NN')) end
from_time(time)
click to toggle source
# File lib/fluent/time.rb, line 102 def self.from_time(time) Fluent::EventTime.new(time.to_i, time.nsec) end
new(sec, nsec = 0)
click to toggle source
# File lib/fluent/time.rb, line 29 def initialize(sec, nsec = 0) @sec = sec @nsec = nsec end
now()
click to toggle source
# File lib/fluent/time.rb, line 114 def self.now # This method is called many time. so call Process.clock_gettime directly instead of Fluent::Clock.real_now now = Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond) Fluent::EventTime.new(now / 1_000_000_000, now % 1_000_000_000) end
parse(*args)
click to toggle source
# File lib/fluent/time.rb, line 120 def self.parse(*args) from_time(Time.parse(*args)) end
Public Instance Methods
==(other)
click to toggle source
# File lib/fluent/time.rb, line 34 def ==(other) if other.is_a?(Fluent::EventTime) @sec == other.sec else @sec == other end end
coerce(other)
click to toggle source
for > and others
# File lib/fluent/time.rb, line 65 def coerce(other) [other, @sec] end
inspect()
click to toggle source
# File lib/fluent/time.rb, line 129 def inspect FORMATTER.exec(Time.at(self)) end
method_missing(name, *args, &block)
click to toggle source
TODO: For performance, implement +, -, and so on
# File lib/fluent/time.rb, line 125 def method_missing(name, *args, &block) @sec.send(name, *args, &block) end
nsec()
click to toggle source
# File lib/fluent/time.rb, line 46 def nsec @nsec end
sec()
click to toggle source
# File lib/fluent/time.rb, line 42 def sec @sec end
to_f()
click to toggle source
# File lib/fluent/time.rb, line 55 def to_f @sec + @nsec / 1_000_000_000.0 end
to_int()
click to toggle source
# File lib/fluent/time.rb, line 50 def to_int @sec end
Also aliased as: to_i
to_json(*args)
click to toggle source
# File lib/fluent/time.rb, line 86 def to_json(*args) @sec.to_s end
to_msgpack(io = nil)
click to toggle source
# File lib/fluent/time.rb, line 90 def to_msgpack(io = nil) @sec.to_msgpack(io) end
to_msgpack_ext()
click to toggle source
# File lib/fluent/time.rb, line 94 def to_msgpack_ext [@sec, @nsec].pack('NN') end
to_r()
click to toggle source
for Time.at
# File lib/fluent/time.rb, line 60 def to_r Rational(@sec * 1_000_000_000 + @nsec, 1_000_000_000) end
to_s()
click to toggle source
# File lib/fluent/time.rb, line 69 def to_s @sec.to_s end
to_time()
click to toggle source
# File lib/fluent/time.rb, line 77 def to_time Time.at(@sec, @nsec, :nanosecond) end