jruby_art 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebbb071256ed356c298940ff1d43ab297083601dd1133f8bdc2cd9372c2cab75
4
- data.tar.gz: fdb9418da66238174d66ed86cd7e01737141612dac48069d81c73d65bd002928
3
+ metadata.gz: 3101b35efc934fc4337e6f8f34f3ea9d8022c8bf1001d743a01b675417ddf35e
4
+ data.tar.gz: 25481f1ab8a5f77ca32cd08542f64b7aa771fc29c6399859bf5f433b5d71c4e7
5
5
  SHA512:
6
- metadata.gz: db6e4d1bcccbe15f31785b4f454505d0fa298648ce119c2b6bba5cfca3da92a381b4fc1a1834d16611c7d3e569929347fabb0c29abf71bc8d91b51328450a2af
7
- data.tar.gz: b3f8884511bbc842313fa8e20e38e0622e20199a0d36add5adc14ea59ac100ddbafeddfc4d7f22e4fbb39b1fab7a8f98e85b2ba37b91f7f568077fc9c1939f15
6
+ metadata.gz: ec5f26712feeee0f7b151133457d6beb1216459e03e1410a9d77bed0ab2b575120f9b0b2dd064c8b88f1090640b1f97f13cc8e6881d32053ef84c273c5da6279
7
+ data.tar.gz: 0f51c6231b99a00994ac354d78b433a54731cc757d4728650f6b255983d9ddcfbd7d03e1a07826f2e272582d7645be7b764224cb6e1a37b44c151a1f9d6bd35d
Binary file
Binary file
@@ -57,7 +57,7 @@ module Processing
57
57
  end
58
58
 
59
59
  def web_to_color_array(web)
60
- Java::Monkstone::ColorUtil.webArray(web)
60
+ Java::Monkstone::ColorUtil.webArray(web.to_java(:string))
61
61
  end
62
62
 
63
63
  def int_to_ruby_colors(p5color)
@@ -17,62 +17,71 @@ class Library
17
17
  def locate
18
18
  return if (@path = Pathname.new(
19
19
  File.join(SKETCH_ROOT, 'library', name, "#{name}.rb")
20
- )).exist?
21
- return if (@path = Pathname.new(
22
- File.join(K9_ROOT, 'library', name, "#{name}.rb")
23
- )).exist?
20
+ )).exist?
21
+ return if (@path = Pathname.new(
22
+ File.join(K9_ROOT, 'library', name, "#{name}.rb")
23
+ )).exist?
24
24
 
25
- locate_java
26
- end
25
+ locate_java
26
+ end
27
27
 
28
- def locate_java
29
- @dir = Pathname.new(
30
- File.join(SKETCH_ROOT, 'library', name)
31
- )
32
- return @path = dir.join(Pathname.new("#{name}.jar")) if dir.directory?
28
+ def locate_java
29
+ @dir = Pathname.new(
30
+ File.join(SKETCH_ROOT, 'library', name)
31
+ )
32
+ return @path = dir.join(Pathname.new("#{name}.jar")) if dir.directory?
33
33
 
34
- locate_installed_java
35
- end
34
+ locate_installed_java
35
+ end
36
36
 
37
- def locate_installed_java
38
- prefix = library_path
39
- @dir = Pathname.new(
40
- File.join(prefix, "libraries/#{name}/library")
41
- )
42
- @path = dir.join(Pathname.new("#{name}.jar"))
43
- end
37
+ def locate_installed_java
38
+ unless dir.directory?
39
+ if Processing::RP_CONFIG.fetch('processing_ide', false)
40
+ prefix = library_path
41
+ @dir = Pathname.new(
42
+ File.join(prefix, 'libraries', name, 'library')
43
+ )
44
+ @path = dir.join(Pathname.new("#{name}.jar"))
45
+ else
46
+ @dir = Pathname.new(
47
+ File.join(ENV['HOME'], '.jruby_art', 'libraries', name, 'library')
48
+ )
49
+ end
50
+ @path = dir.join(Pathname.new("#{name}.jar"))
51
+ end
52
+ end
44
53
 
45
- def library_path
46
- Processing::RP_CONFIG.fetch('library_path', "#{ENV['HOME']}/.jruby_art")
47
- end
54
+ def library_path
55
+ Processing::RP_CONFIG.fetch('library_path', "#{ENV['HOME']}/.jruby_art")
56
+ end
48
57
 
49
- def ruby?
50
- path.extname == '.rb'
51
- end
58
+ def ruby?
59
+ path.extname == '.rb'
60
+ end
52
61
 
53
- def exist?
54
- path.exist?
55
- end
62
+ def exist?
63
+ path.exist?
64
+ end
56
65
 
57
- def load_jars
58
- Dir.glob("#{dir}/*.jar").each do |jar|
59
- require jar
60
- end
61
- return unless native_binaries?
66
+ def load_jars
67
+ Dir.glob("#{dir}/*.jar").each do |jar|
68
+ require jar
69
+ end
70
+ return unless native_binaries?
62
71
 
63
- add_binaries_to_classpath
64
- end
72
+ add_binaries_to_classpath
73
+ end
65
74
 
66
- def native_binaries?
67
- native_folder = NativeFolder.new
68
- native = native_folder.name
69
- @ppath = File.join(dir, native)
70
- File.directory?(ppath) &&
71
- !Dir.glob(File.join(ppath, native_folder.extension)).empty?
72
- end
75
+ def native_binaries?
76
+ native_folder = NativeFolder.new
77
+ native = native_folder.name
78
+ @ppath = File.join(dir, native)
79
+ File.directory?(ppath) &&
80
+ !Dir.glob(File.join(ppath, native_folder.extension)).empty?
81
+ end
73
82
 
74
- def add_binaries_to_classpath
75
- native_loader = NativeLoader.new
76
- native_loader.add_native_path(ppath)
77
- end
78
- end
83
+ def add_binaries_to_classpath
84
+ native_loader = NativeLoader.new
85
+ native_loader.add_native_path(ppath)
86
+ end
87
+ end
@@ -9,12 +9,12 @@ require_relative '../jruby_art/java_opts'
9
9
  require_relative '../jruby_art/launcher'
10
10
  # processing wrapper module
11
11
  module Processing
12
- # Utility class to handle the different commands that the 'k9' command
13
- # offers. Able to run, watch, live, create, app, and unpack
14
12
  unless defined? RP_CONFIG
15
13
  conf = Config.new.load_config
16
14
  RP_CONFIG = conf.config
17
15
  end
16
+ # Utility class to handle the different commands that the 'k9' command
17
+ # offers. Able to run, watch, live, create, app, and unpack
18
18
  class Runner
19
19
  WIN_PATTERNS = [
20
20
  /bccwin/i,
@@ -23,7 +23,12 @@ module Processing
23
23
  /ming/i,
24
24
  /mswin/i,
25
25
  /wince/i
26
- ].freeze
26
+ ]
27
+
28
+ INSTALL = <<~MSG
29
+ <Config|JRuby-Complete|Samples>
30
+ or <Sound|Video> library
31
+ MSG
27
32
 
28
33
  attr_reader :options, :argc, :filename, :os
29
34
 
@@ -35,19 +40,19 @@ module Processing
35
40
  def self.execute
36
41
  runner = new
37
42
  runner.parse_options(ARGV)
38
- runner.execute!
43
+ runner.execute
39
44
  end
40
45
 
41
46
  # Dispatch central.
42
- def execute!
43
- show_help if options.empty?
47
+ def execute
48
+ parse_options('-h') if options.empty?
44
49
  show_version if options[:version]
45
50
  run_sketch if options[:run]
46
51
  watch_sketch if options[:watch]
47
52
  live if options[:live]
48
53
  create if options[:create]
49
54
  check if options[:check]
50
- install if options[:install]
55
+ install(filename) if options[:install]
51
56
  end
52
57
 
53
58
  # Parse the command-line options.
@@ -57,49 +62,44 @@ module Processing
57
62
  # of the help screen.
58
63
  opts.banner = 'Usage: k9 [options] [<filename.rb>]'
59
64
  # Define the options, and what they do
60
- options[:version] = false
65
+
61
66
  opts.on('-v', '--version', 'JRubyArt Version') do
62
67
  options[:version] = true
63
68
  end
64
69
 
65
- options[:install] = false
66
- opts.on('-i', '--install', 'Installs jruby-complete and examples') do
67
- options[:install] = true
68
- end
69
-
70
- options[:check] = false
71
70
  opts.on('-?', '--check', 'Prints configuration') do
72
71
  options[:check] = true
73
72
  end
74
73
 
75
- options[:app] = false
76
- opts.on('-a', '--app', 'Export as app NOT IMPLEMENTED YET') do
77
- options[:export] = true
74
+ opts.on('-i', '--install', INSTALL) do
75
+ options[:install] = true
78
76
  end
79
77
 
80
- options[:watch] = false
81
- opts.on('-w', '--watch', 'Watch/run the sketch') do
82
- options[:watch] = true
78
+ opts.on('-f', '--force', 'Force removal of old Config') do
79
+ options[:force] = true
80
+ end
81
+
82
+ opts.on('-c', '--create', 'Create new outline sketch') do
83
+ options[:create] = true
83
84
  end
84
85
 
85
- options[:run] = false
86
86
  opts.on('-r', '--run', 'Run the sketch') do
87
87
  options[:run] = true
88
88
  end
89
89
 
90
- options[:live] = false
90
+ opts.on('-w', '--watch', 'Watch/run the sketch') do
91
+ options[:watch] = true
92
+ end
93
+
91
94
  opts.on('-l', '--live', 'As above, with pry console bound to Processing.app') do
92
95
  options[:live] = true
93
96
  end
94
97
 
95
- options[:create] = false
96
- opts.on('-c', '--create', 'Create new outline sketch') do
97
- options[:create] = true
98
+ opts.on('-a', '--app', 'Export as app NOT IMPLEMENTED YET') do
99
+ options[:export] = true
98
100
  end
99
101
 
100
- # This displays the help screen, all programs are
101
- # assumed to have this option.
102
- opts.on('-h', '--help', 'Display this screen') do
102
+ opts.on_tail('-h', '--help', 'Display this screen') do
103
103
  puts opts
104
104
  exit
105
105
  end
@@ -138,13 +138,29 @@ module Processing
138
138
  spin_up('watch.rb', filename, argc)
139
139
  end
140
140
 
141
- def install
141
+ def install(library = nil)
142
142
  require_relative 'installer'
143
- Installer.new.install
144
- JRubyCompleteInstall.new.install
145
- UnpackSamples.new.install
143
+ library ||= 'new'
144
+ case library.downcase
145
+ when /sound|video/
146
+ system "cd #{K9_ROOT}/vendors && rake download_and_copy_#{choice}"
147
+ when /samples/
148
+ system "cd #{K9_ROOT}/vendors && rake unpack_samples"
149
+ when /jruby/
150
+ system "cd #{K9_ROOT}/vendors && rake"
151
+ when /config/
152
+ remove_old_config if options[:force]
153
+ Installer.new.install
154
+ when /new/
155
+ # install samples and config JRubyArt
156
+ system "cd #{K9_ROOT}/vendors && rake"
157
+ Installer.new.install
158
+ else
159
+ warn format('No installer for %s', library)
160
+ end
146
161
  end
147
162
 
163
+
148
164
  def check
149
165
  require_relative '../jruby_art/config'
150
166
  Config.new.check
@@ -152,19 +168,19 @@ module Processing
152
168
 
153
169
  # Show the standard help/usage message.
154
170
  def show_help
155
- puts HELP_MESSAGE
171
+ puts HELP_INSTALL
156
172
  end
157
173
 
158
174
  def show_version
159
175
  require 'erb'
160
- warning = 'WARNING: JDK11 is preferred'.freeze
176
+ warning = 'WARNING: JDK12 is preferred'.freeze
161
177
  if RUBY_PLATFORM == 'java'
162
- warn warning unless ENV_JAVA['java.specification.version'] == '11'
178
+ warn warning unless ENV_JAVA['java.specification.version'].to_i >= 11
163
179
  end
164
- template = ERB.new <<-EOF
165
- JRubyArt version <%= JRubyArt::VERSION %>
166
- Ruby version <%= RUBY_VERSION %>
167
- EOF
180
+ template = ERB.new <<-VERSION
181
+ JRubyArt version <%= JRubyArt::VERSION %>
182
+ Ruby version <%= RUBY_VERSION %>
183
+ VERSION
168
184
  puts template.result(binding)
169
185
  end
170
186
 
@@ -184,7 +200,6 @@ module Processing
184
200
  end
185
201
 
186
202
  # NB: We really do mean to use 'and' not '&&' for flow control purposes
187
-
188
203
  def ensure_exists(filename)
189
204
  puts("Couldn't find: #{filename}") and exit unless FileTest.exist?(filename)
190
205
  end
@@ -192,12 +207,17 @@ module Processing
192
207
  def jruby_complete
193
208
  rcomplete = File.join(K9_ROOT, 'lib/ruby/jruby-complete.jar')
194
209
  return [rcomplete] if FileTest.exist?(rcomplete)
210
+
195
211
  warn "#{rcomplete} does not exist\nTry running `k9 --install`"
196
212
  exit
197
213
  end
198
214
 
199
- def libraries
200
- %w(video sound).map { |library| Sketchbook.library(library) }.flatten
215
+ def remove_old_config
216
+ old_config = File.join("#{ENV['HOME']}", '.jruby_art', 'config.yml')
217
+ puts "Removing #{old_config}"
218
+ system "rm #{old_config}"
201
219
  end
202
- end # class Runner
203
- end # module Processing
220
+ # class Runner
221
+ end
222
+ # module Processing
223
+ end
@@ -8,13 +8,13 @@ require_relative '../app'
8
8
  # More processing module
9
9
  module Processing
10
10
  # For use with "bare" sketches that don't want to define a class or methods
11
- BARE_WRAP = <<-EOS.freeze
11
+ BARE_WRAP = <<-BARE
12
12
  class Sketch < Processing::App
13
13
  %s
14
14
  end
15
- EOS
15
+ BARE
16
16
 
17
- NAKED_WRAP = <<-EOS.freeze
17
+ NAKED_WRAP = <<-NAKED
18
18
  class Sketch < Processing::App
19
19
  def setup
20
20
  sketch_title '%s'
@@ -26,7 +26,7 @@ module Processing
26
26
  size(%d, %d)
27
27
  end
28
28
  end
29
- EOS
29
+ NAKED
30
30
 
31
31
  # This method is the common entry point to run a sketch, bare or complete.
32
32
  def self.load_and_run_sketch
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  # A wrapper for version
3
3
  module JRubyArt
4
- VERSION = '2.2.0'
4
+ VERSION = '2.2.1'
5
5
  end
@@ -1,3 +1,4 @@
1
1
  class Processing::App
2
- include Java::MonkstoneVideoevent::VideoInterface
2
+ include Java::MonkstoneVideoevent::MovieEvent
3
+ include Java::MonkstoneVideoevent::CaptureEvent
3
4
  end
@@ -1,50 +1,57 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require 'rake/clean'
3
5
 
4
- WARNING = <<-WARN.freeze
5
- WARNING: you may not have wget installed, you could just download
6
- the correct version of jruby-complete to the vendors folder, and
7
- re-run k9 setup install instead of installing wget. Some systems
8
- may also require 'sudo' access to install, NB: this is untested....
6
+ WARNING = <<~WARN
7
+ WARNING: you may not have wget installed, you could just download
8
+ the correct version of jruby-complete to the vendors folder, and
9
+ re-run k9 setup install instead of installing wget. Some systems
10
+ may also require 'sudo' access to install, NB: this is untested....
9
11
 
10
12
  WARN
11
-
12
- JRUBYC_VERSION = '9.2.8.0'.freeze
13
-
14
- EXAMPLES = '3.4'.freeze
13
+ # https://github.com/processing/processing-video/releases/download/r6-v2.0-beta4/video-2.0-beta4.zip
14
+ JRUBYC_VERSION = '9.2.9.0'
15
+ SOUND = 'sound.zip'
16
+ SOUND_VERSION = 'v2.2.2'
17
+ VIDEO = 'video-2.0-beta4.zip'
18
+ VIDEO_VERSION = 'r6-v2.0-beta4'
19
+ EXAMPLES = '3.4'
15
20
  HOME_DIR = ENV['HOME']
16
21
  MAC_OR_LINUX = /linux|mac|darwin/ =~ RbConfig::CONFIG['host_os']
17
22
 
18
23
  CLOBBER << "jruby-complete-#{JRUBYC_VERSION}.jar"
19
24
  CLOBBER << "jruby-complete-#{JRUBYC_VERSION}.jar.sha256"
20
25
 
21
- file "jruby-complete-#{JRUBYC_VERSION}.jar.sha256" do
22
- begin
23
- system "wget https://repo1.maven.org/maven2/org/jruby/jruby-complete/#{JRUBYC_VERSION}/jruby-complete-#{JRUBYC_VERSION}.jar.sha256"
24
- rescue
25
- warn(WARNING)
26
- end
26
+ desc 'dependency check'
27
+ task :wget_check do
28
+ WGET ||= `which wget`
29
+ warn WARNING unless WGET
27
30
  end
28
31
 
29
- desc 'get sha256'
30
- task get_sha256: ["jruby-complete-#{JRUBYC_VERSION}.jar.sha256"]
31
-
32
- desc 'download, and copy to jruby_art'
33
- task default: %i[get_sha256 download copy_ruby]
34
-
35
- desc 'download JRuby upstream sources'
36
- task download: ["jruby-complete-#{JRUBYC_VERSION}.jar"]
32
+ file "jruby-complete-#{JRUBYC_VERSION}.jar.sha256" do
33
+ system "wget https://repo1.maven.org/maven2/org/jruby/jruby-complete/#{JRUBYC_VERSION}/jruby-complete-#{JRUBYC_VERSION}.jar.sha256"
34
+ end
37
35
 
38
36
  file "jruby-complete-#{JRUBYC_VERSION}.jar" do
39
37
  begin
40
38
  system "wget https://repo1.maven.org/maven2/org/jruby/jruby-complete/#{JRUBYC_VERSION}/jruby-complete-#{JRUBYC_VERSION}.jar"
41
- rescue
39
+ rescue NameError
42
40
  warn(WARNING)
43
41
  end
44
42
  value = File.read("jruby-complete-#{JRUBYC_VERSION}.jar.sha256")
45
43
  check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", value)
46
44
  end
47
45
 
46
+ desc 'get sha256'
47
+ task get_sha256: ['wget_check', "jruby-complete-#{JRUBYC_VERSION}.jar.sha256"]
48
+
49
+ desc 'download, and copy to jruby_art'
50
+ task default: %i[wget_check download copy_ruby install_samples]
51
+
52
+ desc 'download JRuby upstream sources'
53
+ task download: ['get_sha256', "jruby-complete-#{JRUBYC_VERSION}.jar"]
54
+
48
55
  directory '../lib/ruby'
49
56
 
50
57
  desc 'copy jruby-complete'
@@ -67,30 +74,70 @@ def check_sha256(filename, expected_hash)
67
74
  raise "bad sha256 checksum for #{filename} (expected #{expected_hash} got #{sha256.hexdigest})"
68
75
  end
69
76
 
77
+ desc 'initialize ~/.jruby_art directories'
78
+ task :init_dir do
79
+ unless File.exist? "#{HOME_DIR}/.jruby_art/libraries"
80
+ FileUtils.mkdir_p "#{HOME_DIR}/.jruby_art/libraries"
81
+ end
82
+ end
83
+
84
+ desc 'download and copy sound library to ~/.jruby_art'
85
+ task download_and_copy_sound: %i[wget_check init_dir download_sound copy_sound clobber]
86
+
87
+ desc 'download and copy video library to ~/.jruby_art'
88
+ task download_and_copy_video: %i[wget_check init_dir download_video copy_video clobber]
89
+
90
+ desc 'download sound library'
91
+ task :download_sound do
92
+ wget_base = 'wget https://github.com/processing/processing-sound'
93
+ wget_string = [wget_base, 'releases/download/latest', SOUND].join('/')
94
+ puts wget_string
95
+ system wget_string
96
+ end
97
+
98
+ desc 'download video library'
99
+ task :download_video do
100
+ wget_base = 'wget https://github.com/processing/processing-video'
101
+ wget_string = [wget_base, 'releases/download', VIDEO_VERSION, VIDEO].join('/')
102
+ system wget_string
103
+ end
104
+
105
+ desc 'copy sound library'
106
+ task copy_sound: SOUND do
107
+ system "unzip #{SOUND}"
108
+ FileUtils.rm_r "#{HOME_DIR}/.picrate/libraries/sound" if File.exist? "#{HOME_DIR}/.jruby_art/libraries/sound"
109
+ FileUtils.cp_r 'sound', "#{HOME_DIR}/.jruby_art/libraries"
110
+ FileUtils.rm_r 'sound'
111
+ end
112
+
113
+ desc 'copy video library'
114
+ task copy_video: VIDEO do
115
+ system "unzip #{VIDEO}"
116
+ FileUtils.rm_r "#{HOME_DIR}/.picrate/libraries/video" if File.exist? "#{HOME_DIR}/.jruby_art/libraries/video"
117
+ FileUtils.cp_r 'video', "#{HOME_DIR}/.jruby_art/libraries/video"
118
+ FileUtils.rm_r 'video'
119
+ end
120
+
70
121
  desc 'download, and copy to jruby_art'
71
- task unpack_samples: %i[download_examples copy_examples]
122
+ task install_samples: %i[download_examples copy_examples]
72
123
 
73
124
  desc 'download and copy examples to user home'
74
125
  task :download_examples
75
126
  file_name = MAC_OR_LINUX.nil? ? "#{EXAMPLES}.zip" : "#{EXAMPLES}.tar.gz"
76
127
  file file_name do
77
- begin
78
- if MAC_OR_LINUX.nil?
79
- system "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.zip"
80
- else
81
- system "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.tar.gz"
82
- end
83
- rescue
84
- warn(WARNING)
128
+ if MAC_OR_LINUX.nil?
129
+ system "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.zip"
130
+ else
131
+ system "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.tar.gz"
85
132
  end
86
133
  end
87
134
 
88
135
  desc 'copy examples'
89
136
  task copy_examples: file_name do
90
137
  if MAC_OR_LINUX.nil?
91
- sh "unzip #{EXAMPLES}.zip"
138
+ system "unzip #{EXAMPLES}.zip"
92
139
  else
93
- sh "tar xzvf #{EXAMPLES}.tar.gz"
140
+ system "tar xzvf #{EXAMPLES}.tar.gz"
94
141
  end
95
142
  FileUtils.rm_r("#{HOME_DIR}/k9_samples") if File.exist? "#{HOME_DIR}/k9_samples"
96
143
  FileUtils.cp_r("JRubyArt-examples-#{EXAMPLES}", "#{HOME_DIR}/k9_samples")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby_art
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Prout
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-30 00:00:00.000000000 Z
11
+ date: 2019-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -57,7 +57,7 @@ files:
57
57
  - lib/jogl-all-natives-macosx-universal.jar
58
58
  - lib/jogl-all-natives-windows-amd64.jar
59
59
  - lib/jogl-all.jar
60
- - lib/jruby_art-2.2.0.jar
60
+ - lib/jruby_art-2.2.1.jar
61
61
  - lib/jruby_art.rb
62
62
  - lib/jruby_art/app.rb
63
63
  - lib/jruby_art/config.rb
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - A decent graphics card
118
118
  - java runtime >= 11.0.3+
119
- rubygems_version: 3.0.4
119
+ rubygems_version: 3.0.6
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: Code as Art, Art as Code. Processing and Ruby are meant for each other.
Binary file