Module: Saxon::Loader
- Defined in:
- lib/saxon/loader.rb
Defined Under Namespace
Classes: MissingJarError, NoJarsError
Constant Summary collapse
- LOAD_SEMAPHORE =
Mutex.new
Class Method Summary collapse
-
.load!(saxon_home = File.expand_path('../../../vendor/saxonica', __FILE__)) ⇒ true, false
Returns true if Saxon had not been loaded and is now, and false if Saxon was already loaded.
Class Method Details
.load!(saxon_home = File.expand_path('../../../vendor/saxonica', __FILE__)) ⇒ true, false
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/saxon/loader.rb', line 40 def self.load!(saxon_home = File.('../../../vendor/saxonica', __FILE__)) return false if @saxon_loaded LOAD_SEMAPHORE.synchronize do if Saxon::S9API.const_defined?(:Processor) false else if jars_not_on_classpath? saxon_home = Pathname.new(saxon_home) raise NoJarsError, saxon_home unless saxon_home.directory? jars = [main_jar(saxon_home)].compact raise MissingJarError if jars.empty? jars += extra_jars(saxon_home) add_jars_to_classpath!(saxon_home, jars) end import_classes_to_namespace! @saxon_loaded = true true end end end |