glimmer 0.10.2 → 0.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +158 -51
  3. data/VERSION +1 -1
  4. data/lib/glimmer/config.rb +6 -1
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5296edf57183b7bffa288342e5c3c4ab14713dbd70af643bf8117f608314d2a
4
- data.tar.gz: 5a9285de28140f0f7a94ed80ec9c6c597ae163a5fdce4f4ad8a060f5ad341775
3
+ metadata.gz: 9c1c9758088604c5d7369a6cabaf6b80e8ff7ff18036e55e397c472014d5dd3d
4
+ data.tar.gz: a4f41a4f54df4a2ba9fb52557879132e9c473db57a150597fc8c974c81e4eb28
5
5
  SHA512:
6
- metadata.gz: ef36cf024e59cc0111d8f3a283c6d89134eea01390574962ef0b36ef89c75d482d6912b83fd1bfc609f40f262f72156df9ab8d8481ac41118bb799b1a718e473
7
- data.tar.gz: 65c0d12d30f2ea846766d98bb91aa0b3ae86eaac11697532d6b3ed55a139816d0be797a94584297c40c949f8cff436dfa15cbc0176cbb652207bab452c148071
6
+ metadata.gz: a5551a3822e3743a4d38e228351bb06fb067ed50e42eeb9a1846fd326ea93319efc68b8294ecf589269f276600077d5023de057c35f10309ce312bc76c345e42
7
+ data.tar.gz: 7d85be1c6744e2fcee830ba228142d62d72c75b8f270e57bc4f132174e0dad676a4603c49f21a1efb89194f0d5b734be0c8228576edca86a4d625f497cd82e50
data/README.md CHANGED
@@ -204,6 +204,7 @@ Glimmer App:
204
204
  - [Mac Support](#mac-support)
205
205
  - [Girb (Glimmer irb) Command](#girb-glimmer-irb-command)
206
206
  - [Glimmer GUI DSL Syntax](#glimmer-gui-dsl-syntax)
207
+ - [DSL Auto-Expansion](#dsl-auto-expansion)
207
208
  - [Widgets](#widgets)
208
209
  - [Display](#display)
209
210
  - [SWT Proxies](#swt-proxies)
@@ -270,6 +271,7 @@ Glimmer App:
270
271
  - [External Samples](#external-samples)
271
272
  - [Glimmer Calculator](#glimmer-calculator)
272
273
  - [Gladiator](#gladiator)
274
+ - [Timer](#timer)
273
275
  - [In Production](#in-production)
274
276
  - [Math Bowling](#math-bowling)
275
277
  - [Are We There Yet?](#are-we-there-yet)
@@ -281,7 +283,9 @@ Glimmer App:
281
283
  - [Mac Application Distribution](#mac-application-distribution)
282
284
  - [Self Signed Certificate](#self-signed-certificate)
283
285
  - [Gotchas](#gotchas)
284
- - [App Updates](#app-updates)
286
+ - [App Updates](#app-updates)
287
+ - [Glimmer Supporting Libraries](#glimmer-supporting-libraries)
288
+ - [Glimmer Process](#glimmer-process)
285
289
  - [Resources](#resources)
286
290
  - [Help](#help)
287
291
  - [Issues](#issues)
@@ -316,9 +320,9 @@ https://www.eclipse.org/swt/faq.php
316
320
 
317
321
  ## Pre-requisites
318
322
 
319
- - SWT 4.16 (comes included in Glimmer gem)
323
+ - JDK 8u241 (1.8.0_241) (find at https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html)
320
324
  - JRuby 9.2.13.0 (supporting Ruby 2.5.x syntax) (get via [RVM](http://rvm.io) on Mac and Linux or find at [https://www.jruby.org/download](https://www.jruby.org/download) for Windows)
321
- - JDK 8 (find at https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
325
+ - SWT 4.16 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem)
322
326
 
323
327
  To obtain JRuby through [RVM](http://rvm.io), you may run:
324
328
 
@@ -343,11 +347,16 @@ Otherwise, Option 2 ([Bundler](#option-2-bundler)) can be followed in rare cases
343
347
 
344
348
  Run this command to install directly:
345
349
  ```
346
- jgem install glimmer-dsl-swt -v 0.6.1
350
+ jgem install glimmer-dsl-swt
351
+ ```
352
+
353
+ Or this command if you want a specific version:
354
+ ```
355
+ jgem install glimmer-dsl-swt -v 0.6.3
347
356
  ```
348
357
 
349
358
  `jgem` is JRuby's version of `gem` command.
350
- RVM allows running `gem` as an alias.
359
+ RVM allows running `gem install` directly as an alias.
351
360
  Otherwise, you may also run `jruby -S gem install ...`
352
361
 
353
362
  If you are new to Glimmer and would like to continue learning the basics, you may continue to the [Glimmer Command](https://github.com/AndyObtiva/glimmer#glimmer-command) section.
@@ -361,7 +370,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
361
370
 
362
371
  Add the following to `Gemfile`:
363
372
  ```
364
- gem 'glimmer-dsl-swt', '~> 0.6.1'
373
+ gem 'glimmer-dsl-swt', '~> 0.6.3'
365
374
  ```
366
375
 
367
376
  And, then run:
@@ -469,14 +478,14 @@ getting you to a running and delivered state of an advanced "Hello, World!" Glim
469
478
 
470
479
  This should greatly facilitate building a new Glimmer app by helping you be productive and focus on app details while
471
480
  letting Glimmer scaffolding take care of initial app file structure concerns, such as adding:
472
- - Main application class that includes Glimmer
481
+ - Main application class that includes Glimmer (`app/{app_name}.rb`)
473
482
  - Main application view that houses main window content, menu, about dialog, and preferences dialog
474
- - View and Model directories
475
- - Rakefile including Glimmer tasks
476
- - Version
477
- - License
478
- - Icon
479
- - Bin file for starting application
483
+ - View and Model directories (`app/views` and `app/models`)
484
+ - Rakefile including Glimmer tasks (`Rakefile`)
485
+ - Version (`VERSION`)
486
+ - License (`LICENSE.txt`)
487
+ - Icon (under `package/{platform}/{App Name}.{icon_extension}` for `macosx` .icns, `windows` .ico, and `linux` .png)
488
+ - Bin file for starting application (`bin/{app_name}.rb`)
480
489
 
481
490
  NOTE: Scaffolding supports Mac and Windows packaging at the moment.
482
491
 
@@ -495,22 +504,40 @@ This will generate an advanced "Hello, World!" app, package it as a Mac native f
495
504
  Suppose you run:
496
505
 
497
506
  ```
498
- glimmer scaffold[CarMaker]
507
+ glimmer scaffold[greeter]
499
508
  ```
500
509
 
501
510
  You should see output like the following:
502
511
 
503
512
  ```
504
- Created CarMaker/.ruby-version
505
- Created CarMaker/.ruby-gemset
506
- Created CarMaker/VERSION
507
- Created CarMaker/LICENSE.txt
508
- Created CarMaker/Gemfile
509
- Created CarMaker/Rakefile
510
- Created CarMaker/app/car_maker.rb
511
- Created CarMaker/app/views/car_maker/app_view.rb
512
- Created CarMaker/package/macosx/Car Maker.icns
513
- Created CarMaker/bin/car_maker
513
+ $ glimmer scaffold[greeter]
514
+ create .gitignore
515
+ create Rakefile
516
+ create Gemfile
517
+ create LICENSE.txt
518
+ create README.rdoc
519
+ create .document
520
+ create lib
521
+ create lib/greeter.rb
522
+ create spec
523
+ create spec/spec_helper.rb
524
+ create spec/greeter_spec.rb
525
+ create .rspec
526
+ Jeweler has prepared your gem in ./greeter
527
+ Created greeter/.gitignore
528
+ Created greeter/.ruby-version
529
+ Created greeter/.ruby-gemset
530
+ Created greeter/VERSION
531
+ Created greeter/LICENSE.txt
532
+ Created greeter/Gemfile
533
+ Created greeter/Rakefile
534
+ Created greeter/app/greeter.rb
535
+ Created greeter/app/views/greeter/app_view.rb
536
+ Created greeter/package/windows/Greeter.ico
537
+ Created greeter/package/macosx/Greeter.icns
538
+ Created greeter/package/linux/Greeter.png
539
+ Created greeter/bin/greeter
540
+ Created greeter/spec/spec_helper.rb
514
541
  ...
515
542
  ```
516
543
 
@@ -648,8 +675,9 @@ Output:
648
675
 
649
676
  Name Gem Version Author Description
650
677
 
651
- Calculator glimmer-cs-calculator 1.0.1 Andy Maleh Calculator - Glimmer Custom Shell
652
- Gladiator glimmer-cs-gladiator 0.2.3 Andy Maleh Gladiator (Glimmer Editor) - Glimmer Custom Shell
678
+ Calculator glimmer-cs-calculator 1.0.2 Andy Maleh Calculator - Glimmer Custom Shell
679
+ Gladiator glimmer-cs-gladiator 0.2.4 Andy Maleh Gladiator (Glimmer Editor) - Glimmer Custom Shell
680
+ Timer glimmer-cs-timer 1.0.0 Andy Maleh Timer - Glimmer Custom Shell
653
681
 
654
682
  ```
655
683
 
@@ -711,7 +739,7 @@ Output:
711
739
 
712
740
  Css glimmer-dsl-css 0.2.0 AndyMaleh Glimmer DSL for CSS
713
741
  Opal glimmer-dsl-opal 0.1.0 AndyMaleh Glimmer DSL for Opal
714
- Swt glimmer-dsl-swt 0.6.1 AndyMaleh Glimmer DSL for SWT
742
+ Swt glimmer-dsl-swt 0.6.3 AndyMaleh Glimmer DSL for SWT
715
743
  Xml glimmer-dsl-xml 0.2.0 AndyMaleh Glimmer DSL for XML
716
744
 
717
745
  ```
@@ -767,7 +795,55 @@ Keep in mind that all samples live under [https://github.com/AndyObtiva/glimmer-
767
795
 
768
796
  ## Glimmer GUI DSL Syntax
769
797
 
770
- Glimmer is mainly a GUI DSL with a lightweight visual syntax that makes it easy to visualize the nesting of widgets in the GUI hierarchy tree.
798
+ Glimmer's core is a GUI DSL with a lightweight visual syntax that makes it easy to visualize the nesting of widgets in the GUI hierarchy tree.
799
+
800
+ It is available through mixing in the `Glimmer` module, which makes Glimmer GUI DSL keywords available to both the instance scope and class scope:
801
+
802
+ ```ruby
803
+ include Glimmer
804
+ ```
805
+
806
+ For example, here is the basic "Hello, World!" sample code (you may copy/paste in [`girb`](#girb-glimmer-irb-command)):
807
+
808
+ ```ruby
809
+ include Glimmer
810
+
811
+ shell {
812
+ text "Glimmer"
813
+ label {
814
+ text "Hello, World!"
815
+ }
816
+ }.open
817
+ ```
818
+
819
+ The `include Glimmer` declaration on top mixed the `Glimmer` module into the Ruby global main object making the Glimmer GUI DSL available at the top-level global scope.
820
+
821
+ While this works well enough for mini-samples, it is better to isolate Glimmer in a class or module during production application development to create a clean separation between view code (GUI) and model code (business domain). Here is the "Hello, World!" sample re-written in a class to illustrate how mixing in the `Glimmer` module (via `include Glimmer`) makes the Glimmer GUI DSL available in both the instance scope and class scope. That is clearly demonstrated by pre-initializing a color constant in the class scope and building the GUI in the `#open` instance method (you may copy/paste in [`girb`](#girb-glimmer-irb-command)):
822
+
823
+ ```ruby
824
+ class HelloWorld
825
+ include Glimmer # makes the GUI DSL available in both the class scope and instance scope
826
+
827
+ COLOR_FOREGROUND_DEFAULT = rgb(255, 0, 0) # rgb is a GUI DSL keyword used in the class scope
828
+
829
+ def open
830
+ # the following are GUI DSL keywords (shell, text, and label) used in the instance scope
831
+ shell {
832
+ text "Glimmer"
833
+ label {
834
+ text "Hello, World!"
835
+ foreground COLOR_FOREGROUND_DEFAULT
836
+ }
837
+ }.open
838
+ end
839
+ end
840
+
841
+ HelloWorld.new.open
842
+ ```
843
+
844
+ This renders "Hello, World!" with a red foreground color:
845
+
846
+ ![Hello World Red Foreground Color](images/glimmer-hello-world-red-foreground-color.png)
771
847
 
772
848
  The GUI DSL intentionally avoids overly verbose syntax, requiring as little declarative code as possible to describe what GUI to render, how to style it, and what properties to data-bind to the Models.
773
849
 
@@ -778,13 +854,15 @@ Glimmer DSL syntax consists mainly of:
778
854
  - style/args (e.g. :multi as in `table(:multi)` for a multi-line selection table widget)
779
855
  - content (e.g. `{ table_column { text 'Name'} }` as in `table(:multi) { table_column { text 'name'} }` for a multi-line selection table widget with a table column having header text property `'Name'` as content)
780
856
 
781
- Glimmer keywords may be static or dynamic.
857
+ ### DSL Auto-Expansion
858
+
859
+ Glimmer supports a new and radical Ruby DSL concept called DSL Auto-Expansion. It is explained by first mentioning the two types of Glimmer GUI DSL keywords: static and dynamic.
782
860
 
783
861
  Static keywords are pre-identified keywords in the Glimmer DSL, such as `shell`, `display`, `message_box`, `async_exec`, `sync_exec`, and `bind`.
784
862
 
785
863
  Dynamic keywords are dynamically figured out from currently imported (aka required/loaded) SWT widgets, custom widgets, and widget properties. Examples are: `label`, `combo`, and `list` for widgets and `enabled`, `text`, and `selection` for properties.
786
864
 
787
- The only reason to distinguish between the two types of Glimmer DSL keywords is to realize that importing new Glimmer [custom widgets](#custom-widgets) and Java SWT custom widget libraries automatically expands Glimmer's DSL vocabulary via new dynamic keywords.
865
+ The only reason to distinguish between the two types of Glimmer DSL keywords is to realize that importing new Glimmer [custom widgets](#custom-widgets) and Java SWT custom widget libraries automatically expands Glimmer's DSL vocabulary via new dynamic keywords.
788
866
 
789
867
  For example, if a project adds this custom Java SWT library:
790
868
 
@@ -1400,7 +1478,7 @@ shell {
1400
1478
 
1401
1479
  This sets the shell `cursor` to that of `SWT::CURSOR_APPSTARTING`
1402
1480
 
1403
- ### Layout
1481
+ ### Layouts
1404
1482
 
1405
1483
  Glimmer lays widgets out visually using SWT layouts, which can only be set on composite widget and subclasses.
1406
1484
 
@@ -3142,7 +3220,7 @@ Contact Manager - Edit Done
3142
3220
 
3143
3221
  #### Glimmer Calculator
3144
3222
 
3145
- [<img alt="Glimmer Calculator Icon" src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-calculator/master/glimmer-cs-calculator-icon.png" height=40 /> Glimmer Calculator](https://github.com/AndyObtiva/glimmer-cs-calculator) is a basic calculator sample project demonstrating data-binding and TDD (test-driven-development) with Glimmer following the MVP pattern (Model-View-Presenter).
3223
+ [<img alt="Glimmer Calculator Icon" src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-calculator/master/glimmer-cs-calculator-icon.png" height=40 /> Glimmer Calculator](https://github.com/AndyObtiva/glimmer-cs-calculator) is a basic calculator sample app demonstrating data-binding and TDD (test-driven-development) with Glimmer following the MVP pattern (Model-View-Presenter).
3146
3224
 
3147
3225
  [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-calculator/master/glimmer-cs-calculator-screenshot.png" />](https://github.com/AndyObtiva/glimmer-cs-calculator)
3148
3226
 
@@ -3163,6 +3241,12 @@ Gladiator is a good demonstration of:
3163
3241
  - Custom Shell
3164
3242
  - Custom widget
3165
3243
 
3244
+ #### Timer
3245
+
3246
+ [<img alt="Glimmer Timer Icon" src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-timer/master/images/glimmer-timer-logo.png" height=40 /> Timer](https://github.com/AndyObtiva/glimmer-cs-timer) is a sample app demonstrating data-binding and multi-threading in a desktop application.
3247
+
3248
+ [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-timer/master/glimmer-timer-screenshot.png" />](https://github.com/AndyObtiva/glimmer-cs-timer)
3249
+
3166
3250
  ## In Production
3167
3251
 
3168
3252
  The following production apps have been built with Glimmer.
@@ -3183,39 +3267,43 @@ If you have a Glimmer app you would like referenced here, please mention in a Pu
3183
3267
 
3184
3268
  ## Packaging & Distribution
3185
3269
 
3186
- Glimmer apps may be packaged and distributed on the Mac, Windows, and Linux via these tools:
3187
- - Warbler (https://github.com/jruby/warbler): Enables bundling a Glimmer app into a JAR file
3188
- - javapackager (https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html): Enables packaging a JAR file as a DMG/PKG/APP file on Mac, MSI/EXE on Windows, and DEB/RPM on Linux.
3189
-
3190
- Glimmer simplifies the process of Mac and Windows packaging via the `glimmer package` command:
3270
+ Glimmer simplifies the process of native-executable packaging and distribution on Mac and Windows via a single `glimmer package` command:
3191
3271
 
3192
3272
  ```
3193
3273
  glimmer package
3194
3274
  ```
3195
3275
 
3196
- It works out of the box for any application generated by [Glimmer Scaffolding](#scaffolding).
3276
+ It works out of the box for any application scaffolded by [Glimmer Scaffolding](#scaffolding), generating all available packaging types on the current platform (e.g. `DMG`, `PKG`, `APP` on the Mac) and displaying a message indicating what pre-requisite setup tools are needed if not installed already (e.g. [Wix Toolset](https://wixtoolset.org/) to generate MSI files on Windows)
3277
+
3278
+ You may choose to generate a specific type of packaging instead by addionally passing in the `[type]` option. For example, this generates an MSI setup file on Windows:
3279
+
3280
+ ```
3281
+ glimmer package[msi]
3282
+ ```
3283
+
3284
+ - Available Mac packaging types are `dmg`, `pkg`, and `image` (image means a pure Mac `app` without a setup program)
3285
+ - Available Windows packaging types are `msi`, `exe`, and `image` (image means a Windows application directory without a setup program). Learn more about Windows packaging are [over here](#windows-application-packaging).
3197
3286
 
3198
- Otherwise, if you are using Glimmer manually, to make the `glimmer package` command available, you must add the following line to your application `Rakefile`:
3287
+ Note: if you are using Glimmer manually, to make the `glimmer package` command available, you must add the following line to your application `Rakefile` (automatically done for you if you scaffold an app or gem with `glimmer scaffold[AppName]` or `glimmer scaffold:gem:customshell[GemName]`):
3199
3288
 
3200
3289
  ```ruby
3201
3290
  require 'glimmer/rake_task'
3202
3291
  ```
3203
3292
 
3204
- This will automatically generate a JAR file under `./dist` directory using Warbler, which is then used to automatically generate a DMG file (and pkg/app) under `./packages/bundles` using `javapackager`.
3205
- JAR file name will match your application local directory name (e.g. `MathBowling.jar` for `~/code/MathBowling`)
3206
- DMG file name will match the humanized local directory name + dash + application version (e.g. `Math Bowling-1.0.dmg` for `~/code/MathBowling` with version 1.0 or unspecified)
3293
+ The Glimmer packaging process done in the `glimmer package` command consists of the following steps:
3294
+ 1. Generate gemspec via Jeweler (`rake gemspec:generate`): Having a gemspec is required by the [`jar-dependencies`](https://github.com/mkristian/jar-dependencies) JRuby gem, used by JRuby libraries to declare JAR dependencies.
3295
+ 1. Lock JAR versions (`glimmer package:lock_jars`): This locks versions of JAR dependencies leveraged by the `jar-dependencies` JRuby gem, downloading them into the `./vendor` directory so they would get inside the top-level Glimmer app/gem JAR file.
3296
+ 1. Generate [Warbler](https://github.com/jruby/warbler) config (`glimmer package:config`): Generates initial Warbler config file (under `./config/warble.rb`) to use for generating JAR file.
3297
+ 1. Generate JAR file using [Warbler](https://github.com/jruby/warbler) (`glimmer package:jar`): Enables bundling a Glimmer app into a JAR file under the `./dist` directory
3298
+ 1. Generate native executable using [javapackager](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html) (`glimmer package:native`): Enables packaging a JAR file as a DMG/PKG/APP file on Mac, MSI/EXE/APP on Windows, and DEB/RPM/APP on Linux (Glimmer does not officially support Linux with the `glimmer package` command yet, but it generates the JAR file successfully, and you could use `javapackager` manually afterwards if needed).
3299
+
3300
+ Those steps automatically ensure generating a JAR file under the `./dist` directory using [Warbler](https://github.com/jruby/warbler), which is then used to automatically generate a DMG/MSI file (and other executables) under the `./packages/bundles` directory using `javapackager`.
3301
+ The JAR file name will match your application local directory name (e.g. `MathBowling.jar` for `~/code/MathBowling`)
3302
+ The DMG file name will match the humanized local directory name + dash + application version (e.g. `Math Bowling-1.0.dmg` for `~/code/MathBowling` with version 1.0 or unspecified)
3207
3303
 
3208
3304
  The `glimmer package` command will automatically set "mac.CFBundleIdentifier" to ="org.#{project_name}.application.#{project_name}".
3209
3305
  You may override by configuring as an extra argument for javapackger (e.g. Glimmer::Package.javapackager_extra_args = " -Bmac.CFBundleIdentifier=org.andymaleh.application.MathBowling")
3210
3306
 
3211
- You may choose to generate a specific type of packaging by passing the `[type]` option:
3212
-
3213
- ```
3214
- glimmer package[msi]
3215
- ```
3216
-
3217
- That generates an MSI file on Windows (could specify exe or image as alternatives on Windows).
3218
-
3219
3307
  ### Packaging Defaults
3220
3308
 
3221
3309
  Glimmer employs smart defaults in packaging.
@@ -3279,7 +3367,7 @@ That overrides the default application display name.
3279
3367
  ### Windows Application Packaging
3280
3368
 
3281
3369
  Windows offers two options for setup packaging:
3282
- - `msi` (recommended): simpler packaging option. Requires [WiX Toolset](https://wixtoolset.org/) and [.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework). Simply run `glimmer package[msi]` (or `glimmer package:native[msi]` if it's not your first time) and it will tell you what you need to install including which version of .NET Framework it needs.
3370
+ - `msi` (recommended): simpler packaging option. Requires [WiX Toolset](https://wixtoolset.org/) and [.NET Framework](https://dotnet.microsoft.com/download/dotnet-framework). Simply run `glimmer package[msi]` (or `glimmer package:native[msi]` if it's not your first time) and it will give you more details on the pre-requisites you need to install (e.g. [WiX Toolset](https://wixtoolset.org/) and [.NET Framework 3.5 SP1](https://dotnet.microsoft.com/download/dotnet-framework/net35-sp1)).
3283
3371
  - `exe`: more advanced packaging option. Requires [Inno Setup](https://jrsoftware.org/isinfo.php). Simply run `glimmer package[exe]` (or `glimmer package:native[exe]` if it's not your first time) and it will tell you what you need to install.
3284
3372
 
3285
3373
  If you just want to test out packaging into a native Windows app that is not packaged for Windows setup, just pass `image` to generate a native Windows app only.
@@ -3353,6 +3441,25 @@ Exec failed with code 2 command [[/usr/bin/SetFile, -c, icnC, /var/folders/4_/g1
3353
3441
 
3354
3442
  Glimmer already supports automatic (and manual) app updates via the Mac App Store for Mac apps. Simply run the `glimmer package` command with the Mac App Store keys configured as per [Mac Application Distribution](mac-application-distribution) instructions and you get automatic (and manual) app update support courtesy of the Mac App Store.
3355
3443
 
3444
+ ## Glimmer Supporting Libraries
3445
+
3446
+ Here is a list of notable 3rd party gems used by Glimmer:
3447
+ - [jeweler](https://github.com/technicalpickles/jeweler): generates app gems during [Glimmer Scaffolding](#scaffolding)
3448
+ - [logging](https://github.com/TwP/logging): provides extra logging capabilities not available in Ruby Logger such as multi-threaded buffered asynchronous logging (to avoid affecting app performance) and support for multiple appenders such as stdout, syslog, and log files (the last one is needed on Windows where syslog is not supported)
3449
+ - [nested_inherited_jruby_include_package](https://github.com/AndyObtiva/nested_inherited_jruby_include_package): makes included [SWT](https://www.eclipse.org/swt/)/[Java](https://www.java.com/en/) packages available to all classes/modules that mix in the Glimmer module without having to manually reimport
3450
+ - [os](https://github.com/rdp/os): provides OS detection capabilities (e.g. `OS.mac?` or `OS.windows?`) to write cross-platform code inexpensively
3451
+ - [puts_debuggerer](https://github.com/AndyObtiva/puts_debuggerer): helps in troubleshooting when adding `require 'pd'` and using the `pd` command instead of `puts` or `p` (also `#pd_inspect` or `#pdi` instead of `#inspect`)
3452
+ - [rake](https://github.com/ruby/rake): used to implement and execute `glimmer` commands
3453
+ - [super_module](https://github.com/AndyObtiva/super_module): used to cleanly write the Glimmer::UI:CustomWidget and Glimmer::UI::CustomShell modules
3454
+ - [text-table](https://github.com/aptinio/text-table): renders textual data in a textual table for the command-line interface of Glimmer
3455
+ - [warbler](https://github.com/jruby/warbler): converts a Glimmer app into a Java JAR file during packaging
3456
+
3457
+ ## Glimmer Process
3458
+
3459
+ [Glimmer Process](PROCESS.md) is the lightweight software development process used for building Glimmer libraries and Glimmer apps, which goes beyond Agile, rendering all Agile processes obsolete. [Glimmer Process](PROCESS.md) is simply made up of 7 guidelines to pick and choose as necessary until software development needs are satisfied.
3460
+
3461
+ Learn more by reading the [GPG](PROCESS.md) (Glimmer Process Guidelines)
3462
+
3356
3463
  ## Resources
3357
3464
 
3358
3465
  * [Code Master Blog](http://andymaleh.blogspot.com/search/label/Glimmer)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.2
1
+ 0.10.3
@@ -34,7 +34,12 @@ module Glimmer
34
34
 
35
35
  def reset_logger!
36
36
  self.logger = Logger.new(STDOUT).tap do |logger|
37
- logger.level = ENV['GLIMMER_LOGGER_LEVEL'] ? ENV['GLIMMER_LOGGER_LEVEL'].downcase : Logger::ERROR
37
+ logger.level = Logger::ERROR
38
+ begin
39
+ logger.level = ENV['GLIMMER_LOGGER_LEVEL'].strip.downcase if ENV['GLIMMER_LOGGER_LEVEL']
40
+ rescue => e
41
+ puts e.message
42
+ end
38
43
  end
39
44
  end
40
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-20 00:00:00.000000000 Z
11
+ date: 2020-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -83,7 +83,7 @@ dependencies:
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: 0.8.1
86
+ version: 0.10.0
87
87
  name: puts_debuggerer
88
88
  type: :development
89
89
  prerelease: false
@@ -91,7 +91,7 @@ dependencies:
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: 0.8.1
94
+ version: 0.10.0
95
95
  - !ruby/object:Gem::Dependency
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  requirements: