Class: LogStash::Timestamp
- Inherits:
-
Object
- Object
- LogStash::Timestamp
- Extended by:
- Forwardable
- Includes:
- Comparable
- Defined in:
- lib/logstash/timestamp.rb
Constant Summary collapse
- ISO8601_STRFTIME =
"%04d-%02d-%02dT%02d:%02d:%02d.%06d%+03d:00".freeze
- ISO8601_PRECISION =
3
- JODA_ISO8601_PARSER =
org.joda.time.format.ISODateTimeFormat.dateTimeParser
- UTC =
org.joda.time.DateTimeZone.forID("UTC")
Instance Attribute Summary collapse
-
#time ⇒ Object
readonly
Returns the value of attribute time.
Class Method Summary collapse
- .at(*args) ⇒ Object
-
.coerce(time) ⇒ Timestamp?
coerce tries different strategies based on the time object class to convert into a Timestamp.
- .now ⇒ Object
- .parse(*args) ⇒ Object
- .parse_iso8601(t) ⇒ Object
Instance Method Summary collapse
- #-(value) ⇒ Object
-
#initialize(time = Time.new) ⇒ Timestamp
constructor
A new instance of Timestamp.
- #to_iso8601 ⇒ Object (also: #to_s)
- #to_json(*args) ⇒ Object (also: #inspect)
- #utc ⇒ Object (also: #gmtime)
Constructor Details
#initialize(time = Time.new) ⇒ Timestamp
Returns a new instance of Timestamp.
22 23 24 |
# File 'lib/logstash/timestamp.rb', line 22 def initialize(time = Time.new) @time = time.utc end |
Instance Attribute Details
#time ⇒ Object (readonly)
Returns the value of attribute time.
17 18 19 |
# File 'lib/logstash/timestamp.rb', line 17 def time @time end |
Class Method Details
.at(*args) ⇒ Object
26 27 28 |
# File 'lib/logstash/timestamp.rb', line 26 def self.at(*args) Timestamp.new(::Time.at(*args)) end |
.coerce(time) ⇒ Timestamp?
coerce tries different strategies based on the time object class to convert into a Timestamp.
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/logstash/timestamp.rb', line 42 def self.coerce(time) case time when String LogStash::Timestamp.parse_iso8601(time) when LogStash::Timestamp time when Time LogStash::Timestamp.new(time) else nil end end |
.now ⇒ Object
34 35 36 |
# File 'lib/logstash/timestamp.rb', line 34 def self.now Timestamp.new(::Time.now) end |
.parse(*args) ⇒ Object
30 31 32 |
# File 'lib/logstash/timestamp.rb', line 30 def self.parse(*args) Timestamp.new(::Time.parse(*args)) end |
.parse_iso8601(t) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/logstash/timestamp.rb', line 59 def self.parse_iso8601(t) millis = JODA_ISO8601_PARSER.parseMillis(t) LogStash::Timestamp.at(millis / 1000, (millis % 1000) * 1000) rescue => e raise(TimestampParserError, "invalid timestamp string #{t.inspect}, error=#{e.inspect}") end |
Instance Method Details
#-(value) ⇒ Object
93 94 95 |
# File 'lib/logstash/timestamp.rb', line 93 def -(value) @time - (value.is_a?(Timestamp) ? value.time : value) end |
#to_iso8601 ⇒ Object Also known as: to_s
88 89 90 |
# File 'lib/logstash/timestamp.rb', line 88 def to_iso8601 @iso8601 ||= @time.iso8601(ISO8601_PRECISION) end |
#to_json(*args) ⇒ Object Also known as: inspect
82 83 84 85 |
# File 'lib/logstash/timestamp.rb', line 82 def to_json(*args) # ignore arguments to respect accepted to_json method signature "\"" + to_iso8601 + "\"" end |
#utc ⇒ Object Also known as: gmtime
76 77 78 79 |
# File 'lib/logstash/timestamp.rb', line 76 def utc @time.utc # modifies the receiver self end |