Skip to content

Commit eb0226a

Browse files
committed
Fix an issue in ModelBinding#options_property_name that was breaking Glimmer DSL for SWT on Linux
1 parent 3dff058 commit eb0226a

File tree

5 files changed

+29
-25
lines changed

5 files changed

+29
-25
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
Related Change Logs:
44
- [glimmer-dsl-swt/CHANGELOG.md](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/CHANGELOG.md)
55

6+
### 2.8.1
7+
8+
- Fix an issue in `ModelBinding#options_property_name` that was breaking Glimmer DSL for SWT on Linux
9+
610
### 2.8.0
711

812
- Support ability to interpret multiple DSL expression hierarchies, by suspending interpretation of a hierarchy, interpreting another until done, and then resuming interpretation of previous hierarchy until done too. That is done by starting a new expression hierarchy interpretation using `Glimmer::DSL::Engine::new_parent_stack` in the middle of interpreting another expression hierarchy.

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 style="position: relative; top: 20px;" />](https://rubygems.org/gems/glimmer) Glimmer 2.8.0
1+
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 style="position: relative; top: 20px;" />](https://rubygems.org/gems/glimmer) Glimmer 2.8.1
22
## DSL Framework for Ruby GUI and More
33
[![Gem Version](https://badge.fury.io/rb/glimmer.svg)](http://badge.fury.io/rb/glimmer)
44
[![rspec](https://github.com/AndyObtiva/glimmer/workflows/rspec/badge.svg)](https://github.com/AndyObtiva/glimmer/actions?query=workflow%3Arspec)
@@ -10,7 +10,7 @@
1010

1111
**(Original Glimmer Library Handling World’s Ruby GUI Needs Since 2007. Beware of Imitators!)**
1212

13-
(**[Glimmer DSL for Web Won a Fukuoka Prefecture Future IT Initiative 2025 Money Forward Award](https://andymaleh.blogspot.com/2025/01/glimmer-dsl-for-web-wins-in-fukuoka.html)**)
13+
**([Fukuoka Prefecture Future IT Initiative 2025 Money Forward Award Winner](https://andymaleh.blogspot.com/2025/01/glimmer-dsl-for-web-wins-in-fukuoka.html)) [[Announcement]](https://digitalfukuoka.jp/news/info/528/)**
1414

1515
(**[Glimmer DSL for LibUI Won a Fukuoka Ruby 2022 Special Award](https://andymaleh.blogspot.com/2022/02/glimmer-dsl-for-libui-wins-fukuoka-ruby.html)** [[Announcement]](http://www.digitalfukuoka.jp/topics/187?locale=ja))
1616

@@ -42,7 +42,7 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an
4242
- Multiple DSLs may be [mixed](#multi-dsl-support) together safely to achieve maximum expressability, composability, and productivity.
4343
- DSLs are fully configurable, so you may activate and deactivate DSLs as per your current needs only.
4444

45-
Start by checking out:
45+
Start by checking out:
4646
- [Glimmer DSL for SWT](https://github.com/AndyObtiva/glimmer-dsl-swt), Glimmer's original GUI DSL (for [JRuby](https://www.jruby.org/)), which got extracted into its own [Ruby gem](https://rubygems.org/gems/glimmer-dsl-swt).
4747
- [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui), Glimmer's GUI DSL for standard [Ruby](https://www.ruby-lang.org/) (aka MRI Ruby or CRuby), which has no prerequisites beyond installing the [Ruby gem](https://rubygems.org/gems/glimmer-dsl-libui), and has won a [Fukuoka Ruby 2022 Special Award](https://andymaleh.blogspot.com/2022/02/glimmer-dsl-for-libui-wins-fukuoka-ruby.html).
4848
- [Glimmer DSL for Web](https://github.com/AndyObtiva/glimmer-dsl-web) enables using all the advanced data-binding features of Glimmer in Web Frontends by providing a Ruby HTML DSL and a Ruby CSS DSL.
@@ -270,7 +270,7 @@ end
270270
### Setup
271271

272272
Follow these steps to author a [Glimmer](https://rubygems.org/gems/glimmer) DSL:
273-
- Add `gem 'glimmer', '~> 2.8.0'` to `Gemfile` and run `bundle` or run `gem install glimmer -v2.8.0` and add `require 'glimmer'`
273+
- Add `gem 'glimmer', '~> 2.8.1'` to `Gemfile` and run `bundle` or run `gem install glimmer -v2.8.1` and add `require 'glimmer'`
274274
- Create `glimmer/dsl/[dsl_name]/dsl.rb`, which requires and adds all dynamic expressions for the [dsl_name] Glimmer DSL module as per the code shown in the previous section (or [Official DSLs](#official-dsls) as examples)
275275
- Create `glimmer/dsl/[dsl_name]/[expresion_name]_expresion.rb` for every [expresion_name] expression needed, whether dynamic or static
276276

@@ -1384,7 +1384,7 @@ Glimmer DSL for SWT was the first GUI DSL created as part of the Glimmer project
13841384

13851385
**What is the difference between Glimmer DSL for SWT and Glimmer DSL for LibUI?**
13861386

1387-
Both Glimmer DSL for SWT and Glimmer DSL for LibUI support rendering platform native widgets/controls, which enable building native desktop apps that look 100% native on every platform (Mac, Windows, and Linux).
1387+
Both Glimmer DSL for SWT and Glimmer DSL for LibUI support rendering platform native widgets/controls, which enable building native desktop apps that look 100% native on every platform (Mac, Windows, and Linux).
13881388

13891389
However, Glimmer DSL for SWT runs in JRuby (Ruby running in the JVM [Java Virtual Machine]) whereas Glimmer DSL for LibUI runs in standard Ruby (aka MRI Ruby or CRuby).
13901390

@@ -1402,7 +1402,7 @@ You may learn more about the differences between various Glimmer DSLs by checkin
14021402

14031403
**What is the difference between Glimmer DSL for SWT, Glimmer DSL for Swing, and Glimmer DSL for JFX?**
14041404

1405-
Glimmer DSL for SWT relies on the Eclipse SWT library, which renders native widgets on every platform (Mac, Windows, and Linux) to build desktop apps that look 100% native on every platform (Mac, Windows, and Linux).
1405+
Glimmer DSL for SWT relies on the Eclipse SWT library, which renders native widgets on every platform (Mac, Windows, and Linux) to build desktop apps that look 100% native on every platform (Mac, Windows, and Linux).
14061406

14071407
Glimmer DSL for Swing relies on Swing, which does not render native widgets on every platform. Glimmer DSL for JFX relies on JavaFX, which also does not render native widgets on every platform.
14081408

@@ -1416,7 +1416,7 @@ GUI Toolkits implement low-level GUI rendering concerns. And, while some of them
14161416

14171417
Glimmer GUI DSLs on the other hand are fully declarative and follow Rails' Convention Over Configuration maxim by including smart defaults and automation of low-level details, so they enable software engineers to write the simplest most minimalistic code that maps to the actual visual GUI concepts, maximizing productivity and resulting in code that is very maintainable and intuitive to reason about.
14181418

1419-
Furthermore, Glimmer GUI DSLs offer advanced Bidirectional/Unidirectional Data-Binding Support, which enables syncing View data with Model attributes with the tersest code syntax possible to greatly simplify reasoning about the code while supporting proper separation of concerns through correct adherence to MVC (Model-View-Controller) and MVP (Model-View-Presenter).
1419+
Furthermore, Glimmer GUI DSLs offer advanced Bidirectional/Unidirectional Data-Binding Support, which enables syncing View data with Model attributes with the tersest code syntax possible to greatly simplify reasoning about the code while supporting proper separation of concerns through correct adherence to MVC (Model-View-Controller) and MVP (Model-View-Presenter).
14201420

14211421
That's in addition to scaffolding and native executable packaging in some Glimmer GUI DSLs. As a result, productivity increases even further and maintainability becomes even less expensive, thus enabling software engineers to deliver pieces of software in a matter of minutes or hours for desktop application MVPs (Minimal Viable Products). As such, Glimmer GUI DSLs significantly shorten the feedback cycle and enable incrementally releasing features at a very fast pace, not possible with GUI toolkit low-level APIs.
14221422

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.8.0
1+
2.8.1

glimmer.gemspec

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
# DO NOT EDIT THIS FILE DIRECTLY
33
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
44
# -*- encoding: utf-8 -*-
5-
# stub: glimmer 2.8.0 ruby lib
5+
# stub: glimmer 2.8.1 ruby lib
66

77
Gem::Specification.new do |s|
88
s.name = "glimmer".freeze
9-
s.version = "2.8.0"
9+
s.version = "2.8.1".freeze
1010

1111
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
1212
s.require_paths = ["lib".freeze]
1313
s.authors = ["AndyMaleh".freeze]
14-
s.date = "2024-07-14"
14+
s.date = "2025-03-21"
1515
s.description = "Glimmer is a Ruby DSL Framework for Ruby GUI and More, consisting of a DSL Engine and a Data-Binding Library (including Observer Design Pattern, Observable Model, Observable Array, and Observable Hash). Used in Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), Glimmer DSL for Web (Ruby in the Browser Web Frontend Framework), Glimmer DSL for LibUI (Prerequisite-Free Ruby Desktop Development GUI Library and Winner of Fukuoka Ruby Award Competition 2022 Special Award), Glimmer DSL for Tk (Ruby Tk Desktop Development GUI Library), Glimmer DSL for GTK (Ruby-GNOME Desktop Development GUI Library), Glimmer DSL for FX (FOX Toolkit Ruby Desktop Development GUI Library), Glimmer DSL for WX (wxWidgets Ruby Desktop Development GUI Library), Glimmer DSL for Swing (JRuby Swing Desktop Development GUI Library), Glimmer DSL for JFX (JRuby JavaFX Desktop Development GUI Library), Glimmer DSL for XML (& HTML), and Glimmer DSL for CSS.".freeze
1616
s.email = "andy.am@gmail.com".freeze
1717
s.extra_rdoc_files = [
@@ -53,22 +53,22 @@ Gem::Specification.new do |s|
5353
]
5454
s.homepage = "http://github.com/AndyObtiva/glimmer".freeze
5555
s.licenses = ["MIT".freeze]
56-
s.rubygems_version = "3.4.10".freeze
56+
s.rubygems_version = "3.6.2".freeze
5757
s.summary = "Glimmer (DSL Framework for Ruby GUI and More)".freeze
5858

5959
s.specification_version = 4
6060

61-
s.add_runtime_dependency(%q<array_include_methods>.freeze, [">= 1.4.0", "< 1.6.0"])
62-
s.add_runtime_dependency(%q<facets>.freeze, [">= 3.1.0", "< 4.0.0"])
63-
s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
64-
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
65-
s.add_development_dependency(%q<puts_debuggerer>.freeze, [">= 1.0.1"])
66-
s.add_development_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
67-
s.add_development_dependency(%q<jeweler>.freeze, [">= 2.0.0", "< 3.0.0"])
68-
s.add_development_dependency(%q<rdoc>.freeze, [">= 6.2.1", "< 7.0.0"])
69-
s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
70-
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
71-
s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
72-
s.add_development_dependency(%q<rake-tui>.freeze, ["> 0"])
61+
s.add_runtime_dependency(%q<array_include_methods>.freeze, [">= 1.4.0".freeze, "< 1.6.0".freeze])
62+
s.add_runtime_dependency(%q<facets>.freeze, [">= 3.1.0".freeze, "< 4.0.0".freeze])
63+
s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0".freeze])
64+
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0".freeze])
65+
s.add_development_dependency(%q<puts_debuggerer>.freeze, [">= 1.0.1".freeze])
66+
s.add_development_dependency(%q<rake>.freeze, [">= 10.1.0".freeze, "< 14.0.0".freeze])
67+
s.add_development_dependency(%q<jeweler>.freeze, [">= 2.0.0".freeze, "< 3.0.0".freeze])
68+
s.add_development_dependency(%q<rdoc>.freeze, [">= 6.2.1".freeze, "< 7.0.0".freeze])
69+
s.add_development_dependency(%q<coveralls>.freeze, [">= 0".freeze])
70+
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1".freeze])
71+
s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0".freeze])
72+
s.add_development_dependency(%q<rake-tui>.freeze, ["> 0".freeze])
7373
end
7474

lib/glimmer/data_binding/model_binding.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def evaluate_options_property
228228
end
229229

230230
def options_property_name
231-
self.property_name + "_options"
231+
"#{self.property_name}_options"
232232
end
233233

234234
def property_indexed?(property_expression)

0 commit comments

Comments
 (0)