class LinkedRails::Vocab
Public Class Methods
define_shortcut(key)
click to toggle source
# File lib/linked_rails/vocab.rb, line 22 def define_shortcut(key) define_singleton_method(key) do options = RDF::Vocabulary.vocab_map.fetch(key) options[:class] || RDF::Vocabulary.from_sym(options[:class_name]) end end
for(iri)
click to toggle source
# File lib/linked_rails/vocab.rb, line 29 def for(iri) key = vocab_map.keys.find { |k| iri.to_s.start_with?(k) } vocab_map[key] if key end
for!(iri)
click to toggle source
# File lib/linked_rails/vocab.rb, line 35 def for!(iri) self.for(iri) || raise("No vocab found for #{iri}") end
register(key, uri)
click to toggle source
# File lib/linked_rails/vocab.rb, line 39 def register(key, uri) klass = CustomVocabulary.new(uri) klass.key = key.to_s.classify.upcase RDF::Vocabulary.register(key, uri, class: klass) vocab_map[uri.to_s] = klass define_shortcut(key) end
register_strict(klass)
click to toggle source
# File lib/linked_rails/vocab.rb, line 49 def register_strict(klass) vocab_map[klass.to_s] = klass end
vocab_map()
click to toggle source
# File lib/linked_rails/vocab.rb, line 53 def vocab_map return LinkedRails::Vocab.vocab_map unless self == LinkedRails::Vocab @vocab_map ||= {} end