propane 2.0.1-java → 2.0.2-java

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: 71d0f803d7bb67facbb6118f910b7803f29ec306
4
- data.tar.gz: 1e3c9e530b82d6cda1764f35a45135ba81e65e4f
3
+ metadata.gz: 9f847eb7d415cbd0c0ee989ebf5c5da70a68de20
4
+ data.tar.gz: cddade51d46516647451f40532d18e0d351bbe2a
5
5
  SHA512:
6
- metadata.gz: cb7b0fb9079c432b03bf1daff649e15265e45e5ecf5134495677827e56953b381b2c8605969018036ebbe1299739556a8f83916115a9811f12d6c7c794de9ab1
7
- data.tar.gz: 6c22a4b82b8b8c4eb0cce960540927c8f928ebdda9f77a2c7afdb6500bb040e909d773c378ef2d5aab4aa459df2c053a22df077eedda557ac6f9196359981703
6
+ metadata.gz: 9445e29c40600d55147c13434f253b517791d9ffd7dba8cdabca8b2ccb81128b4915cf773daf7fca3763104aec9c40d483ed280fa12d6d406ef7f7d018970f60
7
+ data.tar.gz: 583bceb0eeeacdbf4e1b1d3cbdb18bde2fe5b08c3b67f7c7e5917bd626618d7a46c1606ee6ebecd299d78726052cb2949de9d908fc2d30a9b8fd3e18e74e3e4b
@@ -1,4 +1,6 @@
1
- **v2.0.0** Refactored to work with processing-3.0, `--install samples` and/or vanilla processing `sound` and `video` libraries
1
+ **v2.0.2** Using processing-3.2 core from local maven repository, refactored sketch creator
2
+
3
+ **v2.0.1** Refactored to work with processing-3.0, `--install samples` and/or vanilla processing `sound` and `video` libraries
2
4
 
3
5
  **v0.9.0** Implements `data_path` in ruby, you should use this method to return the absolute path to the `data` folder (read and write). Prefer JRubyArt methods, in the main.
4
6
 
data/README.md CHANGED
@@ -56,7 +56,7 @@ propane -c my_sketch 200 200 p2d # for opengl 2D renderer
56
56
  propane -c my_sketch 200 200 p3d # for opengl 3D renderer
57
57
  ```
58
58
 
59
- To run sketches
59
+ To run sketches (works just fine from atom editor)
60
60
 
61
61
  ```bash
62
62
  jruby -S propane --run my_sketch.rb # belt and braces version
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ def create_manifest
7
7
  File.open('MANIFEST.MF', 'w') do |f|
8
8
  f.puts(title)
9
9
  f.puts(version)
10
- f.puts('Class-Path: core-3.1.1.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
10
+ f.puts('Class-Path: core-3.2.0.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
11
11
  end
12
12
  end
13
13
 
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: false
2
+ # the sketch class
3
+ class SketchClass
4
+ attr_reader :name, :width, :height, :mode
5
+
6
+ def initialize(name:, width: 150, height: 150, mode: nil)
7
+ @name, @width, @height, @mode = name, width, height, mode
8
+ end
9
+
10
+ def class_sketch
11
+ format('class %s < Propane::App', sketch_class)
12
+ end
13
+
14
+ def sketch_class
15
+ name.split('_').collect(&:capitalize).join
16
+ end
17
+
18
+ def sketch_new
19
+ format('%s.new', sketch_class)
20
+ end
21
+
22
+ def indent(line)
23
+ format(' %s', line)
24
+ end
25
+
26
+ def size
27
+ return format(' size %d, %d', width.to_i, height.to_i) if mode.nil?
28
+ format(' size %d, %d, %s', width.to_i, height.to_i, mode.upcase)
29
+ end
30
+
31
+ def sketch_title
32
+ human = name.split('_').collect(&:capitalize).join(' ')
33
+ format(" sketch_title '%s'", human)
34
+ end
35
+
36
+ def method_lines(name, content = '')
37
+ return [format(' def %s', name), content, ' end'] if content.empty?
38
+ [format(' def %s', name), content, ' end', '']
39
+ end
40
+
41
+ def lines
42
+ lines = [
43
+ '# frozen_string_literal: false',
44
+ "require 'propane'",
45
+ '',
46
+ class_sketch
47
+ ]
48
+ lines.concat method_lines('settings', size)
49
+ lines.concat method_lines('setup', sketch_title)
50
+ lines.concat method_lines('draw')
51
+ lines << 'end'
52
+ lines << sketch_new
53
+ end
54
+ end
@@ -1,71 +1,21 @@
1
1
  # frozen_string_literal: false
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
8
- end
9
-
10
- def class_name
11
- name.split('_').collect(&:capitalize).join
12
- end
13
-
14
- def sketch_title
15
- human = name.split('_').collect(&:capitalize).join(' ')
16
- format("sketch_title '%s'", human)
17
- end
18
-
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)
23
- end
24
- end
2
+ require_relative 'sketch_class'
25
3
 
26
4
  # The file writer can write a sketch when given instance of Sketch type
27
5
  class SketchWriter
28
- attr_reader :file, :param
6
+ attr_reader :file, :sketch
29
7
 
30
8
  def initialize(path, args)
31
- @param = SketchParameters.new(name: path, args: args)
9
+ @sketch = SketchClass.new(
10
+ name: path,
11
+ width: args[0].to_i,
12
+ height: args[1].to_i,
13
+ mode: args[2]
14
+ )
32
15
  @file = format('%s/%s.rb', File.dirname(path), path)
33
16
  end
34
17
 
35
- def write(creator)
36
- sketch = creator.code(param)
37
- File.open(file, 'w+') { |f| f.write sketch.join("\n") }
38
- end
39
- end
40
-
41
- # A simple class wrapped sketch
42
- class ClassSketch
43
- INDENT ||= ' '
44
- def code(param)
45
- lines = [
46
- '# frozen_string_literal: false',
47
- "require 'propane'",
48
- ''
49
- ]
50
- lines << format('class %s < Propane::App', param.class_name)
51
- lines.concat method_lines('settings', param.sketch_size)
52
- lines.concat method_lines('setup', param.sketch_title)
53
- lines.concat method_lines('draw', '')
54
- lines << 'end'
55
- lines.concat new(param)
56
- end
57
-
58
- private
59
-
60
- def method_lines(name, content)
61
- one = format('%sdef %s', INDENT, name)
62
- two = content.empty? ? '' : format(' %s%s', INDENT, content)
63
- three = format('%send', INDENT)
64
- return [one, two, three] if /draw/ =~ name
65
- [one, two, three, '']
66
- end
67
-
68
- def new(param)
69
- ['', format('%s.new', param.class_name)]
18
+ def write
19
+ File.open(file, 'w+') { |f| f.write sketch.lines.join("\n") }
70
20
  end
71
21
  end
@@ -63,8 +63,7 @@ module Propane
63
63
 
64
64
  def create
65
65
  require_relative 'creators/sketch_writer'
66
- sketch = ClassSketch.new
67
- SketchWriter.new(File.basename(filename, '.rb'), argc).write(sketch)
66
+ SketchWriter.new(File.basename(filename, '.rb'), argc).write
68
67
  end
69
68
 
70
69
  def show_version
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  # frozen_string_literal: true
3
3
  module Propane
4
- VERSION = '2.0.1'.freeze
4
+ VERSION = '2.0.2'.freeze
5
5
  end
data/pom.rb CHANGED
@@ -1,17 +1,16 @@
1
1
  require 'fileutils'
2
2
  project 'rp5extras', 'https://github.com/monkstone/propane' do
3
3
  model_version '4.0.0'
4
- id 'propane:rp5extras', '2.0.1'
4
+ id 'propane:rp5extras', '2.0.2'
5
5
  packaging 'jar'
6
6
  description 'rp5extras for propane'
7
7
  organization 'ruby-processing', 'https://ruby-processing.github.io'
8
- { 'monkstone' => 'Martin Prout', 'filib' => 'Phillip Cunningham' }.each do |key, value|
8
+ { 'monkstone' => 'Martin Prout' }.each do |key, value|
9
9
  developer key do
10
10
  name value
11
11
  roles 'developer'
12
12
  end
13
13
  end
14
- license 'MIT', 'http://www.opensource.org/licenses/mit-license.php'
15
14
  license 'GPL 3', 'http://www.gnu.org/licenses/gpl-3.0-standalone.html'
16
15
  issue_management 'https://github.com/ruby-processing/propane/issues', 'Github'
17
16
 
@@ -34,7 +33,7 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
34
33
  )
35
34
 
36
35
  pom 'org.jruby:jruby:9.1.2.0'
37
- jar 'org.processing:core:3.1.1'
36
+ jar 'org.processing:core:3.2.0'
38
37
  jar 'org.processing:video:3.0.2'
39
38
  jar('org.jogamp.jogl:jogl-all:${jogl.version}')
40
39
  jar('org.jogamp.gluegen:gluegen-rt-main:${jogl.version}')
@@ -45,7 +44,7 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
45
44
  execute_goals( id: 'default-cli',
46
45
  artifactItems: [ { groupId: 'org.processing',
47
46
  artifactId: 'core',
48
- version: '3.1.1',
47
+ version: '3.2.0',
49
48
  type: 'jar',
50
49
  outputDirectory: '${propane.basedir}/lib'
51
50
  },
data/pom.xml CHANGED
@@ -11,7 +11,7 @@ DO NOT MODIFIY - GENERATED CODE
11
11
  <modelVersion>4.0.0</modelVersion>
12
12
  <groupId>propane</groupId>
13
13
  <artifactId>rp5extras</artifactId>
14
- <version>2.0.1</version>
14
+ <version>2.0.2</version>
15
15
  <name>rp5extras</name>
16
16
  <description>rp5extras for propane</description>
17
17
  <url>https://github.com/monkstone/propane</url>
@@ -20,10 +20,6 @@ DO NOT MODIFIY - GENERATED CODE
20
20
  <url>https://ruby-processing.github.io</url>
21
21
  </organization>
22
22
  <licenses>
23
- <license>
24
- <name>MIT</name>
25
- <url>http://www.opensource.org/licenses/mit-license.php</url>
26
- </license>
27
23
  <license>
28
24
  <name>GPL 3</name>
29
25
  <url>http://www.gnu.org/licenses/gpl-3.0-standalone.html</url>
@@ -37,13 +33,6 @@ DO NOT MODIFIY - GENERATED CODE
37
33
  <role>developer</role>
38
34
  </roles>
39
35
  </developer>
40
- <developer>
41
- <id>filib</id>
42
- <name>Phillip Cunningham</name>
43
- <roles>
44
- <role>developer</role>
45
- </roles>
46
- </developer>
47
36
  </developers>
48
37
  <scm>
49
38
  <connection>scm:git:git://github.com/ruby-processing/propane.git</connection>
@@ -75,7 +64,7 @@ DO NOT MODIFIY - GENERATED CODE
75
64
  <dependency>
76
65
  <groupId>org.processing</groupId>
77
66
  <artifactId>core</artifactId>
78
- <version>3.1.1</version>
67
+ <version>3.2.0</version>
79
68
  </dependency>
80
69
  <dependency>
81
70
  <groupId>org.processing</groupId>
@@ -114,7 +103,7 @@ DO NOT MODIFIY - GENERATED CODE
114
103
  <artifactItem>
115
104
  <groupId>org.processing</groupId>
116
105
  <artifactId>core</artifactId>
117
- <version>3.1.1</version>
106
+ <version>3.2.0</version>
118
107
  <type>jar</type>
119
108
  <outputDirectory>${propane.basedir}/lib</outputDirectory>
120
109
  </artifactItem>
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.homepage = 'https://ruby-processing.github.io/propane/'
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.files << 'lib/propane.jar'
17
- gem.files << 'lib/core-3.1.1.jar'
17
+ gem.files << 'lib/core-3.2.0.jar'
18
18
  gem.files << 'lib/gluegen-rt-2.3.2.jar'
19
19
  gem.files << 'lib/jogl-all-2.3.2.jar'
20
20
  gem.files << 'lib/gluegen-rt-2.3.2-natives-linux-amd64.jar'
@@ -3,7 +3,7 @@ require 'minitest/autorun'
3
3
  require 'minitest/pride'
4
4
 
5
5
 
6
- require_relative '../lib/propane/creators/sketch_writer'
6
+ require_relative '../lib/propane/creators/sketch_class'
7
7
 
8
8
  CLASS_SKETCH = <<~CODE
9
9
  # frozen_string_literal: false
@@ -11,7 +11,7 @@ require 'propane'
11
11
 
12
12
  class FredSketch < Propane::App
13
13
  def settings
14
- size 200, 200, P2D
14
+ size 200, 200
15
15
  end
16
16
 
17
17
  def setup
@@ -27,29 +27,66 @@ FredSketch.new
27
27
 
28
28
  CODE
29
29
 
30
- class SketchWriterTest < Minitest::Test
31
- ParamMethods = Struct.new(:name, :class_name, :sketch_size, :sketch_title)
30
+ BARE_SKETCH = <<~CODE
31
+ def settings
32
+ size 200, 200, P2D
33
+ end
34
+
35
+ def setup
36
+ sketch_title 'Fred Sketch'
37
+ end
38
+
39
+ def draw
40
+
41
+ end
42
+
43
+ CODE
44
+
45
+ class SketchClassTest < Minitest::Test
32
46
 
33
47
  def setup
34
- @param = ParamMethods.new(
35
- 'fred_sketch',
36
- 'FredSketch',
37
- 'size 200, 200, P2D',
38
- "sketch_title 'Fred Sketch'"
39
- )
48
+ @basic = SketchClass.new(name: 'fred_sketch', width: 200, height: 200)
49
+ @sketch = SketchClass.new(name: 'fred_sketch', width: 200, height: 200, mode: 'p2d')
50
+ end
51
+
52
+ def test_class
53
+ result = CLASS_SKETCH.split(/\n/, -1)
54
+ class_lines = @sketch.lines
55
+ class_lines.each_with_index do |line, i|
56
+ assert_equal result[i], line
57
+ end
58
+ end
59
+
60
+ def test_indent
61
+ assert_equal ' indent', @sketch.indent('indent')
40
62
  end
41
63
 
42
- def test_parameter_new
43
- param = SketchParameters.new(name: 'fred_sketch', args: %w(200 200 p2d))
44
- assert_equal 'size 200, 200, P2D', param.sketch_size
45
- assert_equal 'FredSketch', param.class_name
64
+ def test_size
65
+ assert_equal ' size 200, 200, P2D', @sketch.size
66
+ assert_equal ' size 200, 200', @basic.size
67
+ end
68
+
69
+ def test_sketch_title
70
+ assert_equal " sketch_title 'Fred Sketch'", @sketch.sketch_title
46
71
  end
47
72
 
48
73
  def test_class
74
+ assert_equal "FredSketch", @sketch.sketch_class
75
+ end
76
+
77
+ def test_class_new
78
+ assert_equal "FredSketch.new", @sketch.sketch_new
79
+ end
80
+
81
+ def test_method_lines
49
82
  result = CLASS_SKETCH.split(/\n/, -1)
50
- class_lines = ClassSketch.new.code(@param)
51
- class_lines.each_with_index do |line, i|
52
- assert_equal result[i], line
83
+ @basic.method_lines('settings', @basic.size).each_with_index do |line, i|
84
+ assert_equal result[i + 4], line
53
85
  end
54
86
  end
87
+
88
+
89
+ def test_sketch_class
90
+ assert_equal "class FredSketch < Propane::App", @basic.class_sketch
91
+ end
55
92
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: propane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: java
6
6
  authors:
7
7
  - monkstone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-15 00:00:00.000000000 Z
11
+ date: 2016-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arcball
@@ -45,7 +45,7 @@ files:
45
45
  - Rakefile
46
46
  - bin/propane
47
47
  - lib/PROCESSING_LICENSE.txt
48
- - lib/core-3.1.1.jar
48
+ - lib/core-3.2.0.jar
49
49
  - lib/export.txt
50
50
  - lib/gluegen-rt-2.3.2-natives-linux-amd64.jar
51
51
  - lib/gluegen-rt-2.3.2-natives-macosx-universal.jar
@@ -56,6 +56,7 @@ files:
56
56
  - lib/propane.jar
57
57
  - lib/propane.rb
58
58
  - lib/propane/app.rb
59
+ - lib/propane/creators/sketch_class.rb
59
60
  - lib/propane/creators/sketch_writer.rb
60
61
  - lib/propane/helper_methods.rb
61
62
  - lib/propane/helpers/numeric.rb