Sha256: 567ddba768e40818fab60a10b6f725717d200d8daa4ac55a566c4f9f928c01a0
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
$LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/../../") SKETCH_PATH = ARGV.shift unless defined? SKETCH_PATH SKETCH_ROOT = File.dirname(SKETCH_PATH) unless defined? SKETCH_ROOT require 'ruby-processing' require 'ruby-processing/app' module Processing # For use with "bare" sketches that don't want to define a class or methods SKETCH_TEMPLATE = <<-EOS class Sketch < Processing::App <% if has_methods %> <%= source %> <% else %> def setup size(DEFAULT_WIDTH, DEFAULT_HEIGHT, JAVA2D) <%= source %> no_loop end <% end %> end EOS # This method is the common entry point to run a sketch, bare or complete. def self.load_and_run_sketch source = self.read_sketch_source has_sketch = !!source.match(/^[^#]*< Processing::App/) has_methods = !!source.match(/^[^#]*(def\s+setup|def\s+draw)/) if has_sketch load File.join(SKETCH_ROOT, SKETCH_PATH) Processing::App.sketch_class.new if !$app else require 'erb' code = ERB.new(SKETCH_TEMPLATE).result(binding) Object.class_eval code, SKETCH_PATH, -1 Processing::App.sketch_class.new end end # Read in the sketch source code. Needs to work both online and offline. def self.read_sketch_source source = File.read(SKETCH_PATH) source end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby-processing-2.4.2 | lib/ruby-processing/runners/base.rb |
ruby-processing-2.4.1 | lib/ruby-processing/runners/base.rb |