module LinkedRails::Model::Iri
Public Instance Methods
anonymous_iri()
click to toggle source
# File lib/linked_rails/model/iri.rb, line 8 def anonymous_iri @anonymous_iri ||= RDF::Node.new end
anonymous_iri?()
click to toggle source
# File lib/linked_rails/model/iri.rb, line 12 def anonymous_iri? self.class < ActiveRecord::Base && new_record? end
iri(opts = {})
click to toggle source
@return [RDF::URI].
# File lib/linked_rails/model/iri.rb, line 17 def iri(opts = {}) return anonymous_iri if anonymous_iri? return iri_with_root(root_relative_iri(opts)) if opts.present? @iri ||= iri_with_root(root_relative_iri) end
iri_opts()
click to toggle source
@return [Hash]
# File lib/linked_rails/model/iri.rb, line 25 def iri_opts @iri_opts ||= { fragment: route_fragment, id: to_param } end
rdf_type()
click to toggle source
# File lib/linked_rails/model/iri.rb, line 32 def rdf_type self.class.iri end
reload(_opts = {})
click to toggle source
Calls superclass method
# File lib/linked_rails/model/iri.rb, line 36 def reload(_opts = {}) @iri = nil super end
root_relative_iri(opts = {})
click to toggle source
@return [RDF::URI]
# File lib/linked_rails/model/iri.rb, line 42 def root_relative_iri(opts = {}) RDF::URI(expand_iri_template(iri_opts.merge(opts))) end
route_fragment()
click to toggle source
@return [String, Symbol]
# File lib/linked_rails/model/iri.rb, line 47 def route_fragment; end
Private Instance Methods
expand_iri_template(args = {})
click to toggle source
@return [String]
# File lib/linked_rails/model/iri.rb, line 52 def expand_iri_template(args = {}) iri_template.expand(args) end
iri_template()
click to toggle source
@return [URITemplate]
# File lib/linked_rails/model/iri.rb, line 65 def iri_template self.class.iri_template end
iri_template_expand_path(template_base, path)
click to toggle source
@return [URITemplate]
# File lib/linked_rails/model/iri.rb, line 70 def iri_template_expand_path(template_base, path) tokens = template_base.tokens ind = tokens.find_index do |t| t.is_a?(URITemplate::RFC6570::Expression::FormQuery) || t.is_a?(URITemplate::RFC6570::Expression::Fragment) end prefix = ind ? tokens[0...ind] : tokens suffix = ind ? tokens[ind..-1] : [] URITemplate.new([prefix, path, suffix].flatten.join) end
iri_template_with_fragment(template_base, fragment)
click to toggle source
@return [URITemplate]
# File lib/linked_rails/model/iri.rb, line 83 def iri_template_with_fragment(template_base, fragment) URITemplate.new("#{template_base.to_s.sub(/{#[\w]+}/, '').split('#').first}##{fragment}") end
iri_with_root(root_relative_iri)
click to toggle source
@return [RDF::URI]
# File lib/linked_rails/model/iri.rb, line 57 def iri_with_root(root_relative_iri) iri = root_relative_iri.dup iri.scheme = LinkedRails.scheme iri.host = LinkedRails.host iri end
singular_iri()
click to toggle source
# File lib/linked_rails/model/iri.rb, line 87 def singular_iri; end
singular_iri_opts()
click to toggle source
# File lib/linked_rails/model/iri.rb, line 89 def singular_iri_opts {} end