Sha256: 5a13b43ec6a23a1211e1090cdd3cef78f11d790f474bba8d4186e530ec44ec8a
Contents?: true
Size: 965 Bytes
Versions: 3
Compression:
Stored size: 965 Bytes
Contents
require 'rdf' # frozen_string_literal: true require 'rdf/vocabulary' require 'rdf/vocab' # Monkey-patch RDF::Vocab.each to load all vocabularies module RDF class Vocabulary class << self ## # Enumerates known RDF vocabulary classes. # # @yield [klass] # @yieldparam [Class] klass # @return [Enumerator] alias_method :_orig_each, :each def each(&block) # This is needed since all vocabulary classes are defined using # Ruby's autoloading facility, meaning that `@@subclasses` will be # empty until each subclass has been touched or require'd. RDF::Vocab::VOCABS.each do |n, params| class_name = params.fetch(:class_name, n.upcase).to_sym begin require "rdf/vocab/#{n}" rescue LoadError # Transient error warn "Failed to load #{n}" end end _orig_each(&block) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rdf-vocab-2.0.0 | lib/rdf/vocab/extensions.rb |
rdf-vocab-2.0.0.beta4 | lib/rdf/vocab/extensions.rb |
rdf-vocab-2.0.0.beta1 | lib/rdf/vocab/extensions.rb |