Class: Protip::Transformers::TimestampTransformer
- Inherits:
-
DelegatingTransformer
- Object
- DelegatingTransformer
- Protip::Transformers::TimestampTransformer
- Defined in:
- lib/protip/transformers/timestamp_transformer.rb
Instance Method Summary collapse
-
#initialize ⇒ TimestampTransformer
constructor
A new instance of TimestampTransformer.
Methods inherited from DelegatingTransformer
#merge!, #to_message, #to_object
Methods included from Protip::Transformer
Constructor Details
#initialize ⇒ TimestampTransformer
Returns a new instance of TimestampTransformer.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/protip/transformers/timestamp_transformer.rb', line 7 def initialize super # TODO: single-message transformers are awkward to define transformer = Class.new do include Protip::Transformer def to_object(, field) # Using a Rational prevents rounding errors, see # http://stackoverflow.com/questions/16326008/accuracy-of-nanosecond-component-in-ruby-time ::Time.at(.seconds, Rational(.nanos, 1000)) end def (object, field) object = object.to_time # No-op for ::Time objects field.subtype.msgclass.new( seconds: object.to_i, nanos: object.nsec, ) end end.new self['google.protobuf.Timestamp'] = transformer end |