module Spira::Type
Spira::Type
can be included by classes to create new property types for Spira
. These types are responsible for serialization a Ruby value into an `RDF::Value`, and deserialization of an `RDF::Value` into a Ruby value.
A simple example:
class Integer include Spira::Type def self.unserialize(value) value.object end def self.serialize(value) RDF::Literal.new(value) end register_alias XSD.integer end
This example will serialize and deserialize integers. It's included with Spira
by default. It allows either of the following forms to declare an integer property on a Spira
resource:
property :age, predicate: RDF::Vocab::FOAF.age, type: Integer property :age, predicate: RDF::Vocab::FOAF.age, type: RDF::XSD.integer
`Spira::Type`s include the RDF
namespace and thus have all of the base RDF
vocabularies available to them without the `RDF::` prefix.
Public Class Methods
included(child)
click to toggle source
Make the DSL available to a child class.
@private
# File lib/spira/type.rb, line 43 def self.included(child) child.extend(ClassMethods) Spira.type_alias(child,child) end