class Factoid::Value
Constants
- EMPTY
- Interpreters
Public Class Methods
from_xml(container_elem)
click to toggle source
# File lib/factoid/xml.rb, line 82 def Value.from_xml(container_elem) elem = container_elem.at('./f:value', NS) type = elem.attr('type') # TODO: special case for entitoids # TODO: use type = :entitoid_ref instead of nil return Value.new(type, elem) end
new(type, raw_value)
click to toggle source
# File lib/factoid/value.rb, line 6 def initialize(type, raw_value) @type = type @raw_value = raw_value end
Public Instance Methods
value(interpret, follow)
click to toggle source
# File lib/factoid/value.rb, line 13 def value(interpret, follow) raw = nil if @raw_value.elements.empty? raw = @raw_value.text else raw = @raw_value end if !interpret return raw end interpreter = Interpreters.find { |i| begin i.accept?(@type, raw); rescue; end; } v = interpreter.interpret(@type, raw) if !follow return v end # FIXME: use Dereferenciators (like Interpreters) if v.is_a? EntitoidRef r = v.deref else r = v end return r end