Sha256: d27a4b62289bb78e023f8a2c18d31b5584108c2f918a42281005911e0795d50a
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
module EDTF class Uncertainty < Struct.new(:year, :month, :day, :hour, :minute, :second) def uncertain?(parts = members) [parts].flatten.any? { |p| !!send(p) } end def uncertain!(parts = members) [parts].flatten.each { |p| send("#{p}=", true) } self end def certain?(parts = members); !uncertain?(parts); end def certain!(parts = members) [parts].flatten.each { |p| send("#{p}=", false) } self end end # year = [] class Unspecified < Struct.new(:year, :month, :day) def initialize super year = Array.new(4), month = Array.new(2), day = Array.new(2) end def unspecified?(parts = members) [parts].flatten.any? { |p| send(p).any? { |u| !!u } } end def unspecified!(parts = members) [parts].flatten.each { |p| send(p).map! { true } } self end def specified?(parts = members); !unspecified?(parts); end def specified!(parts = members) [parts].flatten.each { |p| send(p).map! { false } } self end alias specific? specified? alias unspecific? unspecified? alias specific! specified! alias unspecific! unspecified! private :year=, :month=, :day= def to_s [year, month, day].map { |p| p.map { |i| i ? 'u' : 's' }.join }.join('-') end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
edtf-0.0.3 | lib/edtf/uncertainty.rb |
edtf-0.0.2 | lib/edtf/uncertainty.rb |
edtf-0.0.1 | lib/edtf/uncertainty.rb |