Class: Literal
- Inherits:
-
Object
- Object
- Literal
- Defined in:
- lib/active_rdf/objectmanager/literal.rb
Overview
Represents an RDF literal, optionally datatyped. TODO: language tags
Instance Attribute Summary collapse
-
#language ⇒ Object
readonly
Returns the value of attribute language.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
-
#initialize(value, type_or_language = nil) ⇒ Literal
constructor
Constructs literal with given datatype.
-
#to_s ⇒ Object
returns string serialisation of literal, e.g.
Constructor Details
#initialize(value, type_or_language = nil) ⇒ Literal
Constructs literal with given datatype. If no datatype is given, automatic conversion from Ruby to XSD datatype is tried.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/active_rdf/objectmanager/literal.rb', line 13 def initialize(value, type_or_language=nil) @value = value if type_or_language.nil? # deduce type from the given value @type = case value when String XSD::string when Date, Time, DateTime XSD::date when TrueClass, FalseClass XSD::boolean when Fixnum XSD::integer end elsif type_or_language[0..0] == "@" # a language tag has been given @language = type_or_language[1..type_or_language.length] else # the type_or_language was not empty and did not start with a @ so it must be a data type @type = type_or_language end end |
Instance Attribute Details
#language ⇒ Object (readonly)
Returns the value of attribute language.
8 9 10 |
# File 'lib/active_rdf/objectmanager/literal.rb', line 8 def language @language end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
8 9 10 |
# File 'lib/active_rdf/objectmanager/literal.rb', line 8 def type @type end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
8 9 10 |
# File 'lib/active_rdf/objectmanager/literal.rb', line 8 def value @value end |
Instance Method Details
#to_s ⇒ Object
returns string serialisation of literal, e.g. “test”^^xsd:string
39 40 41 42 43 44 45 46 47 |
# File 'lib/active_rdf/objectmanager/literal.rb', line 39 def to_s if type "\"#{value}\"^^#{type.to_s}" elsif language "\"#{value}\"@#{language}" else "\"value\"" end end |