Sha256: c4a81d099ba3642f53799e8a7893f9a80f694120c848a29db31d5ac2d0539069

Contents?: true

Size: 1.42 KB

Versions: 24

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: false

# The processing wrapper module
module Propane
  require_relative 'library'

  # Encapsulate library loader functionality as a class
  class LibraryLoader
    attr_reader :library

    def initialize
      @loaded_libraries = Hash.new(false)
    end

    # Detect if a library has been loaded (for conditional loading)
    def library_loaded?(library_name)
      @loaded_libraries[library_name.to_sym]
    end

    # Load a list of Ruby or Java libraries (in that order)
    # Usage: load_libraries :video, :video_event
    #
    # If a library is put into a 'library' folder next to the sketch it will
    # be used instead of an installed propane library.
    def load_libraries(*args)
      message = 'no such file to load -- %s'
      args.each do |lib|
        loaded = loader(lib)
        raise(LoadError.new, format(message, lib)) unless loaded
      end
    end
    alias load_library load_libraries

    def loader(name)
      return true if @loaded_libraries.include?(name)
      fname = name.to_s
      library = Library.new(fname)
      library.locate
      return require_library(library, name) if library.ruby?
      warn("Not found library: #{fname}") unless library.exist?
      load_jars(library, name)
    end

    def load_jars(lib, name)
      lib.load_jars
      @loaded_libraries[name] = true
    end

    def require_library(lib, name)
      @loaded_libraries[name] = require lib.path
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
propane-3.4.2-java lib/propane/library_loader.rb
propane-3.4.1-java lib/propane/library_loader.rb
propane-3.4.0-java lib/propane/library_loader.rb
propane-3.3.1-java lib/propane/library_loader.rb
propane-3.3.0-java lib/propane/library_loader.rb
propane-3.2.0-java lib/propane/library_loader.rb
propane-3.1.0.pre-java lib/propane/library_loader.rb
propane-2.9.3-java lib/propane/library_loader.rb
propane-3.0.1.pre-java lib/propane/library_loader.rb
propane-2.9.2-java lib/propane/library_loader.rb
propane-3.0.0.pre-java lib/propane/library_loader.rb
propane-2.9.1-java lib/propane/library_loader.rb
propane-2.9.0-java lib/propane/library_loader.rb
propane-2.7.2-java lib/propane/library_loader.rb
propane-2.8.0.pre-java lib/propane/library_loader.rb
propane-2.7.1-java lib/propane/library_loader.rb
propane-2.7.0-java lib/propane/library_loader.rb
propane-2.6.6-java lib/propane/library_loader.rb
propane-2.6.5.pre-java lib/propane/library_loader.rb
propane-2.6.4-java lib/propane/library_loader.rb