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
         |