jruby_art 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jruby_art/config.rb +2 -2
- data/lib/jruby_art/helper_methods.rb +17 -13
- data/lib/jruby_art/runner.rb +8 -0
- data/lib/jruby_art/runners/live.rb +16 -0
- data/lib/jruby_art/runners/watch.rb +18 -0
- data/lib/jruby_art/version.rb +1 -1
- data/lib/rpextras.jar +0 -0
- data/vendors/Rakefile +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c07e2583ae91828f56b50199830ca327fe9eadeb
|
|
4
|
+
data.tar.gz: 4afbc2e0d2437a6bcb5a30507a45797b309af3e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5153f072f9d863a5660b35f00eb6442d8fbc40a57e54a543f1fdbcc40dfca331157a5146312aa39292845645b171f8ad37bc81d95a66ef2fd80e5578fb268bb4
|
|
7
|
+
data.tar.gz: 29cb4e2832285999382f91874cae603090aca811f4546b66370e31d92372ec13c973820d300894a7c7a68ba57cf843d0f79a2af499ce81736a938d18f9cfbfde
|
data/lib/jruby_art/config.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'yaml'
|
|
2
2
|
|
|
3
3
|
# The wrapper module
|
|
4
4
|
module Processing
|
|
@@ -6,7 +6,7 @@ module Processing
|
|
|
6
6
|
config_path = '~/.jruby_art/config.yml'
|
|
7
7
|
begin
|
|
8
8
|
CONFIG_FILE_PATH = File.expand_path(config_path)
|
|
9
|
-
RP_CONFIG = (
|
|
9
|
+
RP_CONFIG = (YAML.load_file(CONFIG_FILE_PATH))
|
|
10
10
|
rescue
|
|
11
11
|
warn(format('WARN: you need to set PROCESSING_ROOT in %s', config_path))
|
|
12
12
|
end
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# processing module wrapper
|
|
2
|
+
require_relative '../rpextras'
|
|
3
|
+
|
|
2
4
|
module Processing
|
|
3
5
|
# Provides some convenience methods
|
|
4
6
|
module HelperMethods
|
|
@@ -32,17 +34,8 @@ module Processing
|
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
def color(*args)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if args.length == 1
|
|
38
|
-
if a.is_a?(Fixnum) && a >= 2**31
|
|
39
|
-
args = [a - 2**32]
|
|
40
|
-
elsif a.is_a?(String) && a[0].eql?('#')
|
|
41
|
-
h = a[1..-1].rjust(6, '0').prepend('ff')
|
|
42
|
-
return color(h.hex)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
super(*args)
|
|
37
|
+
return super(*args) unless args.length == 1
|
|
38
|
+
super(hex_color(args[0]))
|
|
46
39
|
end
|
|
47
40
|
|
|
48
41
|
# Overrides Processing convenience function thread, which takes a String
|
|
@@ -134,7 +127,7 @@ module Processing
|
|
|
134
127
|
|
|
135
128
|
# Uses PImage class method under hood
|
|
136
129
|
def blend_color(c1, c2, mode)
|
|
137
|
-
Java::ProcessingCore::PImage
|
|
130
|
+
Java::ProcessingCore::PImage.blendColor(c1, c2, mode)
|
|
138
131
|
end
|
|
139
132
|
|
|
140
133
|
# There's just so many functions in Processing,
|
|
@@ -147,7 +140,7 @@ module Processing
|
|
|
147
140
|
# Proxy over a list of Java declared fields that have the same name as
|
|
148
141
|
# some methods. Add to this list as needed.
|
|
149
142
|
def proxy_java_fields
|
|
150
|
-
fields = %w(sketchPath key frameRate
|
|
143
|
+
fields = %w(sketchPath key frameRate mousePressed keyPressed)
|
|
151
144
|
methods = fields.map { |field| java_class.declared_field(field) }
|
|
152
145
|
@declared_fields = Hash[fields.zip(methods)]
|
|
153
146
|
end
|
|
@@ -213,6 +206,17 @@ module Processing
|
|
|
213
206
|
|
|
214
207
|
private
|
|
215
208
|
|
|
209
|
+
# parse single argument color int/double/String
|
|
210
|
+
def hex_color(a)
|
|
211
|
+
if a.is_a?(Fixnum)
|
|
212
|
+
return Java::Monkstone::ColorUtil.colorLong(a)
|
|
213
|
+
elsif a.is_a?(String)
|
|
214
|
+
return Java::Monkstone::ColorUtil.colorString(a) if a =~ /#\h+/
|
|
215
|
+
raise StandardError, 'Dodgy Hexstring'
|
|
216
|
+
end
|
|
217
|
+
Java::Monkstone::ColorUtil.colorDouble(a)
|
|
218
|
+
end
|
|
219
|
+
|
|
216
220
|
def dist2d(*args)
|
|
217
221
|
dx = args[0] - args[2]
|
|
218
222
|
dy = args[1] - args[3]
|
data/lib/jruby_art/runner.rb
CHANGED
|
@@ -21,6 +21,7 @@ module Processing
|
|
|
21
21
|
choice:-
|
|
22
22
|
run: run sketch once
|
|
23
23
|
watch: watch for changes on the file and relaunch it on the fly
|
|
24
|
+
live: run sketch and open a pry console bound to $app
|
|
24
25
|
create [width height][mode][flag]: create a new sketch.
|
|
25
26
|
setup: check setup, install jruby-complete, unpack samples
|
|
26
27
|
|
|
@@ -62,6 +63,7 @@ module Processing
|
|
|
62
63
|
def execute!
|
|
63
64
|
case @options.action
|
|
64
65
|
when 'run' then run(@options.path, @options.args)
|
|
66
|
+
when 'live' then live(@options.path, @options.args)
|
|
65
67
|
when 'watch' then watch(@options.path, @options.args)
|
|
66
68
|
when 'create' then create(@options.path, @options.args)
|
|
67
69
|
when 'setup' then setup(@options.path)
|
|
@@ -98,6 +100,12 @@ module Processing
|
|
|
98
100
|
ensure_exists(sketch)
|
|
99
101
|
spin_up('run.rb', sketch, args)
|
|
100
102
|
end
|
|
103
|
+
|
|
104
|
+
# Just simply run a JRubyArt sketch.
|
|
105
|
+
def live(sketch, args)
|
|
106
|
+
ensure_exists(sketch)
|
|
107
|
+
spin_up('live.rb', sketch, args)
|
|
108
|
+
end
|
|
101
109
|
|
|
102
110
|
# Run a sketch, keeping an eye on it's file, and reloading
|
|
103
111
|
# whenever it changes.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# A pry shell for live coding.
|
|
2
|
+
# Will start with your sketch.
|
|
3
|
+
require_relative 'base'
|
|
4
|
+
Processing.load_and_run_sketch
|
|
5
|
+
|
|
6
|
+
class PryException < StandardError
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
MESSAGE = "You need to 'jruby -S gem install pry' for 'live' mode"
|
|
10
|
+
|
|
11
|
+
if Gem::Specification.find_all_by_name('pry').any?
|
|
12
|
+
require 'pry'
|
|
13
|
+
$app.pry
|
|
14
|
+
else
|
|
15
|
+
fail(PryException.new, MESSAGE)
|
|
16
|
+
end
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
require_relative 'base'
|
|
2
|
+
require_relative '../config'
|
|
2
3
|
|
|
3
4
|
module Processing
|
|
5
|
+
class WatchException < StandardError
|
|
6
|
+
end
|
|
7
|
+
|
|
4
8
|
# A sketch loader, observer, and reloader, to tighten
|
|
5
9
|
# the feedback between code and effect.
|
|
6
10
|
class Watcher
|
|
7
11
|
# Sic a new Processing::Watcher on the sketch
|
|
12
|
+
WATCH_MESSAGE ||= <<-EOS
|
|
13
|
+
Warning:
|
|
14
|
+
To protect you from running watch mode in a top level
|
|
15
|
+
directory with lots of nested ruby or GLSL files we
|
|
16
|
+
limit the number of files to watch to %d.
|
|
17
|
+
If you really want to watch %d files you should
|
|
18
|
+
increase MAX_WATCH in ~/.jruby_art/config.yml
|
|
19
|
+
|
|
20
|
+
EOS
|
|
8
21
|
SLEEP_TIME = 0.2
|
|
9
22
|
def initialize
|
|
10
23
|
reload_files_to_watch
|
|
@@ -52,6 +65,11 @@ module Processing
|
|
|
52
65
|
|
|
53
66
|
def reload_files_to_watch
|
|
54
67
|
@files = Dir.glob(File.join(SKETCH_ROOT, '**/*.{rb,glsl}'))
|
|
68
|
+
count = @files.length
|
|
69
|
+
max_watch = RP_CONFIG.fetch('MAX_WATCH', 20)
|
|
70
|
+
return unless count > max_watch
|
|
71
|
+
warn format(WATCH_MESSAGE, max_watch, count)
|
|
72
|
+
abort
|
|
55
73
|
end
|
|
56
74
|
end
|
|
57
75
|
end
|
data/lib/jruby_art/version.rb
CHANGED
data/lib/rpextras.jar
CHANGED
|
Binary file
|
data/vendors/Rakefile
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jruby_art
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeremy Ashkenas
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2015-
|
|
13
|
+
date: 2015-08-10 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,9 +70,9 @@ dependencies:
|
|
|
70
70
|
version: '5.3'
|
|
71
71
|
description: |2
|
|
72
72
|
JRubyArt is a ruby wrapper for the processing art framework.
|
|
73
|
-
The current version supports processing-3.
|
|
73
|
+
The current version supports processing-3.0b2, and uses jruby-9.0.0.0
|
|
74
74
|
as the glue between ruby and java. You can use both processing libraries and ruby
|
|
75
|
-
gems in your sketches. Features create/run/watch modes. The "watch" mode,
|
|
75
|
+
gems in your sketches. Features create/run/watch/live modes. The "watch" mode,
|
|
76
76
|
provides a nice REPL-ish way to work on your processing sketches. Includes:-
|
|
77
77
|
A "Control Panel" library, so that you can easily create sliders, buttons,
|
|
78
78
|
checkboxes and drop-down menus, and hook them into your sketch's instance
|
|
@@ -96,6 +96,7 @@ files:
|
|
|
96
96
|
- lib/jruby_art/library_loader.rb
|
|
97
97
|
- lib/jruby_art/runner.rb
|
|
98
98
|
- lib/jruby_art/runners/base.rb
|
|
99
|
+
- lib/jruby_art/runners/live.rb
|
|
99
100
|
- lib/jruby_art/runners/run.rb
|
|
100
101
|
- lib/jruby_art/runners/watch.rb
|
|
101
102
|
- lib/jruby_art/version.rb
|