jruby_art 1.2.1 → 1.2.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.rb +0 -1
- data/lib/jruby_art/app.rb +9 -6
- data/lib/jruby_art/creators/sketch_writer.rb +68 -95
- data/lib/jruby_art/helper_methods.rb +15 -14
- data/lib/jruby_art/installer.rb +2 -1
- data/lib/jruby_art/library_loader.rb +3 -2
- data/lib/jruby_art/runner.rb +4 -1
- data/lib/jruby_art/runners/base.rb +2 -2
- data/lib/jruby_art/runners/watch.rb +10 -5
- data/lib/jruby_art/version.rb +1 -2
- data/lib/rpextras.jar +0 -0
- data/vendors/Rakefile +4 -4
- metadata +6 -8
- data/lib/jruby_art/helpers/string_extra.rb +0 -33
- data/lib/jruby_art/sketchbook.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f668fbc71962abf201d373a8b3cac768c81ea269
|
4
|
+
data.tar.gz: 2abb81363bb489fb397c51443c7c33d477bfcbc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03cb1b70cf248937f86cee8d6c135e861232e07279352fdbd194d294eebd04b68eab1b75a780e8ff80b64eedaacf76015bbf0e321daff36c4de7e26125aa20c5
|
7
|
+
data.tar.gz: 9821714651eaec453b93ff15ebd9268092a27fb01aaa2989f4933f472bb7d19955fadea645a324bb0fabc31cab5ebe58286f8aae70a8cf0b18ff87db620b61b0
|
data/lib/jruby_art.rb
CHANGED
data/lib/jruby_art/app.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: false
|
3
2
|
|
4
3
|
require 'java'
|
@@ -38,10 +37,10 @@ module Processing
|
|
38
37
|
include HelperMethods, Math, MathTool, Render
|
39
38
|
# Alias some methods for familiarity for Shoes coders.
|
40
39
|
# surface replaces :frame, but needs field_reader for access
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
alias oval ellipse
|
41
|
+
alias stroke_width stroke_weight
|
42
|
+
alias rgb color
|
43
|
+
alias gray color
|
45
44
|
field_reader :surface
|
46
45
|
|
47
46
|
def sketch_class
|
@@ -63,7 +62,7 @@ module Processing
|
|
63
62
|
library_loader ||= LibraryLoader.new
|
64
63
|
library_loader.load_library(*args)
|
65
64
|
end
|
66
|
-
|
65
|
+
alias load_library load_libraries
|
67
66
|
|
68
67
|
def library_loaded?(library_name)
|
69
68
|
library_loader.library_loaded?(library_name)
|
@@ -194,6 +193,10 @@ module Processing
|
|
194
193
|
module Proxy
|
195
194
|
include Math, HelperMethods, Java::ProcessingCore::PConstants
|
196
195
|
|
196
|
+
def respond_to_missing?(name, include_private = false)
|
197
|
+
$app.respond_to?(name) || super
|
198
|
+
end
|
199
|
+
|
197
200
|
def method_missing(name, *args)
|
198
201
|
return $app.send(name, *args) if $app && $app.respond_to?(name)
|
199
202
|
super
|
@@ -1,128 +1,101 @@
|
|
1
|
-
EMACS = <<-CODE
|
2
1
|
# frozen_string_literal: false
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def settings
|
10
|
-
%s
|
11
|
-
end
|
12
|
-
|
13
|
-
def setup
|
14
|
-
%s
|
15
|
-
end
|
16
|
-
|
17
|
-
def draw
|
2
|
+
# The SketchParameters class knows how to format, size, title & class name
|
3
|
+
class SketchParameters
|
4
|
+
attr_reader :name, :args
|
5
|
+
def initialize(name:, args:)
|
6
|
+
@name = name
|
7
|
+
@args = args
|
18
8
|
end
|
19
|
-
end
|
20
|
-
|
21
|
-
%s.new unless defined? $app
|
22
9
|
|
23
|
-
|
24
|
-
|
25
|
-
CLASS = <<-CODE
|
26
|
-
class %s < Processing::App
|
27
|
-
def settings
|
28
|
-
%s
|
10
|
+
def class_name
|
11
|
+
name.split('_').collect(&:capitalize).join
|
29
12
|
end
|
30
13
|
|
31
|
-
def
|
32
|
-
|
14
|
+
def sketch_title
|
15
|
+
human = name.split('_').collect(&:capitalize).join(' ')
|
16
|
+
format("sketch_title '%s'", human)
|
33
17
|
end
|
34
18
|
|
35
|
-
def
|
19
|
+
def sketch_size
|
20
|
+
mode = args.length == 3 ? format(', %s', args[2].upcase) : ''
|
21
|
+
return 'size 200, 200' if args.empty?
|
22
|
+
format('size %d, %d%s', args[0].to_i, args[1].to_i, mode)
|
36
23
|
end
|
37
24
|
end
|
38
25
|
|
39
|
-
|
40
|
-
|
41
|
-
METHOD = <<-CODE
|
42
|
-
def %s
|
43
|
-
%s
|
44
|
-
end
|
45
|
-
|
46
|
-
CODE
|
47
|
-
|
48
|
-
require_relative '../helpers/string_extra'
|
49
|
-
|
50
|
-
# Sketch writer class
|
26
|
+
# The file writer can write a sketch when given instance of Sketch type
|
51
27
|
class SketchWriter
|
52
|
-
attr_reader :file, :
|
28
|
+
attr_reader :file, :param
|
53
29
|
|
54
30
|
def initialize(path, args)
|
55
|
-
@
|
56
|
-
@
|
57
|
-
underscore = StringExtra.new(path).underscore
|
58
|
-
@file = format('%s/%s.rb', File.dirname(path), underscore)
|
59
|
-
end
|
60
|
-
|
61
|
-
def create!(type)
|
62
|
-
case type
|
63
|
-
when /bare/
|
64
|
-
@sketch = Sketch.new.bare(name, args)
|
65
|
-
when /class/
|
66
|
-
@sketch = Sketch.new.class_wrapped(name, args)
|
67
|
-
when /emacs/
|
68
|
-
@sketch = Sketch.new.emacs(name, args)
|
69
|
-
end
|
70
|
-
save(sketch)
|
31
|
+
@param = SketchParameters.new(name: path, args: args)
|
32
|
+
@file = format('%s/%s.rb', File.dirname(path), path)
|
71
33
|
end
|
72
34
|
|
73
|
-
def
|
74
|
-
|
75
|
-
|
76
|
-
end
|
35
|
+
def write(creator)
|
36
|
+
sketch = creator.code(param)
|
37
|
+
File.open(file, 'w+') { |f| f.write sketch.join("\n") }
|
77
38
|
end
|
78
39
|
end
|
79
40
|
|
80
|
-
#
|
41
|
+
# Implements methods and class_methods omits blank line after draw
|
42
|
+
# uses private method_lines to format method lines
|
81
43
|
class Sketch
|
82
|
-
|
83
|
-
|
84
|
-
end
|
44
|
+
BLANK ||= ''.freeze
|
45
|
+
INDENT ||= ' '.freeze
|
85
46
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
47
|
+
def methods(param, indent)
|
48
|
+
lines = []
|
49
|
+
lines.concat method_lines('settings', param.sketch_size, indent)
|
50
|
+
lines.concat method_lines('setup', param.sketch_title, indent)
|
51
|
+
lines.concat method_lines('draw', BLANK, indent)
|
89
52
|
end
|
90
53
|
|
91
|
-
def
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
class_name,
|
96
|
-
size(args[0], args[1], args[2]),
|
97
|
-
name(name),
|
98
|
-
class_name
|
99
|
-
)
|
54
|
+
def class_methods(param)
|
55
|
+
lines = [format('class %s < Processing::App', param.class_name)]
|
56
|
+
lines.concat methods(param, INDENT)
|
57
|
+
lines << 'end'
|
100
58
|
end
|
101
59
|
|
102
|
-
|
103
|
-
return format('size %s, %s', width, height) if mode.nil?
|
104
|
-
format('size %s, %s, %s', width, height, mode.upcase)
|
105
|
-
end
|
60
|
+
private
|
106
61
|
|
107
|
-
def
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
) if args.length == 2
|
114
|
-
format(METHOD, 'settings', size(args[0], args[1], args[2]))
|
62
|
+
def method_lines(name, content, indent)
|
63
|
+
one = format('%sdef %s', indent, name)
|
64
|
+
two = content.empty? ? BLANK : format(' %s%s', indent, content)
|
65
|
+
three = format('%send', indent)
|
66
|
+
return [one, two, three] if /draw/ =~ name
|
67
|
+
[one, two, three, BLANK]
|
115
68
|
end
|
69
|
+
end
|
116
70
|
|
117
|
-
|
118
|
-
|
71
|
+
# The sketch class creates an array of formatted sketch lines
|
72
|
+
class BareSketch < Sketch
|
73
|
+
def code(param)
|
74
|
+
methods(param, BLANK)
|
119
75
|
end
|
76
|
+
end
|
120
77
|
|
121
|
-
|
122
|
-
|
78
|
+
# A simple class wrapped sketch
|
79
|
+
class ClassSketch < Sketch
|
80
|
+
def code(param)
|
81
|
+
lines = ['# frozen_string_literal: false', BLANK]
|
82
|
+
lines.concat class_methods(param)
|
123
83
|
end
|
84
|
+
end
|
124
85
|
|
125
|
-
|
126
|
-
|
86
|
+
# A sketch that will run with jruby, for emacs etc
|
87
|
+
class EmacsSketch < Sketch
|
88
|
+
def code(param)
|
89
|
+
lines = [
|
90
|
+
'# frozen_string_literal: false',
|
91
|
+
"require 'jruby_art'",
|
92
|
+
"require 'jruby_art/app'",
|
93
|
+
BLANK,
|
94
|
+
'Processing::App::SKETCH_PATH = __FILE__.freeze',
|
95
|
+
BLANK
|
96
|
+
]
|
97
|
+
lines.concat class_methods(param)
|
98
|
+
lines << BLANK
|
99
|
+
lines << format('%s.new unless defined? $app', param.class_name)
|
127
100
|
end
|
128
101
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: false
|
3
2
|
# processing module wrapper
|
4
3
|
require_relative '../rpextras'
|
@@ -22,15 +21,17 @@ module Processing
|
|
22
21
|
def kamera(
|
23
22
|
eye: Vec3D.new(width / 2.0, height / 2.0, (height / 2.0) / tan(PI * 30.0 / 180.0)),
|
24
23
|
center: Vec3D.new(width / 2.0, height / 2.0, 0),
|
25
|
-
up: Vec3D.new(0, 1.0, 0)
|
24
|
+
up: Vec3D.new(0, 1.0, 0)
|
25
|
+
)
|
26
26
|
camera(eye.x, eye.y, eye.z, center.x, center.y, center.z, up.x, up.y, up.z)
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def perspektiv(
|
30
30
|
fov: Math::PI / 3.0,
|
31
31
|
aspect_ratio: width.to_f / height,
|
32
32
|
near_z: (height / 20.0) / tan(fov / 2.0),
|
33
|
-
far_z: (height * 5) / tan(fov / 2.0)
|
33
|
+
far_z: (height * 5) / tan(fov / 2.0)
|
34
|
+
)
|
34
35
|
perspective(fov, aspect_ratio, near_z, far_z)
|
35
36
|
end
|
36
37
|
|
@@ -49,7 +50,7 @@ module Processing
|
|
49
50
|
def lerp_color(*args)
|
50
51
|
args.length > 3 ? self.class.lerp_color(*args) : super(*args)
|
51
52
|
end
|
52
|
-
|
53
|
+
|
53
54
|
# hue, sat, brightness in range 0..1.0 returns RGB color int
|
54
55
|
def hsb_color(hue, sat, brightness)
|
55
56
|
Java::Monkstone::ColorUtil.hsbToRgB(hue, sat, brightness)
|
@@ -59,14 +60,14 @@ module Processing
|
|
59
60
|
return super(*args) unless args.length == 1
|
60
61
|
super(hex_color(args[0]))
|
61
62
|
end
|
62
|
-
|
63
|
+
|
63
64
|
def web_to_color_array(web)
|
64
65
|
Java::Monkstone::ColorUtil.webArray(web)
|
65
66
|
end
|
66
|
-
|
67
|
+
|
67
68
|
def int_to_ruby_colors(hex)
|
68
69
|
Java::Monkstone::ColorUtil.rubyString(hex)
|
69
|
-
end
|
70
|
+
end
|
70
71
|
|
71
72
|
# Overrides Processing convenience function thread, which takes a String
|
72
73
|
# arg (for a function) to more rubylike version, takes a block...
|
@@ -74,7 +75,7 @@ module Processing
|
|
74
75
|
if block_given?
|
75
76
|
Thread.new(&block)
|
76
77
|
else
|
77
|
-
|
78
|
+
raise ArgumentError, 'thread must be called with a block', caller
|
78
79
|
end
|
79
80
|
end
|
80
81
|
|
@@ -100,7 +101,7 @@ module Processing
|
|
100
101
|
when 6
|
101
102
|
return dist3d(*args)
|
102
103
|
else
|
103
|
-
|
104
|
+
raise ArgumentError, 'takes 4 or 6 parameters'
|
104
105
|
end
|
105
106
|
end
|
106
107
|
|
@@ -112,7 +113,7 @@ module Processing
|
|
112
113
|
# There's just so many functions in Processing,
|
113
114
|
# Here's a convenient way to look for them.
|
114
115
|
def find_method(method_name)
|
115
|
-
reg = Regexp.new(
|
116
|
+
reg = Regexp.new(method_name.to_s, true)
|
116
117
|
methods.sort.select { |meth| reg.match(meth) }
|
117
118
|
end
|
118
119
|
|
@@ -120,7 +121,7 @@ module Processing
|
|
120
121
|
# some methods. Add to this list as needed.
|
121
122
|
def proxy_java_fields
|
122
123
|
fields = %w(key frameRate mousePressed keyPressed)
|
123
|
-
methods
|
124
|
+
methods = fields.map { |field| java_class.declared_field(field) }
|
124
125
|
@declared_fields = Hash[fields.zip(methods)]
|
125
126
|
end
|
126
127
|
|
@@ -190,11 +191,11 @@ module Processing
|
|
190
191
|
Java::Monkstone::ColorUtil.colorLong(a)
|
191
192
|
when STRING_COL
|
192
193
|
return Java::Monkstone::ColorUtil.colorString(a) if a =~ /#\h+/
|
193
|
-
|
194
|
+
raise StandardError, 'Dodgy Hexstring'
|
194
195
|
when FLOAT_COL
|
195
196
|
Java::Monkstone::ColorUtil.colorDouble(a)
|
196
197
|
else
|
197
|
-
|
198
|
+
raise StandardError, 'Dodgy Color Conversion'
|
198
199
|
end
|
199
200
|
end
|
200
201
|
|
data/lib/jruby_art/installer.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
require 'yaml'
|
3
3
|
|
4
|
-
VERSION = '3.
|
4
|
+
VERSION = '3.2.1'.freeze # processing version
|
5
5
|
|
6
6
|
# Abstract Installer class
|
7
7
|
class Installer
|
@@ -49,6 +49,7 @@ class Installer
|
|
49
49
|
# Display the current version of JRubyArt.
|
50
50
|
def show_version
|
51
51
|
puts format('JRubyArt version %s', JRubyArt::VERSION)
|
52
|
+
puts format('Expected Processing version %s', VERSION)
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
@@ -2,7 +2,8 @@
|
|
2
2
|
# frozen_string_literal: false
|
3
3
|
|
4
4
|
require_relative '../jruby_art'
|
5
|
-
require_relative '
|
5
|
+
require_relative 'config'
|
6
|
+
# require_relative 'sketchbook'
|
6
7
|
# The processing wrapper module
|
7
8
|
module Processing
|
8
9
|
# Encapsulate library loader functionality as a class
|
@@ -10,7 +11,7 @@ module Processing
|
|
10
11
|
attr_reader :sketchbook_library_path
|
11
12
|
|
12
13
|
def initialize
|
13
|
-
@sketchbook_library_path = File.join(
|
14
|
+
@sketchbook_library_path = File.join(Processing::RP_CONFIG['sketchbook_path'], 'libraries')
|
14
15
|
@loaded_libraries = Hash.new(false)
|
15
16
|
end
|
16
17
|
|
data/lib/jruby_art/runner.rb
CHANGED
@@ -107,7 +107,10 @@ module Processing
|
|
107
107
|
def create
|
108
108
|
require_relative '../jruby_art/creators/sketch_writer'
|
109
109
|
config = Processing::RP_CONFIG.fetch('template', 'bare')
|
110
|
-
|
110
|
+
sketch = BareSketch.new if /bare/ =~ config
|
111
|
+
sketch = ClassSketch.new if /class/ =~ config
|
112
|
+
sketch = EmacsSketch.new if /emacs/ =~ config
|
113
|
+
SketchWriter.new(File.basename(filename, '.rb'), argc).write(sketch)
|
111
114
|
end
|
112
115
|
|
113
116
|
# Export as app not implemented
|
@@ -10,13 +10,13 @@ require_relative '../app'
|
|
10
10
|
# More processing module
|
11
11
|
module Processing
|
12
12
|
# For use with "bare" sketches that don't want to define a class or methods
|
13
|
-
BARE_WRAP =
|
13
|
+
BARE_WRAP = <<~EOS
|
14
14
|
class Sketch < Processing::App
|
15
15
|
%s
|
16
16
|
end
|
17
17
|
EOS
|
18
18
|
|
19
|
-
NAKED_WRAP =
|
19
|
+
NAKED_WRAP = <<~EOS
|
20
20
|
class Sketch < Processing::App
|
21
21
|
def setup
|
22
22
|
sketch_title 'Nude Sketch'
|
@@ -30,7 +30,7 @@ module Processing
|
|
30
30
|
# Kicks off a thread to watch the sketch, reloading JRubyArt
|
31
31
|
# and restarting the sketch whenever it changes.
|
32
32
|
def start_watching
|
33
|
-
|
33
|
+
start_original
|
34
34
|
Kernel.loop do
|
35
35
|
if @files.find { |file| FileTest.exist?(file) && File.stat(file).mtime > @time }
|
36
36
|
puts 'reloading sketch...'
|
@@ -54,10 +54,8 @@ module Processing
|
|
54
54
|
warn format(wformat, File.basename(SKETCH_PATH))
|
55
55
|
puts format(tformat, e.backtrace.join("\n\t"))
|
56
56
|
end
|
57
|
-
|
58
|
-
def
|
59
|
-
@runner.kill if @runner && @runner.alive?
|
60
|
-
@runner = nil
|
57
|
+
|
58
|
+
def start_original
|
61
59
|
@runner = Thread.start do
|
62
60
|
report_errors do
|
63
61
|
Processing.load_and_run_sketch
|
@@ -65,6 +63,13 @@ module Processing
|
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
66
|
+
def start_runner
|
67
|
+
@runner.kill if @runner && @runner.alive?
|
68
|
+
@runner.join
|
69
|
+
@runner = nil
|
70
|
+
start_original
|
71
|
+
end
|
72
|
+
|
68
73
|
def reload_files_to_watch
|
69
74
|
@files = Dir.glob(File.join(SKETCH_ROOT, '**/*.{rb,glsl}'))
|
70
75
|
count = @files.length
|
data/lib/jruby_art/version.rb
CHANGED
data/lib/rpextras.jar
CHANGED
Binary file
|
data/vendors/Rakefile
CHANGED
@@ -8,8 +8,8 @@ WARNING = <<-EOS
|
|
8
8
|
|
9
9
|
EOS
|
10
10
|
|
11
|
-
JRUBYC_VERSION = '9.1.
|
12
|
-
EXAMPLES = '1.
|
11
|
+
JRUBYC_VERSION = '9.1.3.0'
|
12
|
+
EXAMPLES = '1.4'
|
13
13
|
HOME_DIR = ENV['HOME']
|
14
14
|
MAC_OR_LINUX = /linux|mac|darwin/ =~ RbConfig::CONFIG['host_os']
|
15
15
|
|
@@ -27,7 +27,7 @@ file "jruby-complete-#{JRUBYC_VERSION}.jar" do
|
|
27
27
|
rescue
|
28
28
|
warn(WARNING)
|
29
29
|
end
|
30
|
-
check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", "
|
30
|
+
check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", "99cae715f87b9829b44a5a7295f200fc7295114f0887b160a3cf613bf93544a0")
|
31
31
|
end
|
32
32
|
|
33
33
|
directory "../lib/ruby"
|
@@ -71,7 +71,7 @@ end
|
|
71
71
|
desc "copy examples"
|
72
72
|
task :copy_examples => file_name do
|
73
73
|
if MAC_OR_LINUX.nil?
|
74
|
-
sh "unzip #{EXAMPLES}
|
74
|
+
sh "unzip #{EXAMPLES}.zip"
|
75
75
|
else
|
76
76
|
sh "tar xzvf #{EXAMPLES}.tar.gz"
|
77
77
|
end
|
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.2.
|
4
|
+
version: 1.2.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: 2016-
|
13
|
+
date: 2016-08-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -62,7 +62,6 @@ files:
|
|
62
62
|
- lib/jruby_art/helper_methods.rb
|
63
63
|
- lib/jruby_art/helpers/aabb.rb
|
64
64
|
- lib/jruby_art/helpers/numeric.rb
|
65
|
-
- lib/jruby_art/helpers/string_extra.rb
|
66
65
|
- lib/jruby_art/installer.rb
|
67
66
|
- lib/jruby_art/java_opts.rb
|
68
67
|
- lib/jruby_art/library_loader.rb
|
@@ -71,7 +70,6 @@ files:
|
|
71
70
|
- lib/jruby_art/runners/live.rb
|
72
71
|
- lib/jruby_art/runners/run.rb
|
73
72
|
- lib/jruby_art/runners/watch.rb
|
74
|
-
- lib/jruby_art/sketchbook.rb
|
75
73
|
- lib/jruby_art/version.rb
|
76
74
|
- lib/rpextras.jar
|
77
75
|
- library/boids/boids.rb
|
@@ -82,7 +80,7 @@ files:
|
|
82
80
|
- library/slider/slider.rb
|
83
81
|
- library/video_event/video_event.rb
|
84
82
|
- vendors/Rakefile
|
85
|
-
homepage:
|
83
|
+
homepage: https://ruby-processing.github.io/JRubyArt/
|
86
84
|
licenses:
|
87
85
|
- MIT
|
88
86
|
metadata: {}
|
@@ -95,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
93
|
requirements:
|
96
94
|
- - ">="
|
97
95
|
- !ruby/object:Gem::Version
|
98
|
-
version: '2.
|
96
|
+
version: '2.3'
|
99
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
98
|
requirements:
|
101
99
|
- - ">="
|
@@ -103,8 +101,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
101
|
version: '0'
|
104
102
|
requirements:
|
105
103
|
- A decent graphics card
|
106
|
-
- java runtime >= 1.8.
|
107
|
-
- processing = 3.1
|
104
|
+
- java runtime >= 1.8.0_102+
|
105
|
+
- processing = 3.2.1+
|
108
106
|
rubyforge_project:
|
109
107
|
rubygems_version: 2.6.3
|
110
108
|
signing_key:
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: false
|
2
|
-
require 'forwardable'
|
3
|
-
# reverting to StringExtra class, from a module with String refinements
|
4
|
-
class StringExtra
|
5
|
-
extend Forwardable
|
6
|
-
def_delegators(:@str, :upcase, :capitalize, :length, :downcase, :gsub)
|
7
|
-
def initialize(str)
|
8
|
-
@str = str
|
9
|
-
end
|
10
|
-
|
11
|
-
def titleize
|
12
|
-
underscore
|
13
|
-
.gsub(/_id$/, '').tr('_', ' ').capitalize
|
14
|
-
.gsub(/\b([a-z])/) { Regexp.last_match[1].capitalize }
|
15
|
-
end
|
16
|
-
|
17
|
-
def humanize
|
18
|
-
gsub(/_id$/, '').tr('_', ' ').capitalize
|
19
|
-
end
|
20
|
-
|
21
|
-
def camelize
|
22
|
-
gsub(%r{/\/(.?)/}) { '::' + Regexp.last_match[1].upcase }
|
23
|
-
.gsub(/(^|_)(.)/) { Regexp.last_match[2].upcase }
|
24
|
-
end
|
25
|
-
|
26
|
-
def underscore
|
27
|
-
gsub(/::/, '/')
|
28
|
-
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
29
|
-
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
30
|
-
.tr('-', '_')
|
31
|
-
.downcase
|
32
|
-
end
|
33
|
-
end
|
data/lib/jruby_art/sketchbook.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: false
|
2
|
-
# Utility to find sketchbook and hence java libraries
|
3
|
-
module Sketchbook
|
4
|
-
def self.find_path
|
5
|
-
preferences_paths = []
|
6
|
-
sketchbook_paths = []
|
7
|
-
sketchbook_path = Processing::RP_CONFIG.fetch('sketchbook_path', false)
|
8
|
-
return sketchbook_path if sketchbook_path
|
9
|
-
[
|
10
|
-
"'Application Data/Processing'", 'AppData/Roaming/Processing',
|
11
|
-
'Library/Processing', 'Documents/Processing',
|
12
|
-
'.processing', 'sketchbook'
|
13
|
-
].each do |prefix|
|
14
|
-
spath = format('%s/%s', ENV['HOME'], prefix)
|
15
|
-
pref_path = format('%s/preferences.txt', spath)
|
16
|
-
preferences_paths << pref_path if FileTest.file?(pref_path)
|
17
|
-
sketchbook_paths << spath if FileTest.directory?(spath)
|
18
|
-
end
|
19
|
-
return sketchbook_paths.first if preferences_paths.empty?
|
20
|
-
lines = IO.readlines(preferences_paths.first)
|
21
|
-
matchedline = lines.grep(/^sketchbook/).first
|
22
|
-
matchedline[/=(.+)/].delete('=')
|
23
|
-
end
|
24
|
-
end
|