class Redlander::Uri
@api private Uri
(for internal use)
Public Class Methods
new(source)
click to toggle source
Create Redlander::Uri
@param [URI, String] source String or URI object to wrap into Uri
. @raise [NotImplementedError] if cannot create a Uri
from the given source. @raise [RedlandError] if it fails to create a Uri
.
# File lib/redlander/uri.rb, line 36 def initialize(source) @source = source.is_a?(FFI::Pointer) ? wrap(source) : source end
Private Class Methods
finalize_uri(rdf_uri_ptr)
click to toggle source
@api private
# File lib/redlander/uri.rb, line 26 def finalize_uri(rdf_uri_ptr) proc { Redland.librdf_free_uri(rdf_uri_ptr) } end
Public Instance Methods
eql?(other_uri)
click to toggle source
# File lib/redlander/uri.rb, line 44 def eql?(other_uri) other_uri.is_a?(Uri) && (Redland.librdf_uri_equals(rdf_uri, other_uri.rdf_uri) != 0) end
Also aliased as: ==
rdf_uri()
click to toggle source
@api private
# File lib/redlander/uri.rb, line 6 def rdf_uri unless instance_variable_defined?(:@rdf_uri) @rdf_uri = case @source when FFI::Pointer @source when URI, String Redland.librdf_new_uri(Redlander.rdf_world, @source.to_s) else raise NotImplementedError, "Cannot create Uri from '#{@source.inspect}'" end raise RedlandError, "Failed to create Uri from '#{@source.inspect}'" if @rdf_uri.null? ObjectSpace.define_finalizer(self, self.class.send(:finalize_uri, @rdf_uri)) end @rdf_uri end
to_s()
click to toggle source
# File lib/redlander/uri.rb, line 40 def to_s Redland.librdf_uri_to_string(rdf_uri) end
Private Instance Methods
wrap(u)
click to toggle source
@api private
# File lib/redlander/uri.rb, line 53 def wrap(u) if u.null? raise RedlandError, "Failed to create Uri" else Redland.librdf_new_uri_from_uri(u) end end