jruby_art 1.4.0 → 1.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ee4767110e0ed4aeaa943f225dc6bc31a3f1f3a
4
- data.tar.gz: 39fcc2a3cc9c1fe90ef46376978450243e352f31
3
+ metadata.gz: 3f5a2a6e4f71fa4b9b431e90623c6813bd8f3c43
4
+ data.tar.gz: 138573a28fe79c3982c22452369a6379cd77943c
5
5
  SHA512:
6
- metadata.gz: 0e5d43a19b51bc45d2e4d5d31422fc804969329a0c1f0243f3a65a5df8d86a397bb5e0401ef31c916920ccd6698dccb2642c49b4f27a377325ee6ebda13b3e51
7
- data.tar.gz: 3d27521dd0852aa24392675826e787d8aa267cb63be9292db9a10da64adb1bdfd94699843a692866ae0589fc23b3dc335739ae022a8e7def0bdd42a97e1780bd
6
+ metadata.gz: e167c2fbcb36d8bceba43f6c04ae2f6c0ed5acb4f212435800ca8b3f2e2383a75f051ba07e2deca202b845824f15c7a20169f783f3bdbaa886e35416be1f16b6
7
+ data.tar.gz: 880b701d19c4235ae7b862069912c2187df92c1f7230c3168b02219467dbec018793a777a9d894c1dec5d713f7317c65733e51d49257635183c8c8e17ce92493
data/lib/jruby_art/app.rb CHANGED
@@ -32,6 +32,9 @@ module Processing
32
32
  key_released: :keyReleased,
33
33
  key_typed: :keyTyped
34
34
  }.freeze
35
+ class << self
36
+ attr_accessor :app
37
+ end
35
38
  # All sketches extend this class
36
39
  class App < PApplet
37
40
  include HelperMethods
@@ -99,7 +102,7 @@ module Processing
99
102
 
100
103
  def initialize(options = {})
101
104
  super()
102
- $app = self
105
+ Processing.app = self
103
106
  post_initialize(options)
104
107
  proxy_java_fields
105
108
  mix_proxy_into_inner_classes
@@ -161,7 +164,7 @@ module Processing
161
164
  surface.stopThread
162
165
  surface.setVisible(false) if surface.isStopped
163
166
  dispose
164
- $app = nil
167
+ Processing.app = nil
165
168
  end
166
169
 
167
170
  def exit
@@ -199,12 +202,12 @@ module Processing
199
202
  include HelperMethods
200
203
  include Java::ProcessingCore::PConstants
201
204
 
202
- def respond_to_missing?(symbol, include_priv = false)
203
- $app.respond_to?(symbol, include_priv) || super
205
+ def respond_to_missing?(name, include_private = false)
206
+ Processing.app.respond_to?(name) || super
204
207
  end
205
208
 
206
- def method_missing(name, *args, &block)
207
- return $app.send(name, *args) if $app.respond_to? name
209
+ def method_missing(name, *args)
210
+ return Processing.app.send(name, *args) if Processing.app && Processing.app.respond_to?(name)
208
211
  super
209
212
  end
210
213
  end # Processing::Proxy
@@ -5,7 +5,7 @@ require 'yaml'
5
5
  # The wrapper module
6
6
  module Processing
7
7
  unless defined? RP_CONFIG
8
- config_path = '~/.jruby_art/config.yml'
8
+ config_path = "#{ENV['HOME']}/.jruby_art/config.yml"
9
9
  begin
10
10
  CONFIG_FILE_PATH = File.expand_path(config_path)
11
11
  RP_CONFIG = YAML.load_file(CONFIG_FILE_PATH)
@@ -41,14 +41,3 @@ module Processing
41
41
 
42
42
  OS ||= HostOS.os
43
43
  end
44
-
45
- # This class encapulates knowledge of processing sketchbook structure
46
- class Sketchbook
47
- def self.path
48
- File.join(Processing::RP_CONFIG['sketchbook_path'], 'libraries')
49
- end
50
-
51
- def self.library(name)
52
- Dir["#{path}/#{name}/library/\*.jar"]
53
- end
54
- end
@@ -1,33 +1,33 @@
1
1
  # frozen_string_literal: false
2
2
  require 'yaml'
3
3
 
4
- VERSION = '3.3.4'.freeze # processing version
4
+ VERSION = '3.3.6'.freeze # processing version
5
5
 
6
6
  # Abstract Installer class
7
7
  class Installer
8
- attr_reader :os, :sketch, :gem_root, :home
8
+ attr_reader :os, :sketch, :gem_root, :confd
9
9
  def initialize(root, os)
10
10
  @os = os
11
11
  @gem_root = root
12
- @home = ENV['HOME']
13
- @sketch = "#{home}/sketchbook" if os == :linux
14
- @sketch = "#{home}/My Documents/Processing" if os == :windows
15
- @sketch = "#{home}/Documents/Processing" if os == :mac
12
+ @sketch = "#{ENV['HOME']}/sketchbook" if os == :linux
13
+ @sketch = "#{ENV['HOME']}/My Documents/Processing" if os == :windows
14
+ @sketch = "#{ENV['HOME']}/Documents/Processing" if os == :mac
15
+ @confd = "#{ENV['HOME']}/.jruby_art"
16
16
  end
17
17
 
18
18
  # Optimistically set processing root
19
19
  def set_processing_root
20
- require 'psych'
21
- folder = File.expand_path("#{home}/.jruby_art")
20
+ folder = "#{ENV['HOME']}/.jruby_art"
22
21
  Dir.mkdir(folder) unless File.exist? folder
23
22
  path = File.join(folder, 'config.yml')
24
- proot = "#{home}/processing-#{VERSION}"
23
+ proot = "#{ENV['HOME']}/processing-#{VERSION}"
25
24
  proot = "/Java/Processing-#{VERSION}" if os == :windows
26
25
  proot = "/Applications/Processing.app/Contents/Java" if os == :mac
27
26
  settings = %w(PROCESSING_ROOT JRUBY sketchbook_path template MAX_WATCH sketch_title width height)
28
27
  values = [proot, true, sketch, 'bare', 32, 'JRubyArt Static Sketch', 600, 600]
29
28
  data = settings.zip(values).to_h
30
29
  open(path, 'w:UTF-8') { |file| file.write(data.to_yaml) }
30
+ warn 'PROCESSING_ROOT set optimistically, run check to confirm'
31
31
  end
32
32
 
33
33
  def root_exist?
@@ -35,7 +35,7 @@ class Installer
35
35
  end
36
36
 
37
37
  def config
38
- k9config = File.expand_path("#{home}/.jruby_art/config.yml")
38
+ k9config = File.join(confd, 'config.yml')
39
39
  return '' unless File.exist? k9config
40
40
  YAML.load_file(k9config)
41
41
  end
@@ -54,7 +54,7 @@ end
54
54
 
55
55
  # Configuration checker
56
56
  class Check < Installer
57
- require_relative 'core'
57
+ require_relative './core'
58
58
  def install
59
59
  show_version
60
60
  return super unless config
@@ -86,9 +86,7 @@ end
86
86
  # JRuby-Complete installer
87
87
  class JRubyCompleteInstall < Installer
88
88
  def install
89
+ set_processing_root unless File.exist? File.join(confd, 'config.yml')
89
90
  system "cd #{gem_root}/vendors && rake"
90
- return if root_exist?
91
- set_processing_root
92
- warn 'PROCESSING_ROOT set optimistically, run check to confirm'
93
91
  end
94
92
  end
@@ -0,0 +1,84 @@
1
+ require_relative 'native_folder'
2
+ require_relative 'native_loader'
3
+
4
+ require 'pathname'
5
+
6
+ BUNDLED = %r{pdf|net|dxf|svg|serial}
7
+ # This class knows where to find propane libraries
8
+ class Library
9
+ require_relative '../jruby_art'
10
+ require_relative './config'
11
+ attr_reader :name, :path, :dir, :ppath
12
+
13
+ def initialize(name)
14
+ @name = name
15
+ @ruby = true
16
+ end
17
+
18
+ def locate
19
+ return if (@path = Pathname.new(
20
+ File.join(SKETCH_ROOT, 'library', name, "#{name}.rb")
21
+ )).exist?
22
+ return if (@path = Pathname.new(
23
+ File.join(K9_ROOT, 'library', name, "#{name}.rb")
24
+ )).exist?
25
+ locate_java
26
+ end
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?
33
+ locate_installed_java
34
+ end
35
+
36
+ def locate_installed_java
37
+ prefix = bundled? ? File.join(root, 'modes/java') : sketchbook
38
+ @dir = Pathname.new(
39
+ File.join(prefix, "libraries/#{name}/library")
40
+ )
41
+ @path = dir.join(Pathname.new("#{name}.jar"))
42
+ end
43
+
44
+ def sketchbook
45
+ Processing::RP_CONFIG.fetch('sketchbook_path', "#{ENV['HOME']}/sketchbook")
46
+ end
47
+
48
+ def root
49
+ Processing::RP_CONFIG.fetch('PROCESSING_ROOT', "#{ENV['HOME']}/processing")
50
+ end
51
+
52
+ def ruby?
53
+ path.extname == '.rb'
54
+ end
55
+
56
+ def bundled?
57
+ BUNDLED =~ name
58
+ end
59
+
60
+ def exist?
61
+ path.exist?
62
+ end
63
+
64
+ def load_jars
65
+ Dir.glob("#{dir}/*.jar").each do |jar|
66
+ require jar
67
+ end
68
+ return unless native_binaries?
69
+ add_binaries_to_classpath
70
+ end
71
+
72
+ def native_binaries?
73
+ native_folder = NativeFolder.new
74
+ native = native_folder.name
75
+ @ppath = File.join(dir, native)
76
+ File.directory?(ppath) &&
77
+ !Dir.glob(File.join(ppath, native_folder.extension)).empty?
78
+ end
79
+
80
+ def add_binaries_to_classpath
81
+ native_loader = NativeLoader.new
82
+ native_loader.add_native_path(ppath)
83
+ end
84
+ end
@@ -1,16 +1,13 @@
1
1
  # frozen_string_literal: false
2
-
3
- require_relative '../jruby_art'
4
- require_relative 'config'
5
- # require_relative 'sketchbook'
6
2
  # The processing wrapper module
7
3
  module Processing
4
+ require_relative 'library'
5
+
8
6
  # Encapsulate library loader functionality as a class
9
7
  class LibraryLoader
10
- attr_reader :sketchbook_library_path
8
+ attr_reader :library
11
9
 
12
10
  def initialize
13
- @sketchbook_library_path = File.join(Processing::RP_CONFIG['sketchbook_path'], 'libraries')
14
11
  @loaded_libraries = Hash.new(false)
15
12
  end
16
13
 
@@ -20,99 +17,36 @@ module Processing
20
17
  end
21
18
 
22
19
  # Load a list of Ruby or Java libraries (in that order)
23
- # Usage: load_libraries :opengl, :boids
20
+ # Usage: load_libraries :video, :video_event
24
21
  #
25
22
  # If a library is put into a 'library' folder next to the sketch it will
26
- # be used instead of the library that ships with JRubyArt.
23
+ # be used instead of the library that ships with Propane.
27
24
  def load_libraries(*args)
28
25
  message = 'no such file to load -- %s'
29
26
  args.each do |lib|
30
- loaded = load_ruby_library(lib) || load_java_library(lib)
27
+ loaded = loader(lib)
31
28
  raise(LoadError.new, format(message, lib)) unless loaded
32
29
  end
33
30
  end
34
31
  alias load_library load_libraries
35
32
 
36
- # For pure ruby libraries.
37
- # The library should have an initialization ruby file
38
- # of the same name as the library folder.
39
- def load_ruby_library(library_name)
40
- library_name = library_name.to_sym
41
- return true if @loaded_libraries.include?(library_name)
42
- path = get_library_paths(library_name, 'rb').first
43
- return false unless path
44
- @loaded_libraries[library_name] = (require path)
45
- end
46
-
47
- # HACK: For pure java libraries, such as the ones that are available
48
- # on this page: http://processing.org/reference/libraries/index.html
49
- # that include native code, we mess with the 'Java ClassLoader', so that
50
- # you don't have to futz with your PATH. But it's probably bad juju.
51
- def load_java_library(library_name)
52
- library_name = library_name.to_sym
53
- return true if @loaded_libraries.include?(library_name)
54
- jpath = get_library_directory_path(library_name, 'jar')
55
- jars = get_library_paths(library_name, 'jar')
56
- return false if jars.empty?
57
- jars.each { |jar| require jar }
58
- platform_specific_library_paths = get_platform_specific_library_paths(jpath)
59
- platform_specific_library_paths = platform_specific_library_paths.select do |ppath|
60
- FileTest.directory?(ppath) && !Dir.glob(File.join(ppath, '*.{so,dll,jnilib}')).empty?
61
- end
62
- unless platform_specific_library_paths.empty?
63
- platform_specific_library_paths << java.lang.System.getProperty('java.library.path')
64
- new_library_path = platform_specific_library_paths.join(java.io.File.pathSeparator)
65
- java.lang.System.setProperty('java.library.path', new_library_path)
66
- field = java.lang.Class.for_name('java.lang.ClassLoader').get_declared_field('sys_paths')
67
- if field
68
- field.accessible = true
69
- field.set(java.lang.Class.for_name('java.lang.System').get_class_loader, nil)
70
- end
71
- end
72
- @loaded_libraries[library_name] = true
73
- end
74
-
75
- def platform
76
- match = %w(mac linux windows).find do |os|
77
- java.lang.System.getProperty('os.name').downcase.index(os)
78
- end
79
- return 'other' unless match
80
- return match unless match =~ /mac/
81
- 'macosx'
33
+ def loader(name)
34
+ return true if @loaded_libraries.include?(name)
35
+ fname = name.to_s
36
+ library = Library.new(fname)
37
+ library.locate
38
+ return require_library(library, name) if library.ruby?
39
+ warn("Not found library: #{fname}") unless library.exist?
40
+ load_jars(library, name)
82
41
  end
83
42
 
84
- def get_platform_specific_library_paths(basename)
85
- bits = '64'
86
- if java.lang.System.getProperty('sun.arch.data.model') == '32' ||
87
- java.lang.System.getProperty('java.vm.name').index('32')
88
- bits = '32' unless platform =~ /macosx/
89
- end
90
- [platform, platform + bits].map { |p| File.join(basename, p) }
43
+ def load_jars(lib, name)
44
+ lib.load_jars
45
+ @loaded_libraries[name] = true
91
46
  end
92
47
 
93
- def get_library_paths(library_name, extension = nil)
94
- dir = get_library_directory_path(library_name, extension)
95
- Dir.glob("#{dir}/*.{rb,jar}")
96
- end
97
-
98
- protected
99
-
100
- def get_library_directory_path(library_name, extension = nil)
101
- extensions = extension ? [extension] : %w(jar rb)
102
- extensions.each do |ext|
103
- [
104
- "#{SKETCH_ROOT}/library/#{library_name}",
105
- "#{Processing::RP_CONFIG['PROCESSING_ROOT']}/modes/java/libraries/#{library_name}/library",
106
- "#{K9_ROOT}/library/#{library_name}/library",
107
- "#{K9_ROOT}/library/#{library_name}",
108
- "#{Sketchbook.path}/#{library_name}/library"
109
- ].each do |jpath|
110
- if File.exist?(jpath) && !Dir.glob(format('%s/*.%s', jpath, ext)).empty?
111
- return jpath
112
- end
113
- end
114
- end
115
- nil
48
+ def require_library(lib, name)
49
+ @loaded_libraries[name] = require lib.path
116
50
  end
117
51
  end
118
52
  end
@@ -0,0 +1,34 @@
1
+ require 'rbconfig'
2
+
3
+ # Utility to load native binaries on Java CLASSPATH
4
+ class NativeFolder
5
+ attr_reader :os, :bit
6
+
7
+ WIN_FORMAT = 'windows%d'
8
+ LINUX_FORMAT = 'linux%d'
9
+ WIN_PATTERNS = [
10
+ /bccwin/i,
11
+ /cygwin/i,
12
+ /djgpp/i,
13
+ /ming/i,
14
+ /mswin/i,
15
+ /wince/i
16
+ ].freeze
17
+
18
+ def initialize
19
+ @os = RbConfig::CONFIG['host_os'].downcase
20
+ @bit = java.lang.System.get_property('os.arch') =~ /64/ ? 64 : 32
21
+ end
22
+
23
+ def name
24
+ return 'macosx' if os =~ /darwin/ || os =~ /mac/
25
+ return format(WIN_FORMAT, bit) if WIN_PATTERNS.include? os
26
+ return format(LINUX_FORMAT, bit) if os =~ /linux/
27
+ end
28
+
29
+ def extension
30
+ return '*.so' if os =~ /linux/
31
+ return '*.dll' if WIN_PATTERNS.include? os
32
+ '*.dylib' # MacOS
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ # This class knows how to dynamically set the 'java' native library path
2
+ # It might not work with java 9?
3
+ class NativeLoader
4
+ attr_reader :separator, :current_path
5
+
6
+ module JC
7
+ java_import 'java.lang.Class'
8
+ java_import 'java.lang.System'
9
+ java_import 'java.io.File'
10
+ end
11
+
12
+ def initialize
13
+ @separator = JC::File.pathSeparatorChar
14
+ @current_path = JC::System.getProperty('java.library.path')
15
+ end
16
+
17
+ def add_native_path(pth)
18
+ current_path << separator << pth
19
+ JC::System.setProperty('java.library.path', current_path)
20
+ field = JC::Class.for_name('java.lang.ClassLoader')
21
+ .get_declared_field('sys_paths')
22
+ return unless field
23
+ field.accessible = true # some jruby magic
24
+ field.set(JC::Class.for_name('java.lang.System').get_class_loader, nil)
25
+ end
26
+ end
@@ -84,7 +84,7 @@ module Processing
84
84
  end
85
85
 
86
86
  options[:live] = false
87
- opts.on('-l', '--live', 'As above, with pry console bound to $app') do
87
+ opts.on('-l', '--live', 'As above, with pry console bound to Processing.app') do
88
88
  options[:live] = true
89
89
  end
90
90
 
@@ -35,7 +35,7 @@ module Processing
35
35
  no_methods = source.match(/^[^#]*(def\s+setup|def\s+draw)/).nil?
36
36
  if wrapped
37
37
  load SKETCH_PATH
38
- Processing::App.sketch_class.new unless $app
38
+ Processing::App.sketch_class.new unless Processing.app
39
39
  return
40
40
  end
41
41
  name = RP_CONFIG.fetch('sketch_title', 'Naked Sketch')
@@ -43,7 +43,7 @@ module Processing
43
43
  height = RP_CONFIG.fetch('height', 200)
44
44
  code = no_methods ? format(NAKED_WRAP, name, source, width, height) : format(BARE_WRAP, source)
45
45
  Object.class_eval code, SKETCH_PATH, -1
46
- Processing::App.sketch_class.new unless $app
46
+ Processing::App.sketch_class.new unless Processing.app
47
47
  end
48
48
 
49
49
  # Read in the sketch source code. Needs to work both online and offline.
@@ -11,7 +11,7 @@ MESSAGE = "You need to 'jruby -S gem install pry' for 'live' mode".freeze
11
11
 
12
12
  if Gem::Specification.find_all_by_name('pry').any?
13
13
  require 'pry'
14
- $app.pry
14
+ Processing.app.pry
15
15
  else
16
16
  raise(PryException.new, MESSAGE)
17
17
  end
@@ -33,7 +33,7 @@ module Processing
33
33
  Kernel.loop do
34
34
  if @files.find { |file| FileTest.exist?(file) && File.stat(file).mtime > @time }
35
35
  puts 'reloading sketch...'
36
- $app && $app.close
36
+ Processing.app && Processing.app.close
37
37
  java.lang.System.gc
38
38
  @time = Time.now
39
39
  start_runner
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  # A wrapper for version
3
3
  module JRubyArt
4
- VERSION = '1.4.0'.freeze
4
+ VERSION = '1.4.1'.freeze
5
5
  end
data/lib/rpextras.jar CHANGED
Binary file
@@ -10,8 +10,8 @@ module ControlPanel
10
10
  def initialize(control_panel, name, range, initial_value, proc = nil)
11
11
  min = range.begin * 100
12
12
  max = (
13
- (range.exclude_end? && range.begin.respond_to?(:succ)) ?
14
- range.max : range.end) * 100
13
+ (range.exclude_end? && range.begin.respond_to?(:succ)) ?
14
+ range.max : range.end) * 100
15
15
  super(min, max)
16
16
  set_minor_tick_spacing((max - min).abs / 10)
17
17
  set_paint_ticks true
@@ -20,7 +20,7 @@ module ControlPanel
20
20
  label = control_panel.add_element(self, name)
21
21
  add_change_listener do
22
22
  update_label(label, name, value)
23
- $app.instance_variable_set("@#{name}", value) unless value.nil?
23
+ Processing.app.instance_variable_set("@#{name}", value) unless value.nil?
24
24
  proc.call(value) if proc
25
25
  end
26
26
  set_value(initial_value ? initial_value * 100 : min)
@@ -45,7 +45,7 @@ module ControlPanel
45
45
  set_preferred_size(java.awt.Dimension.new(190, 30))
46
46
  control_panel.add_element(self, name)
47
47
  add_action_listener do
48
- $app.instance_variable_set("@#{name}", value) unless value.nil?
48
+ Processing.app.instance_variable_set("@#{name}", value) unless value.nil?
49
49
  proc.call(value) if proc
50
50
  end
51
51
  set_selected_index(initial_value ? elements.index(initial_value) : 0)
@@ -65,7 +65,7 @@ module ControlPanel
65
65
  set_horizontal_alignment javax.swing.SwingConstants::CENTER
66
66
  control_panel.add_element(self, name, false)
67
67
  add_action_listener do
68
- $app.instance_variable_set("@#{name}", value)
68
+ Processing.app.instance_variable_set("@#{name}", value) unless value.nil?
69
69
  proc.call(value) if proc
70
70
  end
71
71
  end
@@ -82,8 +82,8 @@ module ControlPanel
82
82
  set_preferred_size(java.awt.Dimension.new(170, 64))
83
83
  control_panel.add_element(self, name, false, true)
84
84
  add_action_listener do
85
- $app.send(name)
86
- proc.call if proc
85
+ Processing.app.send(name.to_s)
86
+ proc.call(value) if proc
87
87
  end
88
88
  end
89
89
  end
@@ -110,7 +110,7 @@ module ControlPanel
110
110
  set_size 200, 30 + (64 * elements.size)
111
111
  set_default_close_operation javax.swing.JFrame::HIDE_ON_CLOSE
112
112
  set_resizable false
113
- set_location($app.width + 10, 0) unless $app.width + 10 > $app.displayWidth
113
+ set_location(Processing.app.width + 10, 0) unless Processing.app.width + 10 > Processing.app.displayWidth
114
114
  panel.visible = true
115
115
  end
116
116
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  # Here's a little library for quickly hooking up in sketch sliders.
3
- # Copyright (c) 2016 Martin Prout.
3
+ # Copyright (c) 2016-17 Martin Prout.
4
4
 
5
5
  java_import 'monkstone.slider.CustomHorizontalSlider'
6
6
  java_import 'monkstone.slider.CustomVerticalSlider'
data/vendors/Rakefile CHANGED
@@ -9,7 +9,7 @@ WARNING = <<-EOS.freeze
9
9
  EOS
10
10
 
11
11
 
12
- JRUBYC_VERSION = '9.1.12.0'
12
+ JRUBYC_VERSION = '9.1.13.0'
13
13
 
14
14
  EXAMPLES = '2.4'
15
15
  HOME_DIR = ENV['HOME']
@@ -29,9 +29,7 @@ file "jruby-complete-#{JRUBYC_VERSION}.jar" do
29
29
  rescue
30
30
  warn(WARNING)
31
31
  end
32
-
33
- check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", "f97a65d79aa57f01328783dd00f81568f70dbf26a3ed2a502d6a985224d0ac72")
34
-
32
+ check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", "96acc80d383e3268df6d1e4947367966729a9c130dfeb889e4e3af77e63a2433")
35
33
  end
36
34
 
37
35
  directory "../lib/ruby"
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: 1.4.0
4
+ version: 1.4.1
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: 2017-08-06 00:00:00.000000000 Z
13
+ date: 2017-09-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -63,7 +63,10 @@ files:
63
63
  - lib/jruby_art/java_opts.rb
64
64
  - lib/jruby_art/jruby_complete.rb
65
65
  - lib/jruby_art/launcher.rb
66
+ - lib/jruby_art/library.rb
66
67
  - lib/jruby_art/library_loader.rb
68
+ - lib/jruby_art/native_folder.rb
69
+ - lib/jruby_art/native_loader.rb
67
70
  - lib/jruby_art/runner.rb
68
71
  - lib/jruby_art/runners/base.rb
69
72
  - lib/jruby_art/runners/live.rb
@@ -101,9 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
104
  requirements:
102
105
  - A decent graphics card
103
106
  - java runtime >= 1.8.0_131+
104
- - processing = 3.3.5
107
+ - processing = 3.3.6
105
108
  rubyforge_project:
106
- rubygems_version: 2.6.11
109
+ rubygems_version: 2.6.13
107
110
  signing_key:
108
111
  specification_version: 4
109
112
  summary: Code as Art, Art as Code. Processing and Ruby are meant for each other.