glimmer 0.10.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +361 -0
- data/CONTRIBUTING.md +62 -0
- data/LICENSE.txt +1 -1
- data/PROCESS.md +35 -0
- data/README.md +465 -3527
- data/VERSION +1 -1
- data/lib/glimmer.rb +21 -5
- data/lib/glimmer/config.rb +21 -0
- data/lib/glimmer/data_binding/model_binding.rb +37 -27
- data/lib/glimmer/data_binding/observable.rb +21 -0
- data/lib/glimmer/data_binding/observable_array.rb +35 -39
- data/lib/glimmer/data_binding/observable_model.rb +42 -21
- data/lib/glimmer/data_binding/observer.rb +21 -0
- data/lib/glimmer/dsl/engine.rb +66 -58
- data/lib/glimmer/dsl/expression.rb +21 -0
- data/lib/glimmer/dsl/expression_handler.rb +21 -0
- data/lib/glimmer/dsl/parent_expression.rb +21 -0
- data/lib/glimmer/dsl/static_expression.rb +21 -0
- data/lib/glimmer/dsl/top_level_expression.rb +21 -0
- data/lib/glimmer/error.rb +21 -0
- data/lib/glimmer/invalid_keyword_error.rb +21 -0
- metadata +23 -17
- data/lib/glimmer/excluded_keyword_error.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b0649c15df47ea25dfacee159d334e1ba296468477d9e46229fbb99d73725e4
|
4
|
+
data.tar.gz: 52b2d756a2d8c24cc2fa1f6072a4084d87d8c08198183159ef31ddb5b105634d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 697d512b1ed187adf8a385fbaf6b7b5f21ae9a96a2896f08e3a718839adc0af0c6fac93aa2fb2ecc5f6c84e898b6e3ce1caf264e2b095d6de71a1a3ed96699c3
|
7
|
+
data.tar.gz: b9a8fb00ada502c70b4b9d6401596807ad2a881b6926b9150c6f29ca7f687e1eee824f88ee1fb99dae845e338d2a92fdde0c388ec8366a83e724efe6a4d20b45
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,361 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
Related Change Logs:
|
4
|
+
- [glimmer-dsl-swt/CHANGELOG.md](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/CHANGELOG.md)
|
5
|
+
|
6
|
+
## 1.0.0
|
7
|
+
|
8
|
+
- Code/Documentation preparation for version 1.0.0
|
9
|
+
|
10
|
+
## 0.10.4
|
11
|
+
|
12
|
+
- Support Glimmer::Config.log_excluded_keywords option for whether or not to log keywords that are excluded by Glimmer::Config.excluded_keyword_checkers
|
13
|
+
|
14
|
+
## 0.10.3
|
15
|
+
|
16
|
+
- Made Glimmer::Config module more resilient to invalid logger level values set via GLIMMER_LOGGER_LEVEL env var
|
17
|
+
|
18
|
+
## 0.10.2
|
19
|
+
|
20
|
+
- Added observer notification support for all Array mutation methods in ObservableArray (e.g. `delete_if`, `select!`, `uniq!`, `collect!`, etc...)
|
21
|
+
|
22
|
+
## 0.10.1
|
23
|
+
|
24
|
+
- excluded_keyword_checkers option for filtering certain keywords from Glimmer DSL processing
|
25
|
+
- Updates to logging levels to be more appropriate
|
26
|
+
- Fixed an issue to avoid crashing when calling observer.unregister/unobserve on a non-observable
|
27
|
+
|
28
|
+
## 0.10.0
|
29
|
+
|
30
|
+
- Remove Glimmer::Config.enable_logging method
|
31
|
+
- Refactor Glimmer config logger and reset level to error
|
32
|
+
- Update all logger calls to lazy blocks
|
33
|
+
|
34
|
+
## 0.9.5
|
35
|
+
|
36
|
+
- Removed resetting of DSL Engine upon encountering an exception as it is not needed and sometimes causes the wrong behavior
|
37
|
+
|
38
|
+
## 0.9.4
|
39
|
+
|
40
|
+
- Fix issue with observing attributes on classes directly instead of their objects
|
41
|
+
|
42
|
+
## 0.9.3
|
43
|
+
|
44
|
+
- Add infinite loop detection support to avoid infinite loops (breaks after 100 repetitions)
|
45
|
+
- Add Glimmer::Config option to specify loop max limit or disable completely
|
46
|
+
- ExcludedKeywordError with no logging for excluded keywords such as `to_a` and `to_h`
|
47
|
+
|
48
|
+
## 0.9.2
|
49
|
+
|
50
|
+
- Extracted common model data-binding classes from glimmer-dsl-swt
|
51
|
+
|
52
|
+
## 0.9.1
|
53
|
+
|
54
|
+
- Display error message if Glimmer DSL was invoked without any configured DSLs
|
55
|
+
|
56
|
+
## 0.9.0
|
57
|
+
|
58
|
+
- Extracted Glimmer DSL for SWT into glimmer-dsl-swt gem
|
59
|
+
- Extracted Glimmer DSL for XML into glimmer-dsl-xml gem
|
60
|
+
- Extracted Glimmer DSL for CSS into glimmer-dsl-css gem
|
61
|
+
- Introduced Glimmer DSL for Opal in glimmer-dsl-swt gem
|
62
|
+
|
63
|
+
## 0.8.2
|
64
|
+
|
65
|
+
- `message_box` DSL keyword
|
66
|
+
- Table single/multi selection databinding
|
67
|
+
- Table cell editing databinding
|
68
|
+
- Enhance table listener events with table_item and column_index methods
|
69
|
+
- Fix `Glimmer::SWT::ShellProxy#pack_same_size` for Linux
|
70
|
+
|
71
|
+
## 0.8.1
|
72
|
+
|
73
|
+
- Fix Glimmer::SWT::ShellProxy#pack_same_size for Windows
|
74
|
+
|
75
|
+
## 0.8.0
|
76
|
+
|
77
|
+
- Delegate listeners for menu items (:cascade) encapsulated by menus (dropdown menus)
|
78
|
+
- Make custom widget option method receive "default: hash key" instead of 2nd argument (adjusting scaffolding accordingly)
|
79
|
+
- Move about/preferences menu listeners from ShellProxy to DisplayProxy where they truly belong (adjusting scaffolding accordingly)
|
80
|
+
|
81
|
+
## 0.7.8
|
82
|
+
|
83
|
+
- Fix verbiage for summary/description in scaffolding custom shell gems (change custom widget reference to custom shell)
|
84
|
+
- Scaffolding builds a proper binary for custom shell gems and includes it in executables in Rakefile
|
85
|
+
- Scaffolding adds about/preferences menu actions to apps/custom-shell-gems
|
86
|
+
- Make custom widget/shell options writable
|
87
|
+
- Support "dialog" Glimmer DSL keyword
|
88
|
+
|
89
|
+
## 0.7.7
|
90
|
+
|
91
|
+
- Fix issue with scaffolding apps with dash in their name
|
92
|
+
- Make scaffolded custom shells launchable as standalone apps (native executables) too
|
93
|
+
|
94
|
+
## 0.7.6
|
95
|
+
|
96
|
+
- Support text widget selection data-binding explicitly
|
97
|
+
- Make specs pass on Linux
|
98
|
+
- Maintain tree item expansion on data-binding related changes
|
99
|
+
- Make scaffolded apps launch from bin file not app file
|
100
|
+
|
101
|
+
## 0.7.5
|
102
|
+
|
103
|
+
- Make :virtual a default tree SWT style
|
104
|
+
- Support Tree selection databinding (just like List)
|
105
|
+
- Support built-in Tree editing (i.e. editing tree item text)
|
106
|
+
- Support unregistering widget listeners
|
107
|
+
- Added tab item proxy dispose method that automatically unsets/disposes tab item inner control before disposing tab item itself
|
108
|
+
|
109
|
+
## 0.7.4
|
110
|
+
|
111
|
+
- Have tree data-binding auto-embed models as tree item data
|
112
|
+
- TreeProxy#depth_first_search implementation
|
113
|
+
- Support read-only data-binding
|
114
|
+
|
115
|
+
## 0.7.3
|
116
|
+
|
117
|
+
- Fix issue with rake tasks getting included twice
|
118
|
+
- Fix pack_same_size for shell_proxy
|
119
|
+
- Add pack_same_size to widget_proxy similar to that of shell_proxy
|
120
|
+
|
121
|
+
## 0.7.2
|
122
|
+
|
123
|
+
- Fix issue with data binding a nested value with an on_read converter block not getting triggered if model value was nil
|
124
|
+
- Fix issue with glimmer command triggered rake tasks not honoring glimmer application local Rakefile settings
|
125
|
+
|
126
|
+
## 0.7.1
|
127
|
+
|
128
|
+
- Fix crash issue with data-binding widget properties that are not supported in both directions
|
129
|
+
- Fix issue with scaffolding gems not having the right name
|
130
|
+
- Fix display of rdoc gem message on every glimmer app run
|
131
|
+
- Fix issues in closing a shell in girb
|
132
|
+
- Fix issue with Glimmer not clearing DSL Engine parent stacks when DSL interpretation raises exception
|
133
|
+
- Fix freezing issue upon logging observables and raising observable errors by overriding inspect on Observable to avoid printing nested tree of observers
|
134
|
+
- Added validation for shell widget parentage (accepting a shell or nil) in shell expression
|
135
|
+
- Support bidirectional data-binding of menu item selection (e.g. radio menu item)
|
136
|
+
- Make shell auto-activate on show with 0.25 delay
|
137
|
+
|
138
|
+
## 0.7.0
|
139
|
+
|
140
|
+
- Expose `rake glimmer:package` rake task via `glimmer package` command
|
141
|
+
- Scaffold a Glimmer app: provide a standard structure for building a Glimmer app (models, views, and assets [images, videos, sounds])
|
142
|
+
- Scaffold a Glimmer custom shell
|
143
|
+
- Scaffold a Glimmer custom widget
|
144
|
+
- Scaffold a Glimmer custom widget gem
|
145
|
+
- Scaffold a Glimmer custom shell gem
|
146
|
+
- Extract Video widget into its own custom widget glimmer-video gem
|
147
|
+
- Extract Gladiator into its own custom shell glimmer-gladiator gem
|
148
|
+
- Support disable_dsl/enable_dsl/enabled_dsls=
|
149
|
+
- Minify CSS produced by CSS DSL
|
150
|
+
- Avoid using p in CSS DSL as it clashes with HTML p. Use pv instead (property value).
|
151
|
+
- Configure scaffold rspec_helper with glimmer-appropriate after block
|
152
|
+
- Move logger/import_swt_packages methods on Glimmer to Glimmer::Config
|
153
|
+
- Reorganize samples as hello and elaborate inside samples directory
|
154
|
+
|
155
|
+
## 0.6.0
|
156
|
+
|
157
|
+
- Added multi-DSL support back to Glimmer
|
158
|
+
- Glimmer XML (HTML) DSL
|
159
|
+
- Glimmer CSS DSL
|
160
|
+
- Support mixing DSLs (e.g. SWT browser widget that has an XML text)
|
161
|
+
- Fixed Gladiator issue with not saving on quit
|
162
|
+
- Made color, rgb, and rgba SWT DSL static expressions instead of dynamic
|
163
|
+
|
164
|
+
## 0.5.11
|
165
|
+
|
166
|
+
- Added file and url attribute writers to `video` widget
|
167
|
+
- Fix Gladiator issue with empty replace text field
|
168
|
+
- Fix Gladiator issue with opening empty file
|
169
|
+
- Support picking up VERSION and LICENSE.txt files in glimmer:package rake task
|
170
|
+
- Update packaging to build app DMG file with humanized name (having spaces for multiple words) and to autoset a default mac bundle ID
|
171
|
+
|
172
|
+
## 0.5.10
|
173
|
+
|
174
|
+
- Fix video widget scrolling bar appearing issue
|
175
|
+
- Ensure on_about/on_preferences menu items are ignored on Windows
|
176
|
+
- Support SWT negative symbols postfixed by exclamation mark (e.g. :max! for no :max)
|
177
|
+
- Fix a bug in girb that made it not start anymore
|
178
|
+
- Fix a bug in Gladiator when jumping to line before a caret has been set
|
179
|
+
|
180
|
+
## 0.5.9
|
181
|
+
|
182
|
+
- Allow discovery of custom widgets without namespace if there are no existing classes with same name
|
183
|
+
- Add filters (global listeners) to SWT Display
|
184
|
+
- ShellProxy #pack and #pack_same_size methods
|
185
|
+
- Added Gladiator (Glimmer Editor) sample and command
|
186
|
+
|
187
|
+
## 0.5.8
|
188
|
+
|
189
|
+
- Support hooking into About and Preferences application menu items
|
190
|
+
- Support passing multiple SWT styles to a shell
|
191
|
+
|
192
|
+
## 0.5.7
|
193
|
+
|
194
|
+
- Make mixing Glimmer into a class enable Glimmer DSL in both class instance scope and singleton class scope
|
195
|
+
- Remove app_name and app_version since they show up from plist file upon Mac packaging
|
196
|
+
- Change default packaged app name (shows up in top menu bar on Mac) to humanized form (e.g. MathBowling becomes Math Bowling)
|
197
|
+
- Provide README instructions and easy packaging options for signing apps (Glimmer::Package.javapackager_extra_args)
|
198
|
+
|
199
|
+
## 0.5.6
|
200
|
+
|
201
|
+
- Add `rake glimmer:package:config` command to generate JAR config file
|
202
|
+
- Enabling passing extra args to javapackager via `JAVAPACKAGER_EXTRA_ARGS="..." rake glimmer:package`
|
203
|
+
|
204
|
+
## 0.5.5
|
205
|
+
|
206
|
+
- shell widget args for SWT Display app name and app version
|
207
|
+
- Glimmer DSL colors lazy initialize and don't have an SWT Display object dependency anymore
|
208
|
+
- Glimmer DSL Menu/MenuItem support
|
209
|
+
|
210
|
+
## 0.5.4
|
211
|
+
|
212
|
+
- Support custom data-binding property converters for nested/index data-binding
|
213
|
+
- Add glimmer command --log-level option
|
214
|
+
- Add glimmer command env var support
|
215
|
+
- Improvements to video widget (new methods and events to listen to)
|
216
|
+
|
217
|
+
## 0.5.3
|
218
|
+
|
219
|
+
- Upgraded rake dependency to 10.1.0 to avoid conflicting dependencies
|
220
|
+
- Stopped disposing display upon closing a shell to allow reuse
|
221
|
+
- Support custom data-binding property converters
|
222
|
+
- Automatic re-packing of shell when layout or layout data is updated with data-binding
|
223
|
+
|
224
|
+
## 0.5.2
|
225
|
+
|
226
|
+
- Support publishing a Glimmer app for the Mac (package as dmg file)
|
227
|
+
- Fix background_image widget property support to accept files in a JAR file
|
228
|
+
- Fix video widget support to accept files in a JAR file
|
229
|
+
|
230
|
+
## 0.5.0
|
231
|
+
|
232
|
+
- Upgraded SWT to version 4.15
|
233
|
+
- Upgraded to JRuby 9.2.11.1
|
234
|
+
- Refurbished/refactored Glimmer code design and APIs getting a performance boost
|
235
|
+
- Scraped XML and multi-DSL support
|
236
|
+
- Renamed `#add_contents` to `#content`
|
237
|
+
- made it configurable to include SWT Packages or not
|
238
|
+
- Supported color keyword for standard colors
|
239
|
+
- Supported swt keyword for style
|
240
|
+
- Supported async_exec/sync_exec keywords in Glimmer DSL directly
|
241
|
+
- Changed "def body" to body { } in custom widget/shell
|
242
|
+
- Renamed commands to keywords in Glimmer
|
243
|
+
- Made Glimmer::Launcher automatically figure out dev mode when run as bin/glimmer locally
|
244
|
+
- Added LOAD_PATH explicitly
|
245
|
+
|
246
|
+
## 0.4.9
|
247
|
+
- Added `org.eclipse.swt.custom` to default list of Glimmer SWT packages
|
248
|
+
- Added Custom Shell
|
249
|
+
- Made shell `#open` method remember if it was already opened before yet hidden, and just show the shell
|
250
|
+
- Implement shell `#hide` method
|
251
|
+
- Alias shell `#open` as `#show`
|
252
|
+
- Support CustomWidget/CustomShell Custom Property Observers
|
253
|
+
- Support on_*** observers on WidgetProxy's directly
|
254
|
+
- Support on_event_*** observers for SWT.constant event listeners (like show and hide)
|
255
|
+
- Added widget focus listener and data-binding support
|
256
|
+
- Support Glimmer DSL observe keyword and make it return observer registration object to unregister later on (unobserve)
|
257
|
+
- Support CustomWidget before_body and after_body hooks
|
258
|
+
- Make Glimmer DSL block provide parent Glimmer object (not SWT widget) as block argument
|
259
|
+
- Give widgets/custom-widgets ability to add content (properties/nested widgets) after construction via `#content` method
|
260
|
+
- Update setBackgroundImage to take an image path string for convenience (instead of an SWT image)
|
261
|
+
|
262
|
+
## 0.4.8
|
263
|
+
- Video widget
|
264
|
+
- Girb fix to auto-include Glimmer
|
265
|
+
|
266
|
+
## 0.4.7
|
267
|
+
- Fixed issues with custom widget support working for custom table, custom combo, custom list, parent of layout/layout-data, and on_*** observers
|
268
|
+
- Support for custom attributes/observers on a custom widget
|
269
|
+
- Display error message when using tab item widget NOT under a tab folder
|
270
|
+
|
271
|
+
## 0.4.6
|
272
|
+
- Added SWT 4.14 library jars directly in project
|
273
|
+
|
274
|
+
## 0.4.5
|
275
|
+
- SWT Browser widget support
|
276
|
+
|
277
|
+
## 0.4.4
|
278
|
+
- Glimmer Custom Widget support
|
279
|
+
- Support --debug flag
|
280
|
+
|
281
|
+
## 0.4.3
|
282
|
+
- Provide an easy way to make windows non-resizable
|
283
|
+
- Shorten needed :color_xyz symbols for known widget color properties like background and foreground to :xyz
|
284
|
+
- Friendly error message for passing a bad widget property font style (not normal, bold, italic)
|
285
|
+
- Friendly error message for passing a bad SWT style in general
|
286
|
+
- Support a single computed data binding as a string (not array)
|
287
|
+
|
288
|
+
## 0.4.2
|
289
|
+
- Center window upon opening
|
290
|
+
- Set window minimum width (130) upon opening
|
291
|
+
- Accept SWT Shell constructor arguments
|
292
|
+
|
293
|
+
## 0.4.1
|
294
|
+
- SWT Layout DSL support
|
295
|
+
- SWT Layout Data DSL support
|
296
|
+
|
297
|
+
## 0.4.0
|
298
|
+
- Changed `BlockObserver` into `Observer.proc`
|
299
|
+
- Added `Observer#proc` to create simple block-based observers.
|
300
|
+
- Updated Observer API renaming `#update` to `#call`
|
301
|
+
- Renamed `R` prefixed classes (i.e. Ruby) to `G` prefixed classes (i.e. Glimmer) (e.g. `RWidget` becomes `WidgetProxy`)
|
302
|
+
- Namespaced all of Glimmer's classes and modules under `Glimmer`
|
303
|
+
- Added `display` Glimmer DSL keyword to instantiate an SWT Display
|
304
|
+
- Removed `String` and `Symbol` monkey-patching
|
305
|
+
- Accept standard color value passed to widget color properties as `String` or `Symbol`
|
306
|
+
|
307
|
+
## 0.3.5
|
308
|
+
- Added font support to Glimmer DSL via name/height/style hash
|
309
|
+
- Added SWTProxy to easily build SWT constants (e.g. SWTProxy[:border] is SWT::BORDER )
|
310
|
+
|
311
|
+
## 0.3.4
|
312
|
+
- Fixed color support/property converter support to work both in data-binding and in static property setting
|
313
|
+
|
314
|
+
## 0.3.3
|
315
|
+
- Added color support to Glimmer DSL (rgb, rgba, and :color_*)
|
316
|
+
|
317
|
+
## 0.3.2
|
318
|
+
- Automatically import SWT packages when including/extending Glimmer
|
319
|
+
- Automatically enhance objects as ObservableArray or ObservableModel when observing them
|
320
|
+
|
321
|
+
## 0.3.1
|
322
|
+
- Fixed issue related to unnecessary tracking of parents in Observer
|
323
|
+
|
324
|
+
## 0.3.0
|
325
|
+
- Automatic cleanup of observers upon updating values in data-binding (nested/indexed) or disposing a widget
|
326
|
+
- Change of APIs whereby Observer class is responsible for registering observers with observables on properties
|
327
|
+
|
328
|
+
## 0.2.5
|
329
|
+
- Register a property type converter for `visible` property in widget binding, to ensure converting to boolean before setting in SWT widget.
|
330
|
+
|
331
|
+
## 0.2.4
|
332
|
+
- Added nested indexed computed property data binding support (e.g. bind(person, 'addresses[0].street_count', computed_by: ['addresses[0].streets']))
|
333
|
+
|
334
|
+
## 0.2.3
|
335
|
+
- Fixed nested indexed property data binding support for indexed leaf property (e.g. bind(person, 'names[1]'))
|
336
|
+
|
337
|
+
## 0.2.2
|
338
|
+
- Added nested indexed property data binding support (e.g. bind(person, 'addresses[1].street'))
|
339
|
+
|
340
|
+
## 0.2.0
|
341
|
+
- Upgraded to JRuby 9.2.10.0
|
342
|
+
- Fixed support for Windows & Linux
|
343
|
+
- Removed need to download SWT by including directly in gem for all platforms
|
344
|
+
- Simplified usage of glimmer command by preloading glimmer and not requiring setup
|
345
|
+
|
346
|
+
## 0.1.11.SWT4.14
|
347
|
+
- Upgraded SWT to version 4.14
|
348
|
+
|
349
|
+
## 0.1.11.470
|
350
|
+
- Nested property data binding support
|
351
|
+
|
352
|
+
## 0.1.10.470
|
353
|
+
- Support Tree data-binding (one-way from model to tree)
|
354
|
+
|
355
|
+
## 0.1.8.470
|
356
|
+
- girb support
|
357
|
+
|
358
|
+
## 0.1.5.470
|
359
|
+
- Glimmer now uses a Ruby Logger in debug mode to provide helpful debugging information
|
360
|
+
- Glimmer has a smart new Ruby shell script for executing applications
|
361
|
+
- Glimmer now downloads swt.jar automatically when missing (e.g. 1st run) on Mac, Windows, and Linux, and for x86 and x86-64 CPU architectures.
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
Please follow [glimmer-dsl-swt/CONTRIBUTING.md](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/CONTRIBUTING.md) too.
|
4
|
+
|
5
|
+
## Pre-requisites
|
6
|
+
|
7
|
+
- MacOS
|
8
|
+
- Other pre-requisites mentioned in [README.md](https://github.com/AndyObtiva/glimmer/tree/master#pre-requisites)
|
9
|
+
|
10
|
+
## Machine Setup
|
11
|
+
|
12
|
+
Follow these steps, running mentioned commands in the terminal:
|
13
|
+
- Fork project repo
|
14
|
+
- Ensure pre-requisites installed (installing JRuby via RVM on the Mac)
|
15
|
+
- cd into project again to activate RVM glimmer gemset
|
16
|
+
- gem install bundler
|
17
|
+
- bundle
|
18
|
+
- rake # runs specs (ensure they finish successfully)
|
19
|
+
- Once done, open a pull request with master branch.
|
20
|
+
|
21
|
+
### rspec
|
22
|
+
|
23
|
+
`rake` or `rake spec` runs all specs.
|
24
|
+
|
25
|
+
To run a specific spec file, run:
|
26
|
+
```
|
27
|
+
rake SPEC=spec_file_path
|
28
|
+
```
|
29
|
+
|
30
|
+
To run a specific spec, run:
|
31
|
+
```
|
32
|
+
rake SPEC=spec_file_path:line_number
|
33
|
+
```
|
34
|
+
|
35
|
+
To display Glimmer debug information, add `GLIMMER_DEBUG=true`:
|
36
|
+
```
|
37
|
+
rake SPEC=spec_file_path:line_number GLIMMER_DEBUG=true
|
38
|
+
```
|
39
|
+
|
40
|
+
Note: make sure not to use the keyboard or mouse while tests are running since they bring up UI elements behind the scenes (invisible). This avoids fudging them and causing false test failures. If you get obscure failures related to focus of widgets, they are most likely false negatives. Just rerun the specs without touching the keyboard or mouse and they would pass if they are not really broken.
|
41
|
+
|
42
|
+
### build
|
43
|
+
|
44
|
+
`rake build` builds the Glimmer gem under the `pkg` directory.
|
45
|
+
|
46
|
+
### glimmer command
|
47
|
+
|
48
|
+
To run a glimmer sample, run local `bin/glimmer` command:
|
49
|
+
```
|
50
|
+
bin/glimmer samples/hello_world.rb
|
51
|
+
```
|
52
|
+
|
53
|
+
It will notify you that you are in development mode.
|
54
|
+
|
55
|
+
### girb command
|
56
|
+
|
57
|
+
To experiment with glimmer syntax using `girb`, run local `bin/girb`:
|
58
|
+
```
|
59
|
+
bin/girb
|
60
|
+
```
|
61
|
+
|
62
|
+
It will notify you that you are in development mode.
|
data/LICENSE.txt
CHANGED
data/PROCESS.md
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# Glimmer Process (Beyond Agile)
|
2
|
+
|
3
|
+
**Glimmer Process** is the lightweight software development process used for building [Glimmer](https://github.com/AndyObtiva/glimmer) libraries and [Glimmer](https://github.com/AndyObtiva/glimmer) apps, which goes beyond Agile, rendering all Agile processes obsolete. **Glimmer Process** is simply made up of 7 guidelines to pick and choose as necessary until software development needs are satisfied. Not all guidelines need to be incorporated into every project, but it is still important to think through every one of them before ruling any out. Guidelines can be followed in any order.
|
4
|
+
|
5
|
+
## GPG (Glimmer Process Guidelines):
|
6
|
+
- **Requirements Gathering**: Spend no more than a few hours writing the initial requirements you know from the business owner, gathering missing requirements, and planning to elicit more requirements from users, customers, and stakeholders. Requirements are not set in stone, but serve as a good starting point in understanding what a project is about. After initial release, only document small tasks going forward.
|
7
|
+
- **Software Architecture and Design Diagrams**: Perform software architecture and design activities as necessary by analyzing requirements and creating diagrams.
|
8
|
+
- **Initial Release Plan**: This guideline's motto is "Plans are Nothing. Planning is Everything" (said by Dwight D. Eisenhower) because the initial release plan is not set in stone and might change completely, but is still invaluable in launching a new project forward. Consider including alpha releases (for internal testing) and beta releases (for customer testing).
|
9
|
+
- **Small Releases**: Develop and release in small increments. Do not release more than 3-weeks worth of work, preferring releases that are shorter than a week worth of work whenever possible. Break releases down. If you need to support multiple platforms, release for a platform at a time. If a feature includes a number of other features, then release them one by one instead of all at once. If a feature involves multiple options, release the default version first, and then release extra options later.
|
10
|
+
- **Usability Testing**: Make sure to observe a user using your software the first few releases or when releasing critical brand new unproven features. Ask them to complete a list of goals using the software, but do not help them to complete them unless they get very stuck. Write down notes silently while observing them use your software. Once done with usability testing, you may then ask further questions about any of the notes you wrote down, and afterwards add the notes as feature enhancements and bug fixes. Implement them and then do another usability test with the improvements in place. Repeat as necessary only.
|
11
|
+
- **Automated Tests**: Cover sensitive parts of the code with automated tests at the appropriate level of testing needed. Run tests in a continuous integration server.
|
12
|
+
- **Refactoring**: Simplify code, eliminate code duplication, improve code organization, extract reusable components, and extract reusable libraries at every opportunity possible.
|
13
|
+
|
14
|
+
--
|
15
|
+
|
16
|
+
Copyright (c) 2020 Andy Maleh
|
17
|
+
|
18
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
19
|
+
a copy of this software and associated documentation files (the
|
20
|
+
"Software"), to deal in the Software without restriction, including
|
21
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
22
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
23
|
+
permit persons to whom the Software is furnished to do so, subject to
|
24
|
+
the following conditions:
|
25
|
+
|
26
|
+
The above copyright notice and this permission notice shall be
|
27
|
+
included in all copies or substantial portions of the Software.
|
28
|
+
|
29
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
30
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
31
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
32
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
33
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
34
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
35
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|