Module: LinkedRails::Model::IRI
- Extended by:
- ActiveSupport::Concern
- Included in:
- Collection, LinkedRails::Model
- Defined in:
- lib/linked_rails/model/iri.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #anonymous_iri ⇒ Object
- #anonymous_iri? ⇒ Boolean
-
#iri(**opts) ⇒ RDF::URI
..
- #iri_elements ⇒ Object
- #iri_opts ⇒ Hash
- #rdf_type ⇒ Object
- #reload(**_opts) ⇒ Object
- #root_relative_iri(**opts) ⇒ RDF::URI
- #route_fragment ⇒ String, Symbol
Instance Method Details
#anonymous_iri ⇒ Object
8 9 10 |
# File 'lib/linked_rails/model/iri.rb', line 8 def anonymous_iri @anonymous_iri ||= RDF::Node.new end |
#anonymous_iri? ⇒ Boolean
12 13 14 |
# File 'lib/linked_rails/model/iri.rb', line 12 def anonymous_iri? self.class < ActiveRecord::Base && new_record? end |
#iri(**opts) ⇒ RDF::URI
Returns .
17 18 19 20 21 22 |
# 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_elements ⇒ Object
24 25 26 |
# File 'lib/linked_rails/model/iri.rb', line 24 def iri_elements root_relative_iri.to_s&.split('?')&.first&.split('/')&.map(&:presence)&.compact&.presence end |
#iri_opts ⇒ Hash
29 30 31 32 33 34 |
# File 'lib/linked_rails/model/iri.rb', line 29 def iri_opts @iri_opts ||= { fragment: route_fragment, id: to_param } end |
#rdf_type ⇒ Object
36 37 38 |
# File 'lib/linked_rails/model/iri.rb', line 36 def rdf_type self.class.iri end |
#reload(**_opts) ⇒ Object
40 41 42 43 |
# File 'lib/linked_rails/model/iri.rb', line 40 def reload(**_opts) @iri = nil super end |
#root_relative_iri(**opts) ⇒ RDF::URI
46 47 48 |
# File 'lib/linked_rails/model/iri.rb', line 46 def root_relative_iri(**opts) RDF::URI((**iri_opts.merge(opts))) end |
#route_fragment ⇒ String, Symbol
51 |
# File 'lib/linked_rails/model/iri.rb', line 51 def route_fragment; end |