jruby_art 2.2.1 → 2.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/bin/k9 +4 -3
  3. data/lib/gluegen-rt-natives-linux-amd64.jar +0 -0
  4. data/lib/gluegen-rt-natives-macosx-universal.jar +0 -0
  5. data/lib/gluegen-rt-natives-windows-amd64.jar +0 -0
  6. data/lib/gluegen-rt.jar +0 -0
  7. data/lib/jogl-all-natives-linux-amd64.jar +0 -0
  8. data/lib/jogl-all-natives-macosx-universal.jar +0 -0
  9. data/lib/jogl-all-natives-windows-amd64.jar +0 -0
  10. data/lib/jogl-all.jar +0 -0
  11. data/lib/jruby_art-2.4.2.jar +0 -0
  12. data/lib/jruby_art/app.rb +8 -7
  13. data/lib/jruby_art/config.rb +2 -0
  14. data/lib/jruby_art/creators/sketch_writer.rb +31 -13
  15. data/lib/jruby_art/default_config.rb +2 -0
  16. data/lib/jruby_art/helper_methods.rb +22 -22
  17. data/lib/jruby_art/helpers/aabb.rb +3 -0
  18. data/lib/jruby_art/helpers/numeric.rb +1 -0
  19. data/lib/jruby_art/installer.rb +10 -7
  20. data/lib/jruby_art/java_opts.rb +2 -0
  21. data/lib/jruby_art/jruby_complete.rb +2 -0
  22. data/lib/jruby_art/launcher.rb +8 -3
  23. data/lib/jruby_art/library.rb +67 -67
  24. data/lib/jruby_art/library_loader.rb +4 -1
  25. data/lib/jruby_art/native_folder.rb +16 -14
  26. data/lib/jruby_art/native_loader.rb +3 -0
  27. data/lib/jruby_art/processing_ide.rb +5 -1
  28. data/lib/jruby_art/runner.rb +10 -9
  29. data/lib/jruby_art/runners/base.rb +1 -0
  30. data/lib/jruby_art/runners/live.rb +10 -7
  31. data/lib/jruby_art/runners/run.rb +1 -0
  32. data/lib/jruby_art/runners/watch.rb +6 -4
  33. data/lib/jruby_art/version.rb +2 -1
  34. data/library/boids/boids.rb +19 -10
  35. data/library/chooser/chooser.rb +10 -9
  36. data/library/color_group/color_group.rb +2 -0
  37. data/library/control_panel/control_panel.rb +8 -5
  38. data/library/dxf/dxf.rb +2 -0
  39. data/library/library_proxy/library_proxy.rb +2 -0
  40. data/library/net/net.rb +2 -0
  41. data/library/slider/slider.rb +24 -23
  42. data/library/vector_utils/vector_utils.rb +5 -1
  43. data/library/video_event/video_event.rb +3 -0
  44. data/vendors/Rakefile +13 -7
  45. metadata +13 -13
  46. data/lib/jruby_art-2.2.1.jar +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3101b35efc934fc4337e6f8f34f3ea9d8022c8bf1001d743a01b675417ddf35e
4
- data.tar.gz: 25481f1ab8a5f77ca32cd08542f64b7aa771fc29c6399859bf5f433b5d71c4e7
3
+ metadata.gz: fb6f04593bba0f4ffdb178a135045104a25f698b79648139963bbc229c38762e
4
+ data.tar.gz: 7f388994b97720459e7879663c865b05b19663255cfd7ccee92d6955dabb33eb
5
5
  SHA512:
6
- metadata.gz: ec5f26712feeee0f7b151133457d6beb1216459e03e1410a9d77bed0ab2b575120f9b0b2dd064c8b88f1090640b1f97f13cc8e6881d32053ef84c273c5da6279
7
- data.tar.gz: 0f51c6231b99a00994ac354d78b433a54731cc757d4728650f6b255983d9ddcfbd7d03e1a07826f2e272582d7645be7b764224cb6e1a37b44c151a1f9d6bd35d
6
+ metadata.gz: df1734a114f9bf80ed7a9694260a3a0e32bbbd7e75801f8547322e080b6bc00d7c68f6cccdeaee7c35391e496e09224eeeaf59124b401bfc47e5552b95391834
7
+ data.tar.gz: 0c284aa5547a2da7cf7990eaded6f857bd64c551cc9455dea59247f77225baff2bfef81af9701c456a047f37d6e637c20295c941802c9f095def2816ea82786e
data/bin/k9 CHANGED
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  file = __FILE__
4
- if test(?l, file)
5
- require "pathname"
5
+ if test('l', file)
6
+ require 'pathname'
6
7
  file = Pathname.new(file).realpath
7
8
  end
8
9
 
9
- require File.expand_path(File.dirname(file) + "/../lib/jruby_art")
10
+ require File.expand_path(File.dirname(file) + '/../lib/jruby_art')
10
11
  Processing::Runner.execute
Binary file
Binary file
Binary file
@@ -1,6 +1,8 @@
1
- require 'java'
1
+ # frozen_string_literal: true
2
+
3
+ require 'jruby'
2
4
  require_relative '../jruby_art'
3
- Dir["#{K9_ROOT}/lib/*.jar"].each do |jar|
5
+ Dir["#{K9_ROOT}/lib/*.jar"].sort.each do |jar|
4
6
  require jar
5
7
  end
6
8
  require_relative '../jruby_art/helper_methods'
@@ -10,7 +12,6 @@ require_relative '../jruby_art/config'
10
12
 
11
13
  # A wrapper module for the processing App
12
14
  module Processing
13
-
14
15
  # Include some core processing classes that we'd like to use:
15
16
  include_package 'processing.core'
16
17
  # Load vecmath, fastmath and mathtool modules
@@ -113,7 +114,7 @@ module Processing
113
114
  puts(exception.backtrace.map { |trace| "\t#{trace}" })
114
115
  close
115
116
  end
116
- @surface = self.get_surface
117
+ @surface = get_surface
117
118
  # NB: this is the processing runSketch() method as used by processing.py
118
119
  run_sketch
119
120
  end
@@ -123,7 +124,7 @@ module Processing
123
124
  @width ||= width
124
125
  @height ||= height
125
126
  @render_mode ||= mode
126
- import_opengl if /opengl/ =~ mode
127
+ import_opengl if /opengl/.match?(mode)
127
128
  super(*args)
128
129
  end
129
130
 
@@ -183,7 +184,7 @@ module Processing
183
184
  klass = Processing::App.sketch_class
184
185
  klass.constants.each do |name|
185
186
  const = klass.const_get name
186
- next if const.class != Class || const.to_s.match(/^Java::/)
187
+ next if const.class != Class || /^Java::/.match?(const.to_s)
187
188
 
188
189
  const.class_eval 'include Processing::Proxy', __FILE__, __LINE__
189
190
  end
@@ -214,7 +215,7 @@ module Processing
214
215
 
215
216
  def method_missing(name, *args)
216
217
  app = Processing.app
217
- return app.send(name, *args) if app && app.respond_to?(name)
218
+ return app.send(name, *args) if app&.respond_to?(name)
218
219
 
219
220
  super
220
221
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
  require_relative 'default_config'
3
5
  require_relative 'version'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: false
2
+
2
3
  # The SketchParameters class knows how to format, size, title & class name
3
4
  class SketchParameters
4
5
  attr_reader :name, :args
@@ -13,13 +14,19 @@ class SketchParameters
13
14
 
14
15
  def sketch_title
15
16
  human = name.split('_').collect(&:capitalize).join(' ')
16
- format("sketch_title '%s'", human)
17
+ format("sketch_title '%<title>s'", title: human)
17
18
  end
18
19
 
19
20
  def sketch_size
20
- mode = args.length == 3 ? format(', %s', args[2].upcase) : ''
21
+ mode = args.length == 3 ? format(', %<mode>s', mode: args[2].upcase) : ''
21
22
  return 'size 200, 200' if args.empty?
22
- format('size %d, %d%s', args[0].to_i, args[1].to_i, mode)
23
+
24
+ format(
25
+ 'size %<width>d, %<height>d%<mode>s',
26
+ width: args[0].to_i,
27
+ height: args[1].to_i,
28
+ mode: mode
29
+ )
23
30
  end
24
31
  end
25
32
 
@@ -29,7 +36,9 @@ class SketchWriter
29
36
 
30
37
  def initialize(path, args)
31
38
  @param = SketchParameters.new(name: path, args: args)
32
- @file = format('%s/%s.rb', File.dirname(path), path)
39
+ @file = format(
40
+ '%<dir>s/%<file>s.rb', dir: File.dirname(path), file: path
41
+ )
33
42
  end
34
43
 
35
44
  def write
@@ -45,7 +54,6 @@ class Sketch
45
54
 
46
55
  def initialize(param)
47
56
  @param = param
48
- self
49
57
  end
50
58
 
51
59
  BLANK ||= ''.freeze
@@ -59,18 +67,25 @@ class Sketch
59
67
  end
60
68
 
61
69
  def class_methods
62
- lines = [format('class %s < Processing::App', param.class_name)]
70
+ lines = [format('class %<name>s < Processing::App', name: param.class_name)]
63
71
  lines.concat methods(INDENT)
64
72
  lines << 'end'
65
73
  end
66
74
 
67
75
  private
68
76
 
77
+ def content(content, indent)
78
+ return BLANK if content.empty?
79
+
80
+ format(' %<indent>s%<content>s', indent: indent, content: content)
81
+ end
82
+
69
83
  def method_lines(name, content, indent)
70
- one = format('%sdef %s', indent, name)
71
- two = content.empty? ? BLANK : format(' %s%s', indent, content)
72
- three = format('%send', indent)
73
- return [one, two, three] if /draw/ =~ name
84
+ one = format('%<indent>sdef %<name>s', indent: indent, name: name)
85
+ two = content(content, indent)
86
+ three = format('%<indent>send', indent: indent)
87
+ return [one, two, three] if /draw/.match?(name)
88
+
74
89
  [one, two, three, BLANK]
75
90
  end
76
91
  end
@@ -99,7 +114,7 @@ end
99
114
  # A simple class wrapped sketch
100
115
  class ClassSketch < Sketch
101
116
  def code
102
- lines = ['# frozen_string_literal: false', BLANK]
117
+ lines = ['# frozen_string_literal: true', BLANK]
103
118
  lines.concat class_methods
104
119
  end
105
120
  end
@@ -108,7 +123,8 @@ end
108
123
  class EmacsSketch < Sketch
109
124
  def code
110
125
  lines = [
111
- '# frozen_string_literal: false',
126
+ '# frozen_string_literal: true',
127
+ BLANK,
112
128
  "require 'jruby_art'",
113
129
  "require 'jruby_art/app'",
114
130
  BLANK,
@@ -117,6 +133,8 @@ class EmacsSketch < Sketch
117
133
  ]
118
134
  lines.concat class_methods
119
135
  lines << BLANK
120
- lines << format('%s.new if Processing.app.nil?', param.class_name)
136
+ lines << format(
137
+ '%<name>s.new if Processing.app.nil?', name: param.class_name
138
+ )
121
139
  end
122
140
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # default configuration
2
4
  class Default
3
5
  def self.config
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: false
2
+
2
3
  # processing module wrapper
3
4
  require_relative '../jruby_art'
4
5
 
@@ -53,6 +54,7 @@ module Processing
53
54
 
54
55
  def color(*args)
55
56
  return super(*args) unless args.length == 1
57
+
56
58
  super(hex_color(args[0]))
57
59
  end
58
60
 
@@ -61,7 +63,7 @@ module Processing
61
63
  end
62
64
 
63
65
  def int_to_ruby_colors(p5color)
64
- warn "[DEPRECATION] `int_to_ruby_colors` is deprecated. Please use `p52ruby` instead."
66
+ warn '[DEPRECATION] `int_to_ruby_colors` is deprecated. Please use `p52ruby` instead.'
65
67
  p52ruby(p5color)
66
68
  end
67
69
 
@@ -72,11 +74,8 @@ module Processing
72
74
  # Overrides Processing convenience function thread, which takes a String
73
75
  # arg (for a function) to more rubylike version, takes a block...
74
76
  def thread(&block)
75
- if block_given?
76
- Thread.new(&block)
77
- else
78
- raise ArgumentError, 'thread must be called with a block', caller
79
- end
77
+ warn 'A Block is Needed' unless block_given?
78
+ Java::JavaLang::Thread.new(&block).start
80
79
  end
81
80
 
82
81
  # explicitly provide 'processing.org' min instance method
@@ -100,9 +99,9 @@ module Processing
100
99
  def dist(*args)
101
100
  case args.length
102
101
  when 4
103
- return dist2d(*args)
102
+ dist2d(*args)
104
103
  when 6
105
- return dist3d(*args)
104
+ dist3d(*args)
106
105
  else
107
106
  raise ArgumentError, 'takes 4 or 6 parameters'
108
107
  end
@@ -117,13 +116,13 @@ module Processing
117
116
  # Here's a convenient way to look for them.
118
117
  def find_method(method_name)
119
118
  reg = Regexp.new(method_name.to_s, true)
120
- methods.sort.select { |meth| reg.match(meth) }
119
+ methods.sort.select { |meth| reg.match?(meth) }
121
120
  end
122
121
 
123
122
  # Proxy over a list of Java declared fields that have the same name as
124
123
  # some methods. Add to this list as needed.
125
124
  def proxy_java_fields
126
- fields = %w(key frameRate mousePressed keyPressed)
125
+ fields = %w[key frameRate mousePressed keyPressed]
127
126
  methods = fields.map { |field| java_class.declared_field(field) }
128
127
  @declared_fields = Hash[fields.zip(methods)]
129
128
  end
@@ -169,6 +168,7 @@ module Processing
169
168
  # frame_rate needs to support reading and writing
170
169
  def frame_rate(fps = nil)
171
170
  return @declared_fields['frameRate'].value(java_self) unless fps
171
+
172
172
  super(fps)
173
173
  end
174
174
 
@@ -184,19 +184,17 @@ module Processing
184
184
 
185
185
  private
186
186
 
187
- FIXNUM_COL = -> (x) { x.is_a?(Integer) }
188
- STRING_COL = -> (x) { x.is_a?(String) }
189
- FLOAT_COL = -> (x) { x.is_a?(Float) }
190
187
  # parse single argument color int/double/String
191
- def hex_color(a)
192
- case a
193
- when FIXNUM_COL
194
- Java::Monkstone::ColorUtil.colorLong(a)
195
- when STRING_COL
196
- return Java::Monkstone::ColorUtil.colorString(a) if a =~ /#\h+/
197
- raise StandardError, 'Dodgy Hexstring'
198
- when FLOAT_COL
199
- Java::Monkstone::ColorUtil.colorDouble(a)
188
+ def hex_color(arg)
189
+ case arg
190
+ when Integer
191
+ Java::Monkstone::ColorUtil.colorLong(arg)
192
+ when String
193
+ raise StandardError, 'Dodgy Hexstring' unless /#\h{6}$/.match?(arg)
194
+
195
+ Java::Monkstone::ColorUtil.colorString(arg)
196
+ when Float
197
+ Java::Monkstone::ColorUtil.colorDouble(arg)
200
198
  else
201
199
  raise StandardError, 'Dodgy Color Conversion'
202
200
  end
@@ -206,6 +204,7 @@ module Processing
206
204
  dx = args[0] - args[2]
207
205
  dy = args[1] - args[3]
208
206
  return 0 if dx.abs < EPSILON && dy.abs < EPSILON
207
+
209
208
  Math.hypot(dx, dy)
210
209
  end
211
210
 
@@ -214,6 +213,7 @@ module Processing
214
213
  dy = args[1] - args[4]
215
214
  dz = args[2] - args[5]
216
215
  return 0 if dx.abs < EPSILON && dy.abs < EPSILON && dz.abs < EPSILON
216
+
217
217
  Math.sqrt(dx * dx + dy * dy + dz * dz)
218
218
  end
219
219
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Axis aligned bounding box class (AABB would clash with Toxicgem)
3
4
  class AaBb
4
5
  attr_reader :center, :extent
@@ -14,6 +15,7 @@ class AaBb
14
15
 
15
16
  def position(vec)
16
17
  return @center = vec unless block_given?
18
+
17
19
  @center = vec if yield
18
20
  end
19
21
 
@@ -24,6 +26,7 @@ class AaBb
24
26
  def contains?(vec)
25
27
  rad = extent * 0.5
26
28
  return false unless (center.x - rad.x..center.x + rad.x).cover? vec.x
29
+
27
30
  (center.y - rad.y..center.y + rad.y).cover? vec.y
28
31
  end
29
32
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Re-open Numeric so that we can do simple degree and radian conversions
3
4
  # conversion factors are 180 / Math::PI and Math::PI / 180
4
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'config'
2
4
  require_relative 'processing_ide'
3
5
 
@@ -8,13 +10,14 @@ class Installer
8
10
  end
9
11
 
10
12
  def install
11
- if processing_ide.installed?
12
- config = Config.new(
13
- 'processing_ide' => true,
14
- 'library_path' => processing_ide.sketchbook_path)
15
- else
16
- config = Config.new('processing_ide' => false)
17
- end
13
+ config = if processing_ide.installed?
14
+ Config.new(
15
+ 'processing_ide' => true,
16
+ 'library_path' => processing_ide.sketchbook_path
17
+ )
18
+ else
19
+ Config.new('processing_ide' => false)
20
+ end
18
21
  config.write_to_file
19
22
  end
20
23
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: false
2
+
2
3
  # class to parse java_args.txt or java_args in config.yml
3
4
  class JavaOpts
4
5
  attr_reader :opts
@@ -8,6 +9,7 @@ class JavaOpts
8
9
  @opts = []
9
10
  @opts += File.read(arg_file).split(/\s+/) if FileTest.exist?(arg_file)
10
11
  return unless opts.empty? && Processing::RP_CONFIG.fetch('java_args', false)
12
+
11
13
  @opts += Processing::RP_CONFIG['java_args'].split(/\s+/)
12
14
  end
13
15
  end
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class JRubyComplete
3
4
  def self.complete
4
5
  rcomplete = File.join(K9_ROOT, 'lib/ruby/jruby-complete.jar')
5
6
  return [rcomplete] if FileTest.exist?(rcomplete)
7
+
6
8
  warn "#{rcomplete} does not exist\nTry running `k9 --install`"
7
9
  exit
8
10
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../jruby_art/jruby_complete'
3
4
  require_relative '../jruby_art/java_opts'
4
5
  module Processing
@@ -32,10 +33,12 @@ end
32
33
 
33
34
  # Wrap creation of java command string as a class
34
35
  class JavaCommand
35
- MAIN = 'org.jruby.Main'.freeze
36
+ MAIN = 'org.jruby.Main'
36
37
  attr_reader :runner, :args, :filename, :opts, :complete
37
38
  def initialize(runner, args, filename)
38
- @runner, @args, @filename = runner, args, filename
39
+ @runner = runner
40
+ @args = args
41
+ @filename = filename
39
42
  @complete = JRubyComplete.complete
40
43
  @opts = JavaOpts.new.opts
41
44
  end
@@ -49,7 +52,9 @@ end
49
52
  class JRubyCommand
50
53
  attr_reader :runner, :args, :filename, :opts
51
54
  def initialize(runner, args, filename)
52
- @runner, @args, @filename = runner, args, filename
55
+ @runner = runner
56
+ @args = args
57
+ @filename = filename
53
58
  @opts = JRubyOpts.new.opts
54
59
  end
55
60