Sha256: 0fcada025aa9898e06bac1be51d98fa046bafb595dc3d2671bac55dcce0d687f
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
module Redlander class Uri attr_reader :rdf_uri def initialize(source) @rdf_uri = case source when URI, String Redland.librdf_new_uri(Redlander.rdf_world, source.to_s) when Node if source.resource? copy_rdf_uri_on_initialize(Redland.librdf_node_get_uri(source.rdf_node)) elsif source.literal? copy_rdf_uri_on_initialize(Redland.librdf_node_get_literal_value_datatype_uri(source.rdf_node)) else raise NotImplementedError.new end else # TODO raise NotImplementedError.new end raise RedlandError.new("Failed to create URI from '#{source.inspect}'") if @rdf_uri.null? ObjectSpace.define_finalizer(self, proc { Redland.librdf_free_uri(@rdf_uri) }) end def to_s Redland.librdf_uri_to_string(@rdf_uri) end private def copy_rdf_uri_on_initialize(u) if u.null? raise RedlandError.new("Failed to create URI") else Redland.librdf_new_uri_from_uri(u) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
redlander-0.3.6 | lib/redlander/uri.rb |
redlander-0.3.5 | lib/redlander/uri.rb |