class Library

This class knows where to find JRubyArt libraries

Attributes

dir[R]
name[R]
path[R]
ppath[R]

Public Class Methods

new(name) click to toggle source
# File lib/jruby_art/library.rb, line 14
def initialize(name)
  @name = name
  @ruby = true
end

Public Instance Methods

add_binaries_to_classpath() click to toggle source
# File lib/jruby_art/library.rb, line 83
def add_binaries_to_classpath
  native_loader = NativeLoader.new
  native_loader.add_native_path(ppath)
end
exist?() click to toggle source
# File lib/jruby_art/library.rb, line 62
def exist?
  path.exist?
end
library_path() click to toggle source
# File lib/jruby_art/library.rb, line 54
def library_path
  Processing::RP_CONFIG.fetch('library_path', "#{ENV['HOME']}/.jruby_art")
end
load_jars() click to toggle source
# File lib/jruby_art/library.rb, line 66
def load_jars
  Dir.glob("#{dir}/*.jar").sort.each do |jar|
    require jar
  end
  return unless native_binaries?

  add_binaries_to_classpath
end
locate() click to toggle source
# File lib/jruby_art/library.rb, line 19
def locate
  return if (@path = Pathname.new(
    File.join(SKETCH_ROOT, 'library', name, "#{name}.rb")
  )).exist?
  return if (@path = Pathname.new(
    File.join(K9_ROOT, 'library', name, "#{name}.rb")
  )).exist?

  locate_java
end
locate_installed_java() click to toggle source
# File lib/jruby_art/library.rb, line 39
def locate_installed_java
  return if dir.directory?

  if Processing::RP_CONFIG.fetch('processing_ide', false)
    prefix = library_path
    @dir = Pathname.new(File.join(prefix, 'libraries', name, 'library'))
    @path = dir.join(Pathname.new("#{name}.jar"))
  else
    @dir = Pathname.new(
      File.join(ENV['HOME'], '.jruby_art', 'libraries', name, 'library')
    )
  end
  @path = dir.join(Pathname.new("#{name}.jar"))
end
locate_java() click to toggle source
# File lib/jruby_art/library.rb, line 30
def locate_java
  @dir = Pathname.new(
    File.join(SKETCH_ROOT, 'library', name)
  )
  return @path = dir.join(Pathname.new("#{name}.jar")) if dir.directory?

  locate_installed_java
end
native_binaries?() click to toggle source
# File lib/jruby_art/library.rb, line 75
def native_binaries?
  native_folder = NativeFolder.new
  native = native_folder.name
  @ppath = File.join(dir, native)
  File.directory?(ppath) &&
    !Dir.glob(File.join(ppath, native_folder.extension)).empty?
end
ruby?() click to toggle source
# File lib/jruby_art/library.rb, line 58
def ruby?
  path.extname == '.rb'
end