Sha256: 1a7306b1b4aad0d5d78894effad85b7212d7772f56168cc6860c1d1e406bf964
Contents?: true
Size: 866 Bytes
Versions: 3
Compression:
Stored size: 866 Bytes
Contents
require 'xml/mapping/base' class TimeNode < XML::Mapping::SingleAttributeNode def initialize_impl(path) @y_path = XML::XXPath.new(path+"/year") @m_path = XML::XXPath.new(path+"/month") @d_path = XML::XXPath.new(path+"/day") end def extract_attr_value(xml) y,m,d = default_when_xpath_err{ [@y_path.first(xml).text.to_i, @m_path.first(xml).text.to_i, @d_path.first(xml).text.to_i] } Time.local(y,m,d) end def set_attr_value(xml, value) raise "Not a Time: #{value}" unless Time===value @y_path.first(xml,:ensure_created=>true).text = value.year @m_path.first(xml,:ensure_created=>true).text = value.month @d_path.first(xml,:ensure_created=>true).text = value.day end end XML::Mapping.add_node_class TimeNode
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
pdf-labels-1.0.0 | vendor/xml-mapping/examples/time_node.rb |
xml-mapping-0.8.1 | examples/time_node.rb |
xml-mapping-0.8 | examples/time_node.rb |