glimmer-dsl-libui 0.8.0 → 0.9.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,189 @@
1
+ # Copyright (c) 2021-2023 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
+
22
+ module Glimmer
23
+ module RakeTask
24
+ RVM_FUNCTION = <<~MULTI_LINE_STRING
25
+ # Load RVM into a shell session *as a function*
26
+ if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
27
+
28
+ # First try to load from a user install
29
+ source "$HOME/.rvm/scripts/rvm"
30
+
31
+ elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
32
+
33
+ # Then try to load from a root install
34
+ source "/usr/local/rvm/scripts/rvm"
35
+
36
+ fi
37
+ MULTI_LINE_STRING
38
+ end
39
+ end
40
+
41
+ require 'rake'
42
+
43
+ ENV['GLIMMER_LOGGER_ENABLED'] = 'false'
44
+ require 'puts_debuggerer' if ("#{ENV['pd']}#{ENV['PD']}").to_s.downcase.include?('true')
45
+
46
+ namespace :glimmer do
47
+ desc 'Runs Glimmer app or custom window gem in the current directory, unless app_path is specified, then runs it instead (app_path is optional)'
48
+ task :run, [:app_path] do |t, args|
49
+ require_relative 'launcher'
50
+ if args[:app_path].nil?
51
+ require 'fileutils'
52
+ current_directory_name = File.basename(FileUtils.pwd)
53
+ assumed_shell_script = File.join('.', 'bin', current_directory_name)
54
+ assumed_shell_script = Dir.glob('./bin/*').detect {|f| File.file?(f)} if !File.exist?(assumed_shell_script)
55
+ Glimmer::Launcher.new([assumed_shell_script]).launch
56
+ else
57
+ Glimmer::Launcher.new([args[:app_path]]).launch
58
+ end
59
+ end
60
+
61
+ desc 'Brings up the Glimmer Meta-Sample app to allow browsing, running, and viewing code of Glimmer samples'
62
+ task :examples do
63
+ Glimmer::Launcher.new([File.expand_path('../../../examples/meta_example.rb', __FILE__)]).launch
64
+ end
65
+ task :samples do
66
+ Glimmer::Launcher.new([File.expand_path('../../../examples/meta_example.rb', __FILE__)]).launch
67
+ end
68
+
69
+ desc 'Scaffold Glimmer application directory structure to build a new app'
70
+ task :scaffold, [:app_name] do |t, args|
71
+ require_relative 'rake_task/scaffold'
72
+ Glimmer::RakeTask::Scaffold.app(args[:app_name])
73
+ end
74
+
75
+ # namespace :scaffold do
76
+ # desc 'Scaffold Glimmer::UI::CustomWindow subclass (full window view) under app/views (namespace is optional) [alt: scaffold:cw]'
77
+ # task :customwindow, [:name, :namespace] do |t, args|
78
+ # require_relative 'rake_task/scaffold'
79
+ # Glimmer::RakeTask::Scaffold.custom_window(args[:name], args[:namespace])
80
+ # end
81
+ #
82
+ # task :cw, [:name, :namespace] => :customwindow
83
+ # task :custom_window, [:name, :namespace] => :customwindow
84
+ # task :"custom-window", [:name, :namespace] => :customwindow
85
+ #
86
+ # desc 'Scaffold Glimmer::UI::CustomControl subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cc]'
87
+ # task :customcontrol, [:name, :namespace] do |t, args|
88
+ # require_relative 'rake_task/scaffold'
89
+ # Glimmer::RakeTask::Scaffold.custom_control(args[:name], args[:namespace])
90
+ # end
91
+ #
92
+ # task :cc, [:name, :namespace] => :customcontrol
93
+ # task :custom_control, [:name, :namespace] => :customcontrol
94
+ # task :"custom-control", [:name, :namespace] => :customcontrol
95
+ #
96
+ # desc 'Scaffold Glimmer::UI::CustomShape subclass (part of a view) under app/views (namespace is optional) [alt: scaffold:cs]'
97
+ # task :customshape, [:name, :namespace] do |t, args|
98
+ # require_relative 'rake_task/scaffold'
99
+ # Glimmer::RakeTask::Scaffold.custom_shape(args[:name], args[:namespace])
100
+ # end
101
+ #
102
+ # task :cs, [:name, :namespace] => :customshape
103
+ # task :custom_shape, [:name, :namespace] => :customshape
104
+ # task :"custom-shape", [:name, :namespace] => :customshape
105
+ #
106
+ # namespace :gem do
107
+ # desc 'Scaffold Glimmer::UI::CustomWindow subclass (full window view) under its own Ruby gem + app project (namespace is required) [alt: scaffold:gem:cw]'
108
+ # task :customwindow, [:name, :namespace] do |t, args|
109
+ # require_relative 'rake_task/scaffold'
110
+ # Glimmer::RakeTask::Scaffold.custom_window_gem(args[:name], args[:namespace])
111
+ # end
112
+ #
113
+ # task :cw, [:name, :namespace] => :customwindow
114
+ # task :custom_window, [:name, :namespace] => :customwindow
115
+ # task :"custom-window", [:name, :namespace] => :customwindow
116
+ #
117
+ # desc 'Scaffold Glimmer::UI::CustomControl subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cc]'
118
+ # task :customcontrol, [:name, :namespace] do |t, args|
119
+ # require_relative 'rake_task/scaffold'
120
+ # Glimmer::RakeTask::Scaffold.custom_control_gem(args[:name], args[:namespace])
121
+ # end
122
+ #
123
+ # task :cc, [:name, :namespace] => :customcontrol
124
+ # task :custom_control, [:name, :namespace] => :customcontrol
125
+ # task :"custom-control", [:name, :namespace] => :customcontrol
126
+ #
127
+ # desc 'Scaffold Glimmer::UI::CustomShape subclass (part of a view) under its own Ruby gem project (namespace is required) [alt: scaffold:gem:cs]'
128
+ # task :customshape, [:name, :namespace] do |t, args|
129
+ # require_relative 'rake_task/scaffold'
130
+ # Glimmer::RakeTask::Scaffold.custom_shape_gem(args[:name], args[:namespace])
131
+ # end
132
+ #
133
+ # task :cs, [:name, :namespace] => :customshape
134
+ # task :custom_shape, [:name, :namespace] => :customshape
135
+ # task :"custom-shape", [:name, :namespace] => :customshape
136
+ # end
137
+ #
138
+ # task :custom_window_gem, [:name, :namespace] => 'gem:customwindow'
139
+ # task :custom_control_gem, [:name, :namespace] => 'gem:customcontrol'
140
+ # task :custom_shape_gem, [:name, :namespace] => 'gem:customshape'
141
+ # end
142
+
143
+ namespace :list do
144
+ task :list_require do
145
+ require_relative 'rake_task/list'
146
+ end
147
+
148
+ namespace :gems do
149
+ desc 'List Glimmer custom control gems available at rubygems.org (query is optional) [alt: list:gems:cc]'
150
+ task :customcontrol, [:query] => :list_require do |t, args|
151
+ Glimmer::RakeTask::List.custom_control_gems(args[:query])
152
+ end
153
+
154
+ task :cc, [:query] => :customcontrol
155
+ task :custom_control, [:query] => :customcontrol
156
+ task :"custom-control", [:query] => :customcontrol
157
+
158
+ desc 'List Glimmer custom window gems available at rubygems.org (query is optional) [alt: list:gems:cw]'
159
+ task :customwindow, [:query] => :list_require do |t, args|
160
+ Glimmer::RakeTask::List.custom_window_gems(args[:query])
161
+ end
162
+
163
+ task :cw, [:query] => :customwindow
164
+ task :custom_window, [:query] => :customwindow
165
+ task :"custom-window", [:query] => :customwindow
166
+
167
+ desc 'List Glimmer custom shape gems available at rubygems.org (query is optional) [alt: list:gems:cs]'
168
+ task :customshape, [:query] => :list_require do |t, args|
169
+ Glimmer::RakeTask::List.custom_shape_gems(args[:query])
170
+ end
171
+
172
+ task :cs, [:query] => :customshape
173
+ task :custom_shape, [:query] => :customshape
174
+ task :"custom-shape", [:query] => :customshape
175
+
176
+ desc 'List Glimmer DSL gems available at rubygems.org (query is optional)'
177
+ task :dsl, [:query] => :list_require do |t, args|
178
+ Glimmer::RakeTask::List.dsl_gems(args[:query])
179
+ end
180
+
181
+ end
182
+
183
+ # legacy support
184
+
185
+ task :custom_window_gems, [:name, :namespace] => 'gems:customwindow'
186
+ task :custom_control_gems, [:name, :namespace] => 'gems:customcontrol'
187
+
188
+ end
189
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-libui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-09 00:00:00.000000000 Z
11
+ date: 2023-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -52,6 +52,46 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.4.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: puts_debuggerer
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 0.13.5
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: 2.0.0
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 0.13.5
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: 2.0.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake-tui
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 0.2.3
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: 2.0.0
85
+ type: :runtime
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 0.2.3
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: 2.0.0
55
95
  - !ruby/object:Gem::Dependency
56
96
  name: os
57
97
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +126,26 @@ dependencies:
86
126
  - - "~>"
87
127
  - !ruby/object:Gem::Version
88
128
  version: '1.8'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rake
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: 10.1.0
136
+ - - "<"
137
+ - !ruby/object:Gem::Version
138
+ version: 14.0.0
139
+ type: :runtime
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 10.1.0
146
+ - - "<"
147
+ - !ruby/object:Gem::Version
148
+ version: 14.0.0
89
149
  - !ruby/object:Gem::Dependency
90
150
  name: libui
91
151
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +208,26 @@ dependencies:
148
208
  - - "<"
149
209
  - !ruby/object:Gem::Version
150
210
  version: 4.0.0
211
+ - !ruby/object:Gem::Dependency
212
+ name: text-table
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: 1.2.4
218
+ - - "<"
219
+ - !ruby/object:Gem::Version
220
+ version: 2.0.0
221
+ type: :runtime
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: 1.2.4
228
+ - - "<"
229
+ - !ruby/object:Gem::Version
230
+ version: 2.0.0
151
231
  - !ruby/object:Gem::Dependency
152
232
  name: juwelier
153
233
  requirement: !ruby/object:Gem::Requirement
@@ -224,34 +304,6 @@ dependencies:
224
304
  - - "~>"
225
305
  - !ruby/object:Gem::Version
226
306
  version: '3.0'
227
- - !ruby/object:Gem::Dependency
228
- name: rake-tui
229
- requirement: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - ">="
232
- - !ruby/object:Gem::Version
233
- version: 0.2.1
234
- type: :development
235
- prerelease: false
236
- version_requirements: !ruby/object:Gem::Requirement
237
- requirements:
238
- - - ">="
239
- - !ruby/object:Gem::Version
240
- version: 0.2.1
241
- - !ruby/object:Gem::Dependency
242
- name: puts_debuggerer
243
- requirement: !ruby/object:Gem::Requirement
244
- requirements:
245
- - - "~>"
246
- - !ruby/object:Gem::Version
247
- version: 0.13.1
248
- type: :development
249
- prerelease: false
250
- version_requirements: !ruby/object:Gem::Requirement
251
- requirements:
252
- - - "~>"
253
- - !ruby/object:Gem::Version
254
- version: 0.13.1
255
307
  - !ruby/object:Gem::Dependency
256
308
  name: coveralls
257
309
  requirement: !ruby/object:Gem::Requirement
@@ -294,16 +346,18 @@ dependencies:
294
346
  - - "~>"
295
347
  - !ruby/object:Gem::Version
296
348
  version: 0.7.0
297
- description: Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI
298
- Library) - Winner of Fukuoka Ruby Award Competition 2022 Special Award - No need
299
- to pre-install any prerequisites. Just install the gem and have platform-independent
300
- native GUI that just works! Glimmer DSL for LibUI aims to provide declarative DSL
301
- syntax that visually maps to GUI control hierarchy, convention over configuration
302
- via smart defaults, automation of low-level details, requiring the least amount
303
- of syntax possible to build GUI, bidirectional data-binding, and custom keyword
304
- support. If you liked Shoes, You'll love Glimmer!
349
+ description: Glimmer DSL for LibUI (Fukuoka Award Winning Prerequisite-Free Ruby Desktop
350
+ Development Cross-Platform Native GUI Library) - Winner of Fukuoka Ruby Award Competition
351
+ 2022 Special Award (http://www.digitalfukuoka.jp/topics/187?locale=ja) - No need
352
+ to pre-install any prerequisites. Just install the gem and have cross-platform native
353
+ GUI that just works on Mac, Windows, and Linux! Glimmer DSL for LibUI aims to provide
354
+ declarative DSL syntax that visually maps to GUI control hierarchy, convention over
355
+ configuration via smart defaults, automation of low-level details, requiring the
356
+ least amount of syntax possible to build GUI, bidirectional data-binding, and custom
357
+ keyword support. If you liked Shoes, You'll love Glimmer!
305
358
  email: andy.am@gmail.com
306
359
  executables:
360
+ - glimmer
307
361
  - girb
308
362
  extensions: []
309
363
  extra_rdoc_files:
@@ -314,9 +368,11 @@ files:
314
368
  - CHANGELOG.md
315
369
  - LICENSE.txt
316
370
  - README.md
371
+ - RUBY_VERSION
317
372
  - VERSION
318
373
  - bin/girb
319
374
  - bin/girb_runner.rb
375
+ - bin/glimmer
320
376
  - docs/examples/GLIMMER-DSL-LIBUI-ADVANCED-EXAMPLES.md
321
377
  - docs/examples/GLIMMER-DSL-LIBUI-BASIC-EXAMPLES.md
322
378
  - examples/area_based_custom_controls.rb
@@ -434,9 +490,13 @@ files:
434
490
  - glimmer-dsl-libui.gemspec
435
491
  - icons/blank.png
436
492
  - icons/glimmer.png
493
+ - icons/scaffold_app.icns
494
+ - icons/scaffold_app.ico
495
+ - icons/scaffold_app.png
437
496
  - lib/glimmer-dsl-libui.rb
438
497
  - lib/glimmer-dsl-libui/ext/glimmer.rb
439
498
  - lib/glimmer-dsl-libui/ext/rouge/theme/glimmer.rb
499
+ - lib/glimmer/Rakefile
440
500
  - lib/glimmer/dsl/libui/bind_expression.rb
441
501
  - lib/glimmer/dsl/libui/control_expression.rb
442
502
  - lib/glimmer/dsl/libui/custom_control_expression.rb
@@ -455,6 +515,7 @@ files:
455
515
  - lib/glimmer/dsl/libui/string_expression.rb
456
516
  - lib/glimmer/dsl/libui/tab_item_expression.rb
457
517
  - lib/glimmer/fiddle_consumer.rb
518
+ - lib/glimmer/launcher.rb
458
519
  - lib/glimmer/libui.rb
459
520
  - lib/glimmer/libui/attributed_string.rb
460
521
  - lib/glimmer/libui/control_proxy.rb
@@ -543,6 +604,9 @@ files:
543
604
  - lib/glimmer/libui/shape/rectangle.rb
544
605
  - lib/glimmer/libui/shape/square.rb
545
606
  - lib/glimmer/proc_tracker.rb
607
+ - lib/glimmer/rake_task.rb
608
+ - lib/glimmer/rake_task/list.rb
609
+ - lib/glimmer/rake_task/scaffold.rb
546
610
  - sounds/AlanWalker-Faded.mid
547
611
  - sounds/AlanWalker-SingMeToSleep.mid
548
612
  - sounds/CalvinHarris-Blame.mid
@@ -569,8 +633,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
569
633
  - !ruby/object:Gem::Version
570
634
  version: '0'
571
635
  requirements: []
572
- rubygems_version: 3.2.22
636
+ rubygems_version: 3.4.10
573
637
  signing_key:
574
638
  specification_version: 4
575
- summary: Glimmer DSL for LibUI
639
+ summary: Glimmer DSL for LibUI (Fukuoka Award Winning Prerequisite-Free Ruby Desktop
640
+ Development Cross-Platform Native GUI Library)
576
641
  test_files: []