glimmer-dsl-libui 0.9.0 → 0.9.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/CHANGELOG.md +10 -0
- data/README.md +147 -7
- data/RUBY_VERSION +1 -0
- data/VERSION +1 -1
- data/glimmer-dsl-libui.gemspec +0 -0
- data/icons/scaffold_app.icns +0 -0
- data/icons/scaffold_app.ico +0 -0
- data/icons/scaffold_app.png +0 -0
- data/lib/glimmer/rake_task/package.rb +43 -0
- data/lib/glimmer/rake_task/scaffold.rb +180 -220
- data/lib/glimmer/rake_task.rb +88 -70
- metadata +67 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3ad3f4e1a2e367a8e95fba05f1b539f2aa865dfab7e2234541933be97dda171
|
4
|
+
data.tar.gz: 44255036ce4a887224c84f861d0654483bada4ff8ed3c2a1c4192083a19cf45b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e018c132e8b838ce839adeaae9d812d52ab8be960b87a8d3e5c85cf8045d988b83495640fb4bef7cb778960d2f25b7da8fcf4d659bd8ada7ed8277d26cc9ff9f
|
7
|
+
data.tar.gz: 3fb97e3a7946c9690c0bd48fdbee89d65f99833b11bd9b033c21b099e51f394b98d1aa96c4c51b9e0445c309a5b28f4f272c53174617e20b4e578dc602338c5a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.9.2
|
4
|
+
|
5
|
+
- Add `glimmer` commands `glimmer package:gem`, `glimmer package:gemspec`, and `glimmer package:clean`
|
6
|
+
|
7
|
+
## 0.9.1
|
8
|
+
|
9
|
+
- Scaffold an application via Glimmer Command: `glimmer scaffold[app_name]`
|
10
|
+
- Hide unsupported Scaffolding tasks in Glimmer Command
|
11
|
+
- Add missing Glimmer Command gem dependencies: `rake`, `rake-tui`, `text-table`, `puts_debuggerer`
|
12
|
+
|
3
13
|
## 0.9.0
|
4
14
|
|
5
15
|
- Support `glimmer` command to more conveniently run applications (`glimmer app_path`) and examples (`glimmer examples`)
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for LibUI
|
2
|
-
## Prerequisite-Free Ruby Desktop Development Cross-Platform Native GUI Library
|
1
|
+
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for LibUI 0.9.2
|
2
|
+
## Prerequisite-Free Ruby Desktop Development Cross-Platform Native GUI Library ([Fukuoka Award Winning](http://www.digitalfukuoka.jp/topics/187?locale=ja))
|
3
3
|
### The Quickest Way From Zero To GUI
|
4
4
|
[](http://badge.fury.io/rb/glimmer-dsl-libui)
|
5
5
|
[](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
@@ -28,7 +28,7 @@ The main trade-off in using [Glimmer DSL for LibUI](https://rubygems.org/gems/gl
|
|
28
28
|
- Requiring the [least amount of syntax](#glimmer-gui-dsl-concepts) possible to build GUI
|
29
29
|
- [Custom Control](#custom-keywords) support
|
30
30
|
- [Bidirectional/Unidirectional Data-Binding](#data-binding) to declaratively wire and automatically synchronize GUI Views with Models
|
31
|
-
- [
|
31
|
+
- [Scaffolding](scaffold-application) for new custom controls, apps, and gems
|
32
32
|
- [Far Future Plan] Native-Executable packaging on Mac, Windows, and Linux.
|
33
33
|
|
34
34
|
Hello, World!
|
@@ -347,6 +347,10 @@ Learn more about the differences between various [Glimmer](https://github.com/An
|
|
347
347
|
- [Experimentation Usage](#experimentation-usage)
|
348
348
|
- [Prototyping Usage](#prototyping-usage)
|
349
349
|
- [Serious Usage](#serious-usage)
|
350
|
+
- [Glimmer Command](#glimmer-command)
|
351
|
+
- [Run Application](#run-application)
|
352
|
+
- [Run Examples](#run-examples)
|
353
|
+
- [Scaffold Application](#scaffold-application)
|
350
354
|
- [Girb (Glimmer IRB)](#girb-glimmer-irb)
|
351
355
|
- [Glimmer GUI DSL Concepts](#glimmer-gui-dsl-concepts)
|
352
356
|
- [API](#api)
|
@@ -417,7 +421,7 @@ gem install glimmer-dsl-libui
|
|
417
421
|
Or install via Bundler `Gemfile`:
|
418
422
|
|
419
423
|
```ruby
|
420
|
-
gem 'glimmer-dsl-libui', '~> 0.9.
|
424
|
+
gem 'glimmer-dsl-libui', '~> 0.9.2'
|
421
425
|
```
|
422
426
|
|
423
427
|
Test that installation worked by running the [Glimmer Meta-Example](#examples):
|
@@ -525,9 +529,7 @@ If you are new to [Glimmer DSL for LibUI](https://rubygems.org/gems/glimmer-dsl-
|
|
525
529
|
|
526
530
|
## Glimmer Command
|
527
531
|
|
528
|
-
The `glimmer` command allows you to conveniently
|
529
|
-
- Run Glimmer DSL for LibUI applications (via `glimmer [app_path]`)
|
530
|
-
- Run Glimmer DSL for LibUI included examples (via `glimmer examples`, which brings up the [Glimmer Meta-Example](https://github.com/AndyObtiva/glimmer-dsl-libui/blob/master/examples/meta_example.rb))
|
532
|
+
The `glimmer` command allows you to conveniently run applications (`glimmer app_path`), run examples (`glimmer examples`), and scaffold applications (`glimmer "scaffold[app_name]"`).
|
531
533
|
|
532
534
|
You can bring up usage instructions by running the `glimmer` command without arguments:
|
533
535
|
|
@@ -581,6 +583,144 @@ On Windows and ARM64 machines, it simply lists the available Glimmer tasks at th
|
|
581
583
|
|
582
584
|
Note: If you encounter an issue running the `glimmer` command, run `bundle exec glimmer` instead.
|
583
585
|
|
586
|
+
### Run Application
|
587
|
+
|
588
|
+
Run Glimmer DSL for LibUI applications via this command:
|
589
|
+
|
590
|
+
```
|
591
|
+
glimmer app_path
|
592
|
+
```
|
593
|
+
|
594
|
+
For example, from a cloned glimmer-dsl-libui repository:
|
595
|
+
|
596
|
+
```
|
597
|
+
glimmer examples/basic_window.rb
|
598
|
+
```
|
599
|
+
|
600
|
+
Mac | Windows | Linux
|
601
|
+
----|---------|------
|
602
|
+
 |  | 
|
603
|
+
|
604
|
+
### Run Examples
|
605
|
+
|
606
|
+
Run Glimmer DSL for LibUI included examples via this command:
|
607
|
+
|
608
|
+
```
|
609
|
+
glimmer examples
|
610
|
+
```
|
611
|
+
|
612
|
+
That brings up the [Glimmer Meta-Example](https://github.com/AndyObtiva/glimmer-dsl-libui/blob/master/examples/meta_example.rb))
|
613
|
+
|
614
|
+
Mac | Windows | Linux
|
615
|
+
----|---------|------
|
616
|
+
 |  | 
|
617
|
+
|
618
|
+
### Scaffold Application
|
619
|
+
|
620
|
+
Application scaffolding enables automatically generating the directories/files of a new desktop GUI application that follows the MVC architecture and can be packaged as a Ruby gem that includes a binary script for running the app conveniently.
|
621
|
+
|
622
|
+
Scaffold Glimmer DSL for LibUI application with this command:
|
623
|
+
|
624
|
+
```
|
625
|
+
glimmer "scaffold[app_name]"
|
626
|
+
```
|
627
|
+
|
628
|
+
That will generate the general MVC structure of a new Glimmer DSL for LibUI application.
|
629
|
+
|
630
|
+
For example, if we run:
|
631
|
+
|
632
|
+
```
|
633
|
+
glimmer "scaffold[hello_world]"
|
634
|
+
```
|
635
|
+
|
636
|
+
The following files are generated and reported by the `glimmer` command:
|
637
|
+
|
638
|
+
```
|
639
|
+
Created hello_world/.gitignore
|
640
|
+
Created hello_world/.ruby-version
|
641
|
+
Created hello_world/.ruby-gemset
|
642
|
+
Created hello_world/VERSION
|
643
|
+
Created hello_world/LICENSE.txt
|
644
|
+
Created hello_world/Gemfile
|
645
|
+
Created hello_world/Rakefile
|
646
|
+
Created hello_world/app/hello_world.rb
|
647
|
+
Created hello_world/app/hello_world/view/hello_world.rb
|
648
|
+
Created hello_world/icons/windows/Hello World.ico
|
649
|
+
Created hello_world/icons/macosx/Hello World.icns
|
650
|
+
Created hello_world/icons/linux/Hello World.png
|
651
|
+
Created hello_world/app/hello_world/launch.rb
|
652
|
+
Created hello_world/bin/hello_world
|
653
|
+
```
|
654
|
+
|
655
|
+
They include a basic Hello, World! application with menus and about/preferences dialogs.
|
656
|
+
|
657
|
+
Views live under `app/app_name/view` (e.g. `app/hello_world/view`)
|
658
|
+
Models live under `app/app_name/model` (e.g. `app/hello_world/model`)
|
659
|
+
|
660
|
+
Once you step into the application directory, you can run it in one of multiple ways:
|
661
|
+
|
662
|
+
```
|
663
|
+
bin/app_name
|
664
|
+
```
|
665
|
+
|
666
|
+
For example:
|
667
|
+
|
668
|
+
```
|
669
|
+
bin/hello_world
|
670
|
+
```
|
671
|
+
|
672
|
+
Or using the Glimmer generic command for running applications, which will automatically detect the application running script:
|
673
|
+
|
674
|
+
```
|
675
|
+
glimmer run
|
676
|
+
```
|
677
|
+
|
678
|
+

|
679
|
+
|
680
|
+

|
681
|
+
|
682
|
+

|
683
|
+
|
684
|
+
The application comes with `juwelier` for auto-generating an application gem from its `Rakefile` gem configuration.
|
685
|
+
|
686
|
+
You can package the newly scaffolded app as a Ruby gem by running this command:
|
687
|
+
|
688
|
+
```
|
689
|
+
glimmer package:gem
|
690
|
+
```
|
691
|
+
|
692
|
+
Or by using the raw rake command:
|
693
|
+
|
694
|
+
```
|
695
|
+
rake build
|
696
|
+
```
|
697
|
+
|
698
|
+
You can generate the application gemspec explicitly if needed with this command (though it is not needed to build the gem):
|
699
|
+
|
700
|
+
```
|
701
|
+
glimmer package:gemspec
|
702
|
+
```
|
703
|
+
|
704
|
+
Or by using the raw rake command:
|
705
|
+
|
706
|
+
```
|
707
|
+
rake gemspec:generate
|
708
|
+
```
|
709
|
+
|
710
|
+
Once you install the gem (e.g. `gem install hello_world`), you can simply run the app with its binary script:
|
711
|
+
|
712
|
+
```
|
713
|
+
app_name
|
714
|
+
```
|
715
|
+
|
716
|
+
For example:
|
717
|
+
|
718
|
+
```
|
719
|
+
hello_world
|
720
|
+
```
|
721
|
+
|
722
|
+

|
723
|
+
|
584
724
|
## Girb (Glimmer IRB)
|
585
725
|
|
586
726
|
You can run the `girb` command (`bin/girb` if you cloned the project locally) to do some quick and dirty experimentation and learning:
|
data/RUBY_VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.2.2
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.2
|
data/glimmer-dsl-libui.gemspec
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,43 @@
|
|
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
|
+
require 'os'
|
23
|
+
|
24
|
+
module Glimmer
|
25
|
+
module RakeTask
|
26
|
+
module Package
|
27
|
+
class << self
|
28
|
+
def clean
|
29
|
+
require 'fileutils'
|
30
|
+
FileUtils.rm_rf('pkg')
|
31
|
+
end
|
32
|
+
|
33
|
+
def gemspec
|
34
|
+
system 'rake gemspec:generate'
|
35
|
+
end
|
36
|
+
|
37
|
+
def gem
|
38
|
+
system 'rake build'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|