Module: Processing
- Defined in:
- lib/ruby-processing.rb,
lib/ruby-processing/app.rb,
lib/ruby-processing/config.rb,
lib/ruby-processing/runner.rb,
lib/ruby-processing/runners/base.rb,
lib/ruby-processing/runners/watch.rb,
lib/ruby-processing/helper_methods.rb,
lib/ruby-processing/library_loader.rb,
lib/ruby-processing/exporters/creator.rb,
lib/ruby-processing/exporters/base_exporter.rb,
lib/ruby-processing/exporters/applet_exporter.rb,
lib/ruby-processing/exporters/application_exporter.rb
Overview
The top-level namespace, a home for all Ruby-Processing classes.
Defined Under Namespace
Modules: HelperMethods, Proxy Classes: App, AppletExporter, ApplicationExporter, BaseExporter, Creator, LibraryLoader, Runner, Watcher
Constant Summary collapse
- VERSION =
"1.0.10"
- CONFIG_FILE_PATH =
File.("~/.rp5rc")
- CONFIG =
(YAML::load_file(CONFIG_FILE_PATH) rescue {}).freeze
- SKETCH_TEMPLATE =
For use with “bare” sketches that don’t want to define a class or methods
<<-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
Class Method Summary collapse
-
.embedded? ⇒ Boolean
Are we embedded – inside the Processing IDE?.
-
.load_and_run_sketch ⇒ Object
This method is the common entry point to run a sketch, bare or complete.
-
.online? ⇒ Boolean
Are we online – inside an applet?.
-
.read_sketch_source ⇒ Object
Read in the sketch source code.
Class Method Details
.embedded? ⇒ Boolean
Are we embedded – inside the Processing IDE?
25 26 27 |
# File 'lib/ruby-processing.rb', line 25 def self. @embedded ||= defined?(RP5_EMBEDDED) end |
.load_and_run_sketch ⇒ Object
This method is the common entry point to run a sketch, bare or complete.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ruby-processing/runners/base.rb', line 27 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 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 |
.online? ⇒ Boolean
Are we online – inside an applet?
20 21 22 |
# File 'lib/ruby-processing.rb', line 20 def self.online? @online ||= defined?(JRUBY_APPLET) end |
.read_sketch_source ⇒ Object
Read in the sketch source code. Needs to work both online and offline.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ruby-processing/runners/base.rb', line 45 def self.read_sketch_source if Processing.online? # Fuck the following lines. Fucking Java can go sit on broken glass. source = '' url = java.net.URL.new(JRUBY_APPLET.get_code_base, SKETCH_PATH) input = java.io.BufferedReader.new(java.io.InputStreamReader.new(url.open_stream)) while line = input.read_line do source << (line + "\n") if line end input.close else # Ahhh, much better. source = File.read(SKETCH_PATH) end source end |