Class: BinaryBlocker::PackedDateEncoder
Instance Method Summary
collapse
#initialize
#inspect, register
Methods inherited from Encoder
#block, #deblock, #initialize, #key_value?, #me
Instance Method Details
#initialize_options(*opts) ⇒ Object
591
592
593
594
|
# File 'lib/blocker.rb', line 591
def initialize_options(*opts)
super
@opts[:length] = 8
end
|
#internal_block(val) ⇒ Object
596
597
598
599
600
601
602
|
# File 'lib/blocker.rb', line 596
def internal_block(val)
if val
super val.year * 10000 + val.month * 100 + val.mday
else
super 0
end
end
|
#internal_deblock(io) ⇒ Object
604
605
606
607
608
609
610
611
612
613
|
# File 'lib/blocker.rb', line 604
def internal_deblock(io)
buffer = io.read(@bytes)
result = buffer.unpack(@format)
year, month, day = result.first.unpack("A4A2A2").map { |v| v.to_i }
if month.zero?
nil
else
Date.civil(year, month, day)
end
end
|
#valid? ⇒ Boolean
615
616
617
618
619
620
621
622
623
|
# File 'lib/blocker.rb', line 615
def valid?
case @value
when Date ; true
when Time ; true
when nil ; true
else
false
end
end
|