processing.rb 1.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eba7a6fbc01e93d9749d39744cc09d7f864e2270
4
+ data.tar.gz: 0ff3bd1f4773ccf00c865b5842ef63a9b2d69c9e
5
+ SHA512:
6
+ metadata.gz: 47536f2d1cefad288b1970789fb962815621cf5594c622288c0c6cbd8ba40aa558f103d5f66bc34e16efe5dd4036b1526c725a6475e3daa02e4c875bc542fd29
7
+ data.tar.gz: 8e46387b9f2e219270ebda9e618615cfb287340a185c9a52b23f27e92c23e651e241175ad7c9827742bfed0fc80e5a0252dbfd633127211ea02102b12c3f2175
@@ -0,0 +1 @@
1
+ *.gem
@@ -0,0 +1,11 @@
1
+ Lint/RescueException:
2
+ Enabled: false
3
+
4
+ Metrics/AbcSize:
5
+ Max: 300
6
+
7
+ Metrics/MethodLength:
8
+ Max: 100
9
+
10
+ Metrics/ParameterLists:
11
+ Max: 10
@@ -0,0 +1,155 @@
1
+ # Change Log
2
+
3
+ ## 1.1.1
4
+ - Renamed a constant name
5
+ - Modified a error message
6
+ - Updated comments in code
7
+
8
+ ## 1.1.0
9
+ - Splited the source code into multiple files
10
+ - Changed to download Processing automatically
11
+ - Changed to start automatically when the module is required
12
+ - Renamed complete_path to sketch_path
13
+ - Added the utility script to copy the examples
14
+ - Adapted to both 32-bit and 64-bit architecture
15
+ - Changed to show an error message for downloading files
16
+ - Updated the READMEs
17
+
18
+ ## 1.0.0
19
+ - Stable release
20
+ - Modified the out messages
21
+
22
+ ## 0.9.9
23
+ - Fixed a bug with downloading JRuby without proxy
24
+ - Modified the out messages
25
+
26
+ ## 0.9.8
27
+ - Updated the READMEs
28
+ - Modified the .rubocop.yml file
29
+ - Fixed a bug with downloading JRuby via proxy
30
+
31
+ ## 0.9.7
32
+ - Changed the way to check the downloaded data
33
+ - Modified the ouput messages
34
+ - Updated the READMEs
35
+
36
+ ## 0.9.6
37
+ - Renamed the command name to processing-rb
38
+ - Modified the output messages
39
+ - Updated the READMEs
40
+
41
+ ## 0.9.5
42
+ - Updated the READMEs
43
+ - Changed the directories to search for Processing
44
+
45
+ ## 0.9.4
46
+ - Enabled to execute from Ruby
47
+ - Changed to download JRuby automatically
48
+ - Changed the way to find Processing on Windows
49
+
50
+ ## 0.9.3
51
+ - Refactored a variable name
52
+ - Renamed sketch_path to complete_path
53
+
54
+ ## 0.9.2
55
+ - Updated the license text
56
+ - Fixed the SketchBase#frame_rate method
57
+
58
+ ## 0.9.1
59
+ - Changed the link to download in README
60
+ - Renamed examples/assets to examples/data
61
+ - Refined the READMEs
62
+ - Removed unnecessary comments
63
+
64
+ ## 0.9.0
65
+ - Added README in Japanese
66
+ - Resized the screenshots of the examples
67
+ - Updated README in English
68
+ - Refined comments
69
+
70
+ ## 0.8.0
71
+ - Updated the example #5
72
+ - Refined the example #3
73
+ - Added screenshots of the examples
74
+
75
+ ## 0.7.0
76
+ - Changed to run with JRuby explicitly
77
+ - Modified the example #3
78
+ - Updated the examples #4
79
+ - Refined comments in the examples
80
+
81
+ ## 0.6.0
82
+ - Added an argument to the import_package method
83
+ - Included the Handy library for the example #5
84
+ - Added the sketch_path method
85
+ - Added movie materials for the example #4
86
+
87
+ ## 0.5.0
88
+ - Changed the directory structure of the examples
89
+ - Renamed load_all_jars to load_jars
90
+ - Renamed import_all_classes to import_package
91
+ - Updated the example #3
92
+ - Fixed the way to set the initial window status
93
+
94
+ ## 0.4.0
95
+ - Refactored the example #1
96
+ - Implemented the example #2
97
+ - Renamed load_jar_files to loar_all_jars
98
+ - Added the import_all_classes method
99
+
100
+ ## 0.3.0
101
+ - Simplified the example #1
102
+ - Changed to include all of the Processing classes in the module
103
+ - Enabled to call a class methods as an instance method
104
+
105
+ ## 0.2.0
106
+ - Changed the example #1
107
+ - Added the .rubocop.yml file
108
+ - Renamed start_sketch to start
109
+ - Added options to the start method
110
+
111
+ ## 0.1.1
112
+ - Refactored the code
113
+ - Added a library search path for Linux
114
+ - Started implementing the example #1
115
+
116
+ ## 0.1.0
117
+ - Changed the way to undefine the Sketch class
118
+ - Fixed the frame_rate method
119
+ - Refactored the way to restore the environment
120
+ - Changed to wrap the whole code in the Processing module
121
+ - Added the descriptions to all of the methods
122
+
123
+ ## 0.0.7
124
+ - Refactored the way to adapt to the virtual methods
125
+ - Refactored the way to execute and watch the sketch
126
+ - Wrote the README.md a little
127
+
128
+ ## 0.0.6
129
+ - Wrapped the overloaded fields
130
+ - Fixed to adapt to the virtual methods in Processing
131
+
132
+ ## 0.0.5
133
+ - Added PROCESSING_ROOT check for libraries
134
+ - Added a requirement to the gemspec file
135
+ - Changed to call jruby when called from ruby
136
+ - Fixed to the library load paths in Windows
137
+
138
+ ## 0.0.4
139
+ - Renamed a constant variable
140
+ - Added a shebang to the main script
141
+ - Changed to use JRuby directly instead of Ruby
142
+ - Changed the way to find Processing libraries
143
+ - Added error messages
144
+
145
+ ## 0.0.3
146
+ - Fixed to set __FILE__ in the sketch
147
+ - Removed an unnecessary extension in .gitignore
148
+
149
+ ## 0.0.2
150
+ - Added a command existence check
151
+ - Adapted the load path to the directory of the sketch
152
+ - Fixed to catch all of the errors in the sketch
153
+
154
+ ## 0.0.1
155
+ - Initial release
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Takashi Kitao
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,199 @@
1
+ # Processing.rb
2
+
3
+ [ [English](https://github.com/kitao/processing.rb/blob/master/README.md) | [Japanese](https://github.com/kitao/processing.rb/blob/master/README.ja.md) ]
4
+
5
+ Processing.rbはRubyで気軽にProcessingのスケッチを作成できるツールです。
6
+
7
+ ## 特長
8
+
9
+ 他の類似ツールと比べて、Processing.rbには次のような特長があります。
10
+
11
+ - 設定ファイル不要で、Rubyのコードにモジュールを1つ追加するだけで使えます。
12
+ - スケッチ更新時に自動で再起動し、requireしたモジュールも再ロードします。
13
+ - 本家のProcessing同様、1〜2行のコード追加で簡単に拡張ライブラリが使えます。
14
+ - ウィンドウ位置の指定や最前面表示など、ライブコーディングに便利な機能があります。
15
+
16
+ ## 動作画面
17
+
18
+ サンプルの動作画面です。画像をクリックすると実際のコードが確認できます。
19
+
20
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/01_simple_sketch.rb" target="_blank">
21
+ <img
22
+ src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/01_simple_sketch.png" width="30%">
23
+ </a>
24
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/02_input_handling.rb" target="_blank">
25
+ <img
26
+ src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/02_input_handling.png" width="30%">
27
+ </a>
28
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/03_multi_file.rb" target="_blank">
29
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/03_multi_file.png" width="30%">
30
+ </a>
31
+
32
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/04_builtin_library.rb" target="_blank">
33
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/04_builtin_library.png" width="30%">
34
+ </a>
35
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/05_external_library.rb" target="_blank">
36
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/05_external_library.png" width="30%">
37
+ </a>
38
+
39
+ ## インストール方法
40
+
41
+ ### 事前準備
42
+
43
+ Processing.rbを使うには、RubyとJavaのインストールが必要です。各ツールは以下のサイトから入手できます。
44
+
45
+ - [Ruby](https://www.ruby-lang.org/)
46
+ - [Java](https://java.com/)
47
+
48
+ ### Processing.rbのインストール
49
+
50
+ Processing.rbはRubyの`gem`コマンドからインストールできます。
51
+
52
+ ```sh
53
+ ruby gem install processing.rb
54
+ ```
55
+
56
+ インストール時にpermissionエラーが出た場合は、`sudo`コマンドを先頭に追加してください。
57
+
58
+ また、オフィスなどのプロキシ環境でインストールする場合は、上記コマンドの後ろに、`-p http://proxy.hostname:port`のように[-p オプション](http://guides.rubygems.org/command-reference/#gem-install)でプロキシ設定を追加してください。
59
+
60
+ インストール完了後、次のコマンドを実行すると、Processing.rbのサンプルが`~/processingrb_examples`ディレクトリにコピーされます。
61
+
62
+ ```sh
63
+ setup_processingrb_examples
64
+ ```
65
+
66
+ ## 使い方
67
+
68
+ ### スケッチを作成する
69
+
70
+ Processing.rbでは、`Processing::SketchBase`クラスの派生クラスとしてスケッチを作成し、`Processing.#start`関数で描画を開始します。
71
+
72
+ ```ruby
73
+ require 'processing'
74
+
75
+ class Sketch < Processing::SketchBase
76
+ def setup
77
+ # implement your own setup code
78
+ end
79
+
80
+ def draw
81
+ # implement your own draw code
82
+ end
83
+ end
84
+
85
+ Processing.start(Sketch.new)
86
+ ```
87
+
88
+ `Processing::SketchBase`クラスでは、`HALF_PI`などの定数はJava版のProcessingと同様に使用できます。また、関数や変数は、`noStroke`であれば`no_stroke`のように、Java版の命令を小文字([スネークケース](http://en.wikipedia.org/wiki/Snake_case))にしたものが使用できます。
89
+
90
+ 実際のスケッチの作成例は[サンプル](https://github.com/kitao/processing.rb/tree/master/examples)をご覧ください。
91
+
92
+ 作成したスケッチファイルは通常のRubyコードと同じ方法で起動できます。
93
+
94
+ ```sh
95
+ ruby [sketchfile]
96
+ ```
97
+
98
+ なお、初回起動時のみ、`~/.processing.rb`ディレクトリにJRubyとProcessingのダウンロードが行われます。その際、ダウンロードのためのプロキシ設定を聞かれるので、必要な場合は入力を、不必要な場合は何も入力せずEnterを押してしばらくお待ちください。
99
+
100
+ 起動後は、同じディレクトリ以下にある`.rb`ファイルが更新されるたびに、スケッチファイルが自動で再読み込みされます。
101
+
102
+ ### 入力情報を取得する
103
+
104
+ キーボードやマウスの入力情報は、Java版のProcessingと同様の方法で取得できます。
105
+
106
+ ただし、Java版の`keyPressed`、`mousePressed`変数は、メソッド名の重複を避けるため、それぞれ`key_pressed?`、`mouse_pressed?`という名前に変更されているのでご注意ください。
107
+
108
+ ```ruby
109
+ def draw
110
+ if mouse_pressed?
111
+ ellipse(mouse_x, mouse_y, 10, 10)
112
+ end
113
+ end
114
+
115
+ def key_pressed
116
+ Processing.reload if key == 'r'
117
+ end
118
+ ```
119
+
120
+ この例では、マウスボタンが押されると円を描き、キーボードの`R`が押されるとスケッチを再起動します。
121
+
122
+ ### 拡張ライブラリを使用する
123
+
124
+ Processing向けの拡張ライブラリは、Processing.rbでもそのまま使用できます。
125
+
126
+ 例えば、次のようなVideoライブラリを使用するコードの場合、
127
+
128
+ ```java
129
+ import processing.video.*;
130
+ Movie movie;
131
+
132
+ void setup() {
133
+ movie = new Movie(this, "sample.mov");
134
+ movie.loop();
135
+ }
136
+ ```
137
+
138
+ Processing.rbでは以下のようになります。
139
+
140
+ ```ruby
141
+ Processing.load_library 'video'
142
+ Processing.import_package 'processing.video', 'Video'
143
+
144
+ class Sketch < Processing::SketchBase
145
+ def setup
146
+ @movie = Video::Movie.new(self, Processing.sketch_path('sample.mov'))
147
+ @movie.loop
148
+ end
149
+ ```
150
+
151
+ Javaのライブラリへのファイルの指定は、絶対パスで行う必要があるため、この例では`Processing.#sketch_path`関数を使用して、スケッチファイルからの相対パスを絶対パスに変換しています。
152
+
153
+ Processingに標準で付属しない拡張ライブラリを使用する場合は、スケッチファイルと同じディレクトリに`libraries`ディレクトリを作成して、そこに使用するライブラリを置いてください。
154
+
155
+ ### ライブコーディングする
156
+
157
+ `Processing.#start`関数にオプションを指定すると、エディタとスケッチのウィンドウを同時に見やすく表示できます。結果を確認しながらコード編集を行う際に便利です。
158
+
159
+ ```ruby
160
+ Processing.start(Sketch.new, topmost: true, pos: [300, 300])
161
+ ```
162
+
163
+ `Processing.#start`関数に指定できるオプションは以下のとおりです。
164
+
165
+ |オプション|説明|
166
+ |----|----|
167
+ |topmost:|`true`にするとウィンドウを常に最前面に表示する|
168
+ |pos:|`[x, y]`で指定した座標にウィンドウを表示する|
169
+
170
+ ## APIリファレンス
171
+
172
+ ### Processingモジュール
173
+
174
+ `Processing`モジュールはスケッチのためのクラスやメソッドを提供します。
175
+
176
+ |定数|説明|
177
+ |----|----|
178
+ |SKETCH_FILE|起動時に指定されたスケッチファイルの絶対パス|
179
+ |SKETCH_NAME|ディレクトリ名を除いたスケッチファイル名|
180
+ |SKETCH_DIR|スケッチファイルの絶対パスでのディレクトリ名|
181
+
182
+ |クラス|説明|
183
+ |----|----|
184
+ |SketchBase|スケッチの基底クラス|
185
+
186
+ |特異メソッド|説明|
187
+ |----|----|
188
+ |load_library(name)|指定した拡張ライブラリを読み込む|
189
+ |load_jars(dir)|指定したディレクトリのすべての`.jar`ファイルを読み込む|
190
+ |import_package(package, module_name)|`module_name`モジュールに、指定したJavaパッケージのすべてのクラスを登録する|
191
+ |sketch_path(path)|スケッチファイルからの相対パスを絶対パスに変換する|
192
+ |start(sketch, topmost: false, pos: nil)|指定したスケッチインスタンスの描画を開始する|
193
+ |reload|スケッチファイルを読み込み直し、再起動する|
194
+
195
+ ## ライセンス
196
+
197
+ Processing.rbは[MITライセンス](http://en.wikipedia.org/wiki/MIT_License)です。無料で自由にご利用ください。
198
+
199
+ Have fun!
@@ -0,0 +1,199 @@
1
+ # Processing.rb
2
+
3
+ [ [English](https://github.com/kitao/processing.rb/blob/master/README.md) | [Japanese](https://github.com/kitao/processing.rb/blob/master/README.ja.md) ]
4
+
5
+ Processing.rb enables you to write various Processing sketches in Ruby easily.
6
+
7
+ ## Features
8
+
9
+ Compared to similar tools, Processing.rb has the following features:
10
+
11
+ - Requires no configuration file and available with just adding a module to your Ruby code
12
+ - Reloads the sketch file and loaded modules automatically when the related files are updated
13
+ - Available to use extension libraries for Processing with just adding a few line code in the same way as Processing
14
+ - Provides useful functions for live coding, such as setting the window position and showing it in the topmost
15
+
16
+ ## Screenshots
17
+
18
+ The following are screenshots of the examples of Processing.rb. Click each image to view the source code.
19
+
20
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/01_simple_sketch.rb" target="_blank">
21
+ <img
22
+ src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/01_simple_sketch.png" width="30%">
23
+ </a>
24
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/02_input_handling.rb" target="_blank">
25
+ <img
26
+ src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/02_input_handling.png" width="30%">
27
+ </a>
28
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/03_multi_file.rb" target="_blank">
29
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/03_multi_file.png" width="30%">
30
+ </a>
31
+
32
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/04_builtin_library.rb" target="_blank">
33
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/04_builtin_library.png" width="30%">
34
+ </a>
35
+ <a href="https://github.com/kitao/processing.rb/blob/master/examples/05_external_library.rb" target="_blank">
36
+ <img src="https://raw.githubusercontent.com/kitao/processing.rb/master/examples/screenshots/05_external_library.png" width="30%">
37
+ </a>
38
+
39
+ ## How to Install
40
+
41
+ ### Preparations
42
+
43
+ In order to use Processing.rb, installation of Ruby and Java is required. Each tool can be obtained from the following sites:
44
+
45
+ - [Ruby](https://www.ruby-lang.org/)
46
+ - [Java](https://java.com/)
47
+
48
+ ### Installing Processing.rb
49
+
50
+ Processing.rb can be installed with the `gem` command of Ruby.
51
+
52
+ ```sh
53
+ gem install processing.rb
54
+ ```
55
+
56
+ If a permission error occured while installation, please add the `sudo` command at the head of the above command.
57
+
58
+ In a proxy environment such as in an office, please add a proxy configuration as [-p option](http://guides.rubygems.org/command-reference/#gem-install) at the end of the above command, such as `-p http://proxy.hostname:port`.
59
+
60
+ After installation, the examples of Processing.rb can be copied to the `~/processingrb_examples` directory with the following command:
61
+
62
+ ```sh
63
+ setup_processingrb_examples
64
+ ```
65
+
66
+ ## How to Use
67
+
68
+ ### Creating a sketch
69
+
70
+ In Processing.rb, a sketch is created as a derived class from the `Processing::SketchBase` class. And it starts rendering by calling the `Processing.#start` function.
71
+
72
+ ```ruby
73
+ require 'processing'
74
+
75
+ class Sketch < Processing::SketchBase
76
+ def setup
77
+ # implement your own setup code
78
+ end
79
+
80
+ def draw
81
+ # implement your own draw code
82
+ end
83
+ end
84
+
85
+ Processing.start(Sketch.new)
86
+ ```
87
+
88
+ In the `Processing::SketchBase` class, the constants of Processing in Java such as `HALF_PI` can be used as the same name. Regarding the functions and variables of Processing, their names are [snake-cased](http://en.wikipedia.org/wiki/Snake_case). For example, `no_stroke` in the case of `noStroke` in Java.
89
+
90
+ Please check the actual code in [the examples](https://github.com/kitao/processing.rb/tree/master/examples).
91
+
92
+ A sketch file can be run in the same way as a usual Ruby code.
93
+
94
+ ```sh
95
+ ruby [sketchfile]
96
+ ```
97
+
98
+ Only for the first time, JRuby and Processing will be downloaded to the `~/.processing.rb` directory. The proxy setting to download will be asked at that moment. Please input it or just press `Enter` without any input if not necessary, and wait for a while.
99
+
100
+ While the sketch file is running, it will be reloaded automatically when the `.rb` files in the same directory are updated.
101
+
102
+ ### Handling input data
103
+
104
+ The information of the keyboard and mouse can be obtained in the same way as Processing in Java.
105
+
106
+ But please note that the `keyPressed` and `mousePressed` methods in Java are renamed to `key_pressed?` and `mouse_pressed?` to avoid duplication of the method names.
107
+
108
+ ```ruby
109
+ def draw
110
+ if mouse_pressed?
111
+ ellipse(mouse_x, mouse_y, 10, 10)
112
+ end
113
+ end
114
+
115
+ def key_pressed
116
+ Processing.reload if key == 'r'
117
+ end
118
+ ```
119
+
120
+ This example draws circles when the mouse button is pressed, and restarts the sketch when the `R` key is pressed.
121
+
122
+ ### Using an extension library
123
+
124
+ An extension library for Processing can be used in Processing.rb in the same way as Processing in Java.
125
+
126
+ For example, in the case of the sketch uses the video extension library like this:
127
+
128
+ ```java
129
+ import processing.video.*;
130
+ Movie movie;
131
+
132
+ void setup() {
133
+ movie = new Movie(this, "sample.mov");
134
+ movie.loop();
135
+ }
136
+ ```
137
+
138
+ In Processing.rb, it goes as follow:
139
+
140
+ ```ruby
141
+ Processing.load_library 'video'
142
+ Processing.import_package 'processing.video', 'Video'
143
+
144
+ class Sketch < Processing::SketchBase
145
+ def setup
146
+ @movie = Video::Movie.new(self, Processing.sketch_path('sample.mov'))
147
+ @movie.loop
148
+ end
149
+ ```
150
+
151
+ When a file path for a Java library is specified in Processing.rb, it should be an absolute path. So this example uses the `Processing.#sketch_path` function to convert the relative path from the sketch directory to the absolute path.
152
+
153
+ In the case of using an extension library not bundled in Processing, please make the `libraries` directory in the same directory as the sketch file and place the library in it.
154
+
155
+ ### Live coding
156
+
157
+ With passing optional parameters to the `Processing.#start` function, the both an editor screen and a sketch window can get more visible. It helps with editing code in parallel with checking its rendering result.
158
+
159
+ ```ruby
160
+ Processing.start(Sketch.new, topmost: true, pos: [300, 300])
161
+ ```
162
+
163
+ The options of the `Processing.#start` function are as follows:
164
+
165
+ |Option|Description|
166
+ |----|----|
167
+ |topmost:|When its value is `true`, the sketch window always appears in the topmost.|
168
+ |pos:|The sketch window appears in the position `[x, y]`.|
169
+
170
+ ## API Reference
171
+
172
+ ### Processing module
173
+
174
+ The `Processing` module provides the classes and methods for a Processing sketch.
175
+
176
+ |Constant|Description|
177
+ |----|----|
178
+ |SKETCH_FILE|The path of the sketch file in the absolute path|
179
+ |SKETCH_NAME|The name of the sketch file without the directory|
180
+ |SKETCH_DIR|The directory of the sketch file in the absolute path|
181
+
182
+ |Class|Description|
183
+ |----|----|
184
+ |SketchBase|The base class of a Processing sketch|
185
+
186
+ |Method|Description|
187
+ |----|----|
188
+ |load_library(name)|Loads the specified Processing library|
189
+ |load_jars(dir)|Loads all of the `.jar` files in the specified directory|
190
+ |import_package(package, module_name)|Imports all of the classes in the specified Java package to the specified module|
191
+ |sketch_path(path)|Converts the relative path from the sketch directory to the absolute path|
192
+ |start(sketch, topmost: false, pos: nil)|Starts to render the specified sketch instance|
193
+ |reload|Reloads the sketch file manually|
194
+
195
+ ## License
196
+
197
+ Processing.rb is under [MIT license](http://en.wikipedia.org/wiki/MIT_License). Feel free to use it.
198
+
199
+ Have fun!