Module: Processing

Defined in:
lib/processing/system.rb,
lib/processing/sketch_base.rb

Overview

Provides the classes and methods for a Processing sketch

Defined Under Namespace

Classes: SketchBase

Class Method Summary collapse

Class Method Details

.import_package(package, module_name) ⇒ Object



27
28
29
30
# File 'lib/processing/system.rb', line 27

def self.import_package(package, module_name)
  code = "module #{module_name}; include_package '#{package}'; end"
  Object::TOPLEVEL_BINDING.eval(code)
end

.load_jars(dir) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/processing/system.rb', line 11

def self.load_jars(dir)
  is_success = false

  if File.directory?(dir)
    Dir.glob(File.join(dir, '*.jar')).each do |jar|
      require jar
      is_success = true
      puts "jar file loaded -- #{File.basename(jar)}"
    end

    return true if is_success
  end

  false
end

.load_library(name) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/processing/system.rb', line 3

def self.load_library(name)
  if load_jars(File.join(SketchRunner::SKETCH_LIBS_DIR, name, 'library')) ||
     load_jars(File.join(SketchRunner::PROCESSING_DIR, name, 'library'))
  else
    fail "library not found -- #{name}"
  end
end

.reloadObject



54
55
56
# File 'lib/processing/system.rb', line 54

def self.reload
  SketchRunner.system_requests << { command: :reload }
end

.sketch_path(path) ⇒ Object



32
33
34
# File 'lib/processing/system.rb', line 32

def self.sketch_path(path)
  File.join(SketchRunner::SKETCH_DIR, path)
end

.start(sketch, opts = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/processing/system.rb', line 36

def self.start(sketch, opts = {})
  title = opts[:title] || SketchRunner::SKETCH_NAME
  topmost = opts[:topmost]
  pos = opts[:pos]

  PApplet.run_sketch([title], sketch)

  if topmost
    request = { command: :topmost, sketch: sketch }
    SketchRunner.system_requests << request
  end

  if pos
    request = { command: :pos, sketch: sketch, pos: pos }
    SketchRunner.system_requests << request
  end
end