glimmer-dsl-swt 0.6.9 → 4.17.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +276 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +4017 -24
  5. data/VERSION +1 -1
  6. data/bin/girb +21 -0
  7. data/bin/girb_runner.rb +21 -0
  8. data/bin/glimmer +21 -0
  9. data/glimmer-dsl-swt.gemspec +187 -0
  10. data/lib/ext/glimmer.rb +21 -0
  11. data/lib/ext/glimmer/config.rb +21 -5
  12. data/lib/glimmer-dsl-swt.rb +27 -0
  13. data/lib/glimmer/Rakefile +21 -0
  14. data/lib/glimmer/data_binding/list_selection_binding.rb +21 -0
  15. data/lib/glimmer/data_binding/observable_widget.rb +21 -0
  16. data/lib/glimmer/data_binding/shine.rb +22 -1
  17. data/lib/glimmer/data_binding/table_items_binding.rb +21 -0
  18. data/lib/glimmer/data_binding/tree_items_binding.rb +21 -0
  19. data/lib/glimmer/data_binding/widget_binding.rb +21 -0
  20. data/lib/glimmer/dsl/swt/async_exec_expression.rb +21 -0
  21. data/lib/glimmer/dsl/swt/bind_expression.rb +21 -0
  22. data/lib/glimmer/dsl/swt/block_property_expression.rb +21 -0
  23. data/lib/glimmer/dsl/swt/color_expression.rb +21 -0
  24. data/lib/glimmer/dsl/swt/column_properties_expression.rb +21 -0
  25. data/lib/glimmer/dsl/swt/combo_selection_data_binding_expression.rb +21 -0
  26. data/lib/glimmer/dsl/swt/cursor_expression.rb +21 -0
  27. data/lib/glimmer/dsl/swt/custom_widget_expression.rb +20 -0
  28. data/lib/glimmer/dsl/swt/data_binding_expression.rb +21 -0
  29. data/lib/glimmer/dsl/swt/dialog_expression.rb +21 -0
  30. data/lib/glimmer/dsl/swt/display_expression.rb +21 -0
  31. data/lib/glimmer/dsl/swt/dnd_expression.rb +21 -0
  32. data/lib/glimmer/dsl/swt/dsl.rb +21 -0
  33. data/lib/glimmer/dsl/swt/exec_expression.rb +21 -0
  34. data/lib/glimmer/dsl/swt/font_expression.rb +21 -0
  35. data/lib/glimmer/dsl/swt/image_expression.rb +21 -0
  36. data/lib/glimmer/dsl/swt/layout_data_expression.rb +21 -0
  37. data/lib/glimmer/dsl/swt/layout_expression.rb +21 -0
  38. data/lib/glimmer/dsl/swt/list_selection_data_binding_expression.rb +21 -0
  39. data/lib/glimmer/dsl/swt/menu_bar_expression.rb +21 -0
  40. data/lib/glimmer/dsl/swt/menu_expression.rb +21 -0
  41. data/lib/glimmer/dsl/swt/message_box_expression.rb +21 -0
  42. data/lib/glimmer/dsl/swt/observe_expression.rb +21 -0
  43. data/lib/glimmer/dsl/swt/property_expression.rb +21 -0
  44. data/lib/glimmer/dsl/swt/rgb_expression.rb +21 -0
  45. data/lib/glimmer/dsl/swt/rgba_expression.rb +21 -0
  46. data/lib/glimmer/dsl/swt/shell_expression.rb +21 -0
  47. data/lib/glimmer/dsl/swt/swt_expression.rb +21 -0
  48. data/lib/glimmer/dsl/swt/sync_exec_expression.rb +21 -0
  49. data/lib/glimmer/dsl/swt/tab_item_expression.rb +21 -0
  50. data/lib/glimmer/dsl/swt/table_items_data_binding_expression.rb +21 -0
  51. data/lib/glimmer/dsl/swt/tree_items_data_binding_expression.rb +21 -0
  52. data/lib/glimmer/dsl/swt/tree_properties_expression.rb +21 -0
  53. data/lib/glimmer/dsl/swt/widget_expression.rb +21 -0
  54. data/lib/glimmer/dsl/swt/widget_listener_expression.rb +21 -0
  55. data/lib/glimmer/launcher.rb +34 -9
  56. data/lib/glimmer/rake_task.rb +66 -85
  57. data/lib/glimmer/rake_task/list.rb +25 -1
  58. data/lib/glimmer/rake_task/package.rb +128 -0
  59. data/lib/glimmer/rake_task/sample.rb +115 -0
  60. data/lib/glimmer/rake_task/scaffold.rb +661 -0
  61. data/lib/glimmer/swt/color_proxy.rb +21 -0
  62. data/lib/glimmer/swt/cursor_proxy.rb +21 -0
  63. data/lib/glimmer/swt/display_proxy.rb +21 -0
  64. data/lib/glimmer/swt/dnd_proxy.rb +21 -0
  65. data/lib/glimmer/swt/font_proxy.rb +21 -0
  66. data/lib/glimmer/swt/image_proxy.rb +21 -0
  67. data/lib/glimmer/swt/layout_data_proxy.rb +21 -0
  68. data/lib/glimmer/swt/layout_proxy.rb +21 -0
  69. data/lib/glimmer/swt/menu_proxy.rb +21 -0
  70. data/lib/glimmer/swt/message_box_proxy.rb +21 -0
  71. data/lib/glimmer/swt/packages.rb +21 -0
  72. data/lib/glimmer/swt/scrolled_composite_proxy.rb +21 -0
  73. data/lib/glimmer/swt/shell_proxy.rb +22 -0
  74. data/lib/glimmer/swt/style_constantizable.rb +21 -0
  75. data/lib/glimmer/swt/swt_proxy.rb +21 -0
  76. data/lib/glimmer/swt/tab_item_proxy.rb +21 -0
  77. data/lib/glimmer/swt/table_column_proxy.rb +21 -0
  78. data/lib/glimmer/swt/table_proxy.rb +21 -0
  79. data/lib/glimmer/swt/tree_proxy.rb +21 -0
  80. data/lib/glimmer/swt/widget_listener_proxy.rb +21 -0
  81. data/lib/glimmer/swt/widget_proxy.rb +24 -0
  82. data/lib/glimmer/ui/custom_shell.rb +21 -0
  83. data/lib/glimmer/ui/custom_widget.rb +29 -4
  84. data/lib/glimmer/util/proc_tracker.rb +23 -0
  85. data/samples/elaborate/contact_manager.rb +21 -0
  86. data/samples/elaborate/contact_manager/contact.rb +21 -0
  87. data/samples/elaborate/contact_manager/contact_manager_presenter.rb +21 -0
  88. data/samples/elaborate/contact_manager/contact_repository.rb +21 -0
  89. data/samples/elaborate/login.rb +20 -2
  90. data/samples/elaborate/tic_tac_toe.rb +21 -0
  91. data/samples/elaborate/tic_tac_toe/board.rb +21 -0
  92. data/samples/elaborate/tic_tac_toe/cell.rb +21 -0
  93. data/samples/elaborate/user_profile.rb +21 -0
  94. data/samples/hello/hello_browser.rb +22 -1
  95. data/samples/hello/hello_combo.rb +21 -0
  96. data/samples/hello/hello_computed.rb +21 -0
  97. data/samples/hello/hello_computed/contact.rb +21 -0
  98. data/samples/hello/hello_custom_shell.rb +134 -0
  99. data/samples/hello/hello_custom_widget.rb +65 -0
  100. data/samples/hello/hello_drag_and_drop.rb +21 -0
  101. data/samples/hello/hello_list_multi_selection.rb +21 -0
  102. data/samples/hello/hello_list_single_selection.rb +21 -0
  103. data/samples/hello/hello_menu_bar.rb +21 -0
  104. data/samples/hello/hello_message_box.rb +21 -0
  105. data/samples/hello/hello_pop_up_context_menu.rb +21 -0
  106. data/samples/hello/hello_tab.rb +21 -0
  107. data/samples/hello/hello_world.rb +21 -0
  108. data/vendor/swt/linux/swt.jar +0 -0
  109. data/vendor/swt/mac/swt.jar +0 -0
  110. data/vendor/swt/windows/swt.jar +0 -0
  111. metadata +52 -61
  112. data/lib/glimmer/package.rb +0 -91
  113. data/lib/glimmer/scaffold.rb +0 -631
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2007-2020 Andy Maleh
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
1
22
  include Glimmer
2
23
 
3
24
  shell {
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-swt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.9
4
+ version: 4.17.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-17 00:00:00.000000000 Z
11
+ date: 2020-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.10.4
18
+ version: 1.0.0
19
19
  name: glimmer
20
- type: :runtime
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.10.4
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.4.1
33
33
  name: super_module
34
- type: :runtime
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
@@ -45,8 +45,8 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.3.0
47
47
  name: nested_inherited_jruby_include_package
48
- type: :runtime
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
@@ -59,8 +59,8 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.10.1
61
61
  name: puts_debuggerer
62
- type: :runtime
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
@@ -71,15 +71,21 @@ dependencies:
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 0.2.1
74
+ version: 0.2.3
75
+ - - "<"
76
+ - !ruby/object:Gem::Version
77
+ version: 2.0.0
75
78
  name: rake-tui
76
- type: :runtime
77
79
  prerelease: false
80
+ type: :runtime
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
83
  - - ">="
81
84
  - !ruby/object:Gem::Version
82
- version: 0.2.1
85
+ version: 0.2.3
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 2.0.0
83
89
  - !ruby/object:Gem::Dependency
84
90
  requirement: !ruby/object:Gem::Requirement
85
91
  requirements:
@@ -87,33 +93,13 @@ dependencies:
87
93
  - !ruby/object:Gem::Version
88
94
  version: 1.7.0
89
95
  name: git-glimmer
90
- type: :runtime
91
96
  prerelease: false
97
+ type: :runtime
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - '='
95
101
  - !ruby/object:Gem::Version
96
102
  version: 1.7.0
97
- - !ruby/object:Gem::Dependency
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: 2.3.9
103
- - - "<"
104
- - !ruby/object:Gem::Version
105
- version: 3.0.0
106
- name: jeweler
107
- type: :runtime
108
- prerelease: false
109
- version_requirements: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 2.3.9
114
- - - "<"
115
- - !ruby/object:Gem::Version
116
- version: 3.0.0
117
103
  - !ruby/object:Gem::Dependency
118
104
  requirement: !ruby/object:Gem::Requirement
119
105
  requirements:
@@ -124,8 +110,8 @@ dependencies:
124
110
  - !ruby/object:Gem::Version
125
111
  version: 3.0.0
126
112
  name: logging
127
- type: :runtime
128
113
  prerelease: false
114
+ type: :runtime
129
115
  version_requirements: !ruby/object:Gem::Requirement
130
116
  requirements:
131
117
  - - ">="
@@ -144,8 +130,8 @@ dependencies:
144
130
  - !ruby/object:Gem::Version
145
131
  version: 2.0.0
146
132
  name: os
147
- type: :runtime
148
133
  prerelease: false
134
+ type: :runtime
149
135
  version_requirements: !ruby/object:Gem::Requirement
150
136
  requirements:
151
137
  - - ">="
@@ -164,8 +150,8 @@ dependencies:
164
150
  - !ruby/object:Gem::Version
165
151
  version: 14.0.0
166
152
  name: rake
167
- type: :runtime
168
153
  prerelease: false
154
+ type: :runtime
169
155
  version_requirements: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - ">="
@@ -179,38 +165,38 @@ dependencies:
179
165
  requirements:
180
166
  - - ">="
181
167
  - !ruby/object:Gem::Version
182
- version: 6.2.1
168
+ version: 1.2.4
183
169
  - - "<"
184
170
  - !ruby/object:Gem::Version
185
- version: 7.0.0
186
- name: rdoc
187
- type: :runtime
171
+ version: 2.0.0
172
+ name: text-table
188
173
  prerelease: false
174
+ type: :runtime
189
175
  version_requirements: !ruby/object:Gem::Requirement
190
176
  requirements:
191
177
  - - ">="
192
178
  - !ruby/object:Gem::Version
193
- version: 6.2.1
179
+ version: 1.2.4
194
180
  - - "<"
195
181
  - !ruby/object:Gem::Version
196
- version: 7.0.0
182
+ version: 2.0.0
197
183
  - !ruby/object:Gem::Dependency
198
184
  requirement: !ruby/object:Gem::Requirement
199
185
  requirements:
200
186
  - - ">="
201
187
  - !ruby/object:Gem::Version
202
- version: 1.2.4
188
+ version: 0.6.0
203
189
  - - "<"
204
190
  - !ruby/object:Gem::Version
205
191
  version: 2.0.0
206
- name: text-table
207
- type: :runtime
192
+ name: tty-markdown
208
193
  prerelease: false
194
+ type: :runtime
209
195
  version_requirements: !ruby/object:Gem::Requirement
210
196
  requirements:
211
197
  - - ">="
212
198
  - !ruby/object:Gem::Version
213
- version: 1.2.4
199
+ version: 0.6.0
214
200
  - - "<"
215
201
  - !ruby/object:Gem::Version
216
202
  version: 2.0.0
@@ -219,21 +205,21 @@ dependencies:
219
205
  requirements:
220
206
  - - ">="
221
207
  - !ruby/object:Gem::Version
222
- version: 0.7.0
208
+ version: 2.4.9
223
209
  - - "<"
224
210
  - !ruby/object:Gem::Version
225
- version: 2.0.0
226
- name: tty-markdown
227
- type: :runtime
211
+ version: 3.0.0
212
+ name: juwelier
228
213
  prerelease: false
214
+ type: :development
229
215
  version_requirements: !ruby/object:Gem::Requirement
230
216
  requirements:
231
217
  - - ">="
232
218
  - !ruby/object:Gem::Version
233
- version: 0.7.0
219
+ version: 2.4.9
234
220
  - - "<"
235
221
  - !ruby/object:Gem::Version
236
- version: 2.0.0
222
+ version: 3.0.0
237
223
  - !ruby/object:Gem::Dependency
238
224
  requirement: !ruby/object:Gem::Requirement
239
225
  requirements:
@@ -244,8 +230,8 @@ dependencies:
244
230
  - !ruby/object:Gem::Version
245
231
  version: 3.0.0
246
232
  name: warbler
247
- type: :runtime
248
233
  prerelease: false
234
+ type: :development
249
235
  version_requirements: !ruby/object:Gem::Requirement
250
236
  requirements:
251
237
  - - ">="
@@ -261,8 +247,8 @@ dependencies:
261
247
  - !ruby/object:Gem::Version
262
248
  version: 3.5.0
263
249
  name: rspec-mocks
264
- type: :development
265
250
  prerelease: false
251
+ type: :development
266
252
  version_requirements: !ruby/object:Gem::Requirement
267
253
  requirements:
268
254
  - - "~>"
@@ -275,8 +261,8 @@ dependencies:
275
261
  - !ruby/object:Gem::Version
276
262
  version: 3.5.0
277
263
  name: rspec
278
- type: :development
279
264
  prerelease: false
265
+ type: :development
280
266
  version_requirements: !ruby/object:Gem::Requirement
281
267
  requirements:
282
268
  - - "~>"
@@ -289,8 +275,8 @@ dependencies:
289
275
  - !ruby/object:Gem::Version
290
276
  version: 0.8.23
291
277
  name: coveralls
292
- type: :development
293
278
  prerelease: false
279
+ type: :development
294
280
  version_requirements: !ruby/object:Gem::Requirement
295
281
  requirements:
296
282
  - - '='
@@ -303,8 +289,8 @@ dependencies:
303
289
  - !ruby/object:Gem::Version
304
290
  version: 0.16.1
305
291
  name: simplecov
306
- type: :development
307
292
  prerelease: false
293
+ type: :development
308
294
  version_requirements: !ruby/object:Gem::Requirement
309
295
  requirements:
310
296
  - - "~>"
@@ -317,14 +303,14 @@ dependencies:
317
303
  - !ruby/object:Gem::Version
318
304
  version: 0.7.0
319
305
  name: simplecov-lcov
320
- type: :development
321
306
  prerelease: false
307
+ type: :development
322
308
  version_requirements: !ruby/object:Gem::Requirement
323
309
  requirements:
324
310
  - - "~>"
325
311
  - !ruby/object:Gem::Version
326
312
  version: 0.7.0
327
- description: Glimmer DSL for SWT (JRuby Desktop GUI)
313
+ description: Glimmer DSL for SWT (JRuby Desktop Development GUI Library)
328
314
  email: andy.am@gmail.com
329
315
  executables:
330
316
  - glimmer
@@ -334,6 +320,7 @@ extra_rdoc_files:
334
320
  - LICENSE.txt
335
321
  - README.md
336
322
  files:
323
+ - CHANGELOG.md
337
324
  - LICENSE.txt
338
325
  - README.md
339
326
  - RUBY_VERSION
@@ -341,6 +328,7 @@ files:
341
328
  - bin/girb
342
329
  - bin/girb_runner.rb
343
330
  - bin/glimmer
331
+ - glimmer-dsl-swt.gemspec
344
332
  - icons/scaffold_app.icns
345
333
  - icons/scaffold_app.ico
346
334
  - icons/scaffold_app.png
@@ -390,10 +378,11 @@ files:
390
378
  - lib/glimmer/dsl/swt/widget_expression.rb
391
379
  - lib/glimmer/dsl/swt/widget_listener_expression.rb
392
380
  - lib/glimmer/launcher.rb
393
- - lib/glimmer/package.rb
394
381
  - lib/glimmer/rake_task.rb
395
382
  - lib/glimmer/rake_task/list.rb
396
- - lib/glimmer/scaffold.rb
383
+ - lib/glimmer/rake_task/package.rb
384
+ - lib/glimmer/rake_task/sample.rb
385
+ - lib/glimmer/rake_task/scaffold.rb
397
386
  - lib/glimmer/swt/color_proxy.rb
398
387
  - lib/glimmer/swt/cursor_proxy.rb
399
388
  - lib/glimmer/swt/display_proxy.rb
@@ -431,6 +420,8 @@ files:
431
420
  - samples/hello/hello_combo.rb
432
421
  - samples/hello/hello_computed.rb
433
422
  - samples/hello/hello_computed/contact.rb
423
+ - samples/hello/hello_custom_shell.rb
424
+ - samples/hello/hello_custom_widget.rb
434
425
  - samples/hello/hello_drag_and_drop.rb
435
426
  - samples/hello/hello_list_multi_selection.rb
436
427
  - samples/hello/hello_list_single_selection.rb
@@ -461,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
461
452
  - !ruby/object:Gem::Version
462
453
  version: '0'
463
454
  requirements: []
464
- rubygems_version: 3.0.6
455
+ rubygems_version: 3.1.4
465
456
  signing_key:
466
457
  specification_version: 4
467
458
  summary: Glimmer DSL for SWT
@@ -1,91 +0,0 @@
1
- require 'os'
2
-
3
- # TODO refactor to nest under RakeTask namespace
4
-
5
- module Glimmer
6
- module Package
7
- class << self
8
- attr_accessor :javapackager_extra_args
9
- alias jpackage_extra_args :javapackager_extra_args
10
-
11
- def clean
12
- require 'fileutils'
13
- FileUtils.rm_rf('dist')
14
- FileUtils.rm_rf('packages')
15
- end
16
-
17
- def config
18
- project_name = File.basename(File.expand_path('.'))
19
- if !File.exists?('config/warble.rb')
20
- puts 'Generating JAR configuration (config/warble.rb) to use with Warbler...'
21
- FileUtils.mkdir_p('config')
22
- system('warble config')
23
- new_config = File.read('config/warble.rb').split("\n").inject('') do |output, line|
24
- if line.include?('config.dirs =')
25
- line = line.sub('# ', '').sub(/=[^=\n]+$/, '= %w(app bin config db docs fonts icons images lib package script sounds vendor videos)')
26
- end
27
- if line.include?('config.includes =')
28
- line = line.sub('# ', '').sub(/=[^=\n]+$/, "= FileList['LICENSE.txt', 'VERSION']")
29
- end
30
- if line.include?('config.autodeploy_dir =')
31
- line = line.sub('# ', '')
32
- end
33
- output + "\n" + line
34
- end
35
- File.write('config/warble.rb', new_config)
36
- end
37
- end
38
-
39
- def jar
40
- FileUtils.mkdir_p('dist')
41
- puts "Generating JAR with Warbler..."
42
- system('warble')
43
- end
44
-
45
- def lock_jars
46
- puts 'Locking gem jar-dependencies by downloading & storing in vendor/jars...'
47
- FileUtils.mkdir_p('vendor/jars')
48
- command = "lock_jars --vendor-dir vendor/jars"
49
- puts command
50
- system command
51
- end
52
-
53
- def native(native_type=nil, native_extra_args)
54
- puts "Generating native executable with javapackager/jpackage..."
55
- require 'facets/string/titlecase'
56
- require 'facets/string/underscore'
57
- project_name = File.basename(File.expand_path('.'))
58
- version_file = File.expand_path('./VERSION')
59
- version = (File.read(version_file).strip if File.exists?(version_file) && File.file?(version_file)) rescue nil
60
- license_file = File.expand_path('./LICENSE.txt')
61
- license = (File.read(license_file).strip if File.exists?(license_file) && File.file?(license_file)) rescue nil
62
- copyright = license.split("\n").first
63
- human_name = project_name.underscore.titlecase
64
- icon = "package/#{OS.mac? ? 'macosx' : 'windows'}/#{human_name}.#{OS.mac? ? 'icns' : 'ico'}"
65
- if (`javapackager`.to_s.include?('Usage: javapackager') rescue nil)
66
- command = "javapackager -deploy -native #{native_type} -outdir packages -outfile \"#{project_name}\" -srcfiles \"dist/#{project_name}.jar\" -appclass JarMain -name \"#{human_name}\" -title \"#{human_name}\" -Bmac.CFBundleName=\"#{human_name}\" -Bmac.CFBundleIdentifier=\"org.#{project_name}.application.#{project_name}\" -Bmac.category=\"public.app-category.business\" -BinstalldirChooser=true -Bvendor=\"#{human_name}\" -Bwin.menuGroup=\"#{human_name}\" "
67
- command += " -BsystemWide=false " if OS.windows?
68
- command += " -BjvmOptions=-XstartOnFirstThread " if OS.mac?
69
- command += " -BappVersion=#{version} -Bmac.CFBundleVersion=#{version} " if version
70
- command += " -srcfiles LICENSE.txt -BlicenseFile=LICENSE.txt " if license
71
- command += " -Bcopyright=\"#{copyright}\" " if copyright
72
- elsif (`jpackage`.to_s.include?('Usage: jpackage') rescue nil)
73
- command = "jpackage --type #{native_type} --dest 'packages/bundles' --input 'dist' --main-class JarMain --main-jar '#{project_name}.jar' --name '#{human_name}' --vendor '#{human_name}' --icon '#{icon}' "
74
- command += " --win-per-user-install --win-dir-chooser --win-menu --win-menu-group '#{human_name}' " if OS.windows?
75
- command += " --java-options '-XstartOnFirstThread' --mac-package-name '#{human_name}' --mac-package-identifier 'org.#{project_name}.application.#{project_name}' " if OS.mac?
76
- command += " --app-version \"#{version}\" " if version
77
- command += " --license-file LICENSE.txt " if license
78
- command += " --copyright \"#{copyright}\" " if copyright
79
- else
80
- puts "Neither javapackager nor jpackage exist in your Java installation. Please ensure javapackager or jpackage is available in PATH environment variable."
81
- return
82
- end
83
- command += " #{javapackager_extra_args} " if javapackager_extra_args
84
- command += " #{ENV['JAVAPACKAGER_EXTRA_ARGS']} " if ENV['JAVAPACKAGER_EXTRA_ARGS']
85
- command += " #{native_extra_args} " if native_extra_args
86
- puts command
87
- system command
88
- end
89
- end
90
- end
91
- end