79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/amee/data_item_value.rb', line 79
def self.from_xml(xml, path)
@doc = xml.is_a?(String) ? load_xml_doc(xml) : xml
data = {}
if @doc.xpath("descendant-or-self::ItemValue").length>1
raise AMEE::BadData.new("Couldn't load DataItemValue from XML. This is an item value history.\n#{xml}")
end
raise if @doc.xpath("descendant-or-self::ItemValue").length==0
begin
data[:uid] = x "@uid"
data[:created] = DateTime.parse(x "@Created") rescue nil
data[:modified] = DateTime.parse(x "@Modified") rescue nil
data[:name] = x 'Name'
data[:path] = path.gsub(/^\/data/, '')
data[:value] = x 'Value'
data[:type] = x 'ItemValueDefinition/ValueDefinition/ValueType'
data[:from_profile] = false
data[:from_data] = true
data[:start_date] = DateTime.parse(x "StartDate") rescue nil
ItemValue.new(data)
rescue
raise AMEE::BadData.new("Couldn't load DataItemValue from XML. Check that your URL is correct.\n#{xml}")
end
end
|