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