Class: BinaryBlocker::PackedDateTimeEncoder
Instance Method Summary
collapse
#initialize
#inspect, register
Methods inherited from Encoder
#block, #deblock, #initialize, #key_value?, #me
Instance Method Details
#initialize_options(*opts) ⇒ Object
667
668
669
670
|
# File 'lib/blocker.rb', line 667
def initialize_options(*opts)
super
@opts[:length] = 14
end
|
#internal_block(val) ⇒ Object
672
673
674
675
676
677
678
|
# File 'lib/blocker.rb', line 672
def internal_block(val)
if val
super sprintf("%04d%02d%02d%02d%02d%02d", val.year, val.month, val.mday, val.hour, val.min, val.sec).to_i
else
super 0
end
end
|
#internal_deblock(io) ⇒ Object
680
681
682
683
684
685
686
687
688
689
|
# File 'lib/blocker.rb', line 680
def internal_deblock(io)
buffer = io.read(@bytes)
result = buffer.unpack(@format)
year, month, day, hour, min, sec = result.first.unpack("A4A2A2A2A2A2").map { |v| v.to_i }
if month.zero?
nil
else
Time.local(year, month, day, hour, min, sec)
end
end
|
#valid? ⇒ Boolean
691
692
693
694
695
696
697
698
|
# File 'lib/blocker.rb', line 691
def valid?
case @value
when Time ; true
when nil ; true
else
false
end
end
|