glimmer-dsl-opal 0.7.5 → 0.9.3

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +756 -139
  4. data/VERSION +1 -1
  5. data/lib/glimmer-dsl-opal.rb +16 -4
  6. data/lib/glimmer-dsl-opal/ext/class.rb +10 -0
  7. data/lib/{file.rb → glimmer-dsl-opal/ext/file.rb} +0 -0
  8. data/lib/glimmer-dsl-opal/ext/glimmer/dsl/engine.rb +46 -0
  9. data/lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb +1 -1
  10. data/lib/glimmer-dsl-opal/samples/hello/hello_browser.rb +23 -0
  11. data/lib/glimmer-dsl-opal/samples/hello/hello_computed.rb +27 -0
  12. data/lib/glimmer-dsl-opal/samples/hello/hello_computed/contact.rb +21 -0
  13. data/lib/glimmer-dsl-opal/samples/hello/hello_list_multi_selection.rb +62 -32
  14. data/lib/glimmer-dsl-opal/samples/hello/hello_list_single_selection.rb +47 -22
  15. data/lib/glimmer-dsl-opal/samples/hello/hello_menu_bar.rb +241 -0
  16. data/lib/glimmer-dsl-opal/samples/hello/hello_message_box.rb +37 -0
  17. data/lib/glimmer-dsl-opal/samples/hello/hello_pop_up_context_menu.rb +84 -0
  18. data/lib/glimmer-dsl-opal/samples/hello/hello_world.rb +3 -3
  19. data/lib/glimmer/config/opal_logger.rb +16 -0
  20. data/lib/glimmer/data_binding/observable_element.rb +1 -1
  21. data/lib/glimmer/dsl/opal/custom_widget_expression.rb +1 -1
  22. data/lib/glimmer/dsl/opal/dsl.rb +2 -0
  23. data/lib/glimmer/dsl/opal/menu_bar_expression.rb +54 -0
  24. data/lib/glimmer/dsl/opal/menu_expression.rb +61 -0
  25. data/lib/glimmer/dsl/opal/shell_expression.rb +0 -4
  26. data/lib/glimmer/dsl/opal/widget_expression.rb +3 -2
  27. data/lib/glimmer/dsl/opal/widget_listener_expression.rb +2 -2
  28. data/lib/glimmer/swt/custom/checkbox_group.rb +2 -2
  29. data/lib/glimmer/swt/custom/radio_group.rb +2 -2
  30. data/lib/glimmer/swt/display_proxy.rb +4 -4
  31. data/lib/glimmer/swt/event_listener_proxy.rb +14 -4
  32. data/lib/glimmer/swt/grid_layout_proxy.rb +1 -0
  33. data/lib/glimmer/swt/label_proxy.rb +27 -3
  34. data/lib/{glimmer-dsl-opal/ext/struct.rb → glimmer/swt/latest_message_box_proxy.rb} +16 -11
  35. data/lib/glimmer/swt/latest_shell_proxy.rb +55 -0
  36. data/lib/glimmer/swt/list_proxy.rb +15 -0
  37. data/lib/glimmer/swt/menu_item_proxy.rb +174 -0
  38. data/lib/glimmer/swt/menu_proxy.rb +273 -0
  39. data/lib/glimmer/swt/message_box_proxy.rb +79 -63
  40. data/lib/glimmer/swt/property_owner.rb +2 -0
  41. data/lib/glimmer/swt/radio_proxy.rb +1 -1
  42. data/lib/glimmer/swt/shell_proxy.rb +34 -189
  43. data/lib/glimmer/swt/tab_folder_proxy.rb +43 -0
  44. data/lib/glimmer/swt/table_column_proxy.rb +3 -2
  45. data/lib/glimmer/swt/table_editor.rb +1 -1
  46. data/lib/glimmer/swt/table_item_proxy.rb +7 -5
  47. data/lib/glimmer/swt/table_proxy.rb +10 -0
  48. data/lib/glimmer/swt/widget_proxy.rb +325 -31
  49. data/lib/glimmer/ui/custom_shell.rb +2 -2
  50. data/lib/glimmer/ui/custom_widget.rb +3 -3
  51. data/lib/net/http.rb +30 -2
  52. metadata +45 -8
@@ -34,7 +34,7 @@ module Glimmer
34
34
  klass.include(Glimmer)
35
35
  Glimmer::UI::CustomWidget.add_custom_widget_namespaces_for(klass)
36
36
  keyword = klass.name.split(':').last.underscore
37
- `localStorage[#{keyword}] = #{$LOADED_FEATURES.last}`
37
+ LocalStorage[keyword] = $LOADED_FEATURES.last
38
38
  end
39
39
 
40
40
  def request_parameter_string
@@ -56,7 +56,7 @@ module Glimmer
56
56
 
57
57
  def initialize(parent, args, options, &content)
58
58
  super(parent, args, options, &content)
59
- raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.is_a?(Glimmer::SWT::ShellProxy) || body_root.is_a?(Glimmer::UI::CustomShell)
59
+ raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.is_a?(Glimmer::SWT::ShellProxy) || body_root.is_a?(Glimmer::UI::CustomShell) || body_root.is_a?(Glimmer::SWT::LatestShellProxy)
60
60
  end
61
61
 
62
62
  # Classes may override
@@ -187,13 +187,13 @@ module Glimmer
187
187
  result || body_root&.can_handle_observation_request?(observation_request)
188
188
  end
189
189
 
190
- def handle_observation_request(observation_request, &block)
190
+ def handle_observation_request(observation_request, block)
191
191
  observation_request = observation_request.to_s
192
192
  if observation_request.start_with?('on_updated_')
193
193
  property = observation_request.sub(/^on_updated_/, '') # TODO look into eliminating duplication from above
194
194
  add_observer(DataBinding::Observer.proc(&block), property) if can_add_observer?(property)
195
195
  else
196
- body_root.handle_observation_request(observation_request, &block)
196
+ body_root.handle_observation_request(observation_request, block)
197
197
  end
198
198
  end
199
199
 
@@ -267,7 +267,7 @@ module Glimmer
267
267
 
268
268
  def method_missing(method, *args, &block)
269
269
  if can_handle_observation_request?(method)
270
- handle_observation_request(method, &block)
270
+ handle_observation_request(method, block)
271
271
  else
272
272
  body_root.send(method, *args, &block)
273
273
  end
@@ -1,13 +1,41 @@
1
+ # Copyright (c) 2020 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
+
1
22
  # Missing Net module class methods TODO implement
2
23
 
3
24
  require_relative '../uri'
4
25
 
5
26
  module Net
6
27
  # TODO Implement HTTP with jQuery for use in Glimmer DSL for Opal
28
+ # TODO Re-Implement in Fetch in the future
7
29
  # Note: ignore Protocol superclass for now
8
30
  class HTTP
9
- def post_form(uri, params)
10
- # TODO
31
+ class << self
32
+ def post_form(uri, params)
33
+ response_body = nil
34
+ result = ::HTTP.post(uri, payload: params) do |response|
35
+ response_body = response.body
36
+ end
37
+ response_body
38
+ end
11
39
  end
12
40
  end
13
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.9.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-12-10 00:00:00.000000000 Z
11
+ date: 2021-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -70,16 +70,42 @@ dependencies:
70
70
  name: to_collection
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.0.1
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: 3.0.0
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
- - - "~>"
83
+ - - ">="
81
84
  - !ruby/object:Gem::Version
82
85
  version: 2.0.1
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 3.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: pure-struct
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.0.1
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: 2.0.0
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 1.0.1
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: 2.0.0
83
109
  - !ruby/object:Gem::Dependency
84
110
  name: puts_debuggerer
85
111
  requirement: !ruby/object:Gem::Requirement
@@ -210,8 +236,8 @@ dependencies:
210
236
  - - "~>"
211
237
  - !ruby/object:Gem::Version
212
238
  version: 0.4.4
213
- description: Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop
214
- Apps Running via Opal on Rails)
239
+ description: Glimmer DSL for Opal on Rails (Pure Ruby Web GUI and Auto-Webifier of
240
+ Desktop Apps)
215
241
  email: andy.am@gmail.com
216
242
  executables: []
217
243
  extensions: []
@@ -238,11 +264,12 @@ files:
238
264
  - app/assets/stylesheets/glimmer/jquery-ui.theme.css
239
265
  - app/assets/stylesheets/glimmer/jquery.ui.timepicker.css
240
266
  - lib/display.rb
241
- - lib/file.rb
242
267
  - lib/glimmer-dsl-opal.rb
268
+ - lib/glimmer-dsl-opal/ext/class.rb
243
269
  - lib/glimmer-dsl-opal/ext/date.rb
244
270
  - lib/glimmer-dsl-opal/ext/exception.rb
245
- - lib/glimmer-dsl-opal/ext/struct.rb
271
+ - lib/glimmer-dsl-opal/ext/file.rb
272
+ - lib/glimmer-dsl-opal/ext/glimmer/dsl/engine.rb
246
273
  - lib/glimmer-dsl-opal/samples/elaborate/contact_manager.rb
247
274
  - lib/glimmer-dsl-opal/samples/elaborate/contact_manager/contact.rb
248
275
  - lib/glimmer-dsl-opal/samples/elaborate/contact_manager/contact_manager_presenter.rb
@@ -264,6 +291,9 @@ files:
264
291
  - lib/glimmer-dsl-opal/samples/hello/hello_group.rb
265
292
  - lib/glimmer-dsl-opal/samples/hello/hello_list_multi_selection.rb
266
293
  - lib/glimmer-dsl-opal/samples/hello/hello_list_single_selection.rb
294
+ - lib/glimmer-dsl-opal/samples/hello/hello_menu_bar.rb
295
+ - lib/glimmer-dsl-opal/samples/hello/hello_message_box.rb
296
+ - lib/glimmer-dsl-opal/samples/hello/hello_pop_up_context_menu.rb
267
297
  - lib/glimmer-dsl-opal/samples/hello/hello_radio.rb
268
298
  - lib/glimmer-dsl-opal/samples/hello/hello_radio_group.rb
269
299
  - lib/glimmer-dsl-opal/samples/hello/hello_tab.rb
@@ -288,6 +318,7 @@ files:
288
318
  - lib/glimmer-dsl-opal/vendor/jquery-ui/package.json
289
319
  - lib/glimmer-dsl-opal/vendor/jquery.js
290
320
  - lib/glimmer-dsl-swt.rb
321
+ - lib/glimmer/config/opal_logger.rb
291
322
  - lib/glimmer/data_binding/element_binding.rb
292
323
  - lib/glimmer/data_binding/list_selection_binding.rb
293
324
  - lib/glimmer/data_binding/observable_element.rb
@@ -308,6 +339,8 @@ files:
308
339
  - lib/glimmer/dsl/opal/layout_data_expression.rb
309
340
  - lib/glimmer/dsl/opal/layout_expression.rb
310
341
  - lib/glimmer/dsl/opal/list_selection_data_binding_expression.rb
342
+ - lib/glimmer/dsl/opal/menu_bar_expression.rb
343
+ - lib/glimmer/dsl/opal/menu_expression.rb
311
344
  - lib/glimmer/dsl/opal/message_box_expression.rb
312
345
  - lib/glimmer/dsl/opal/observe_expression.rb
313
346
  - lib/glimmer/dsl/opal/property_expression.rb
@@ -341,10 +374,14 @@ files:
341
374
  - lib/glimmer/swt/grid_layout_proxy.rb
342
375
  - lib/glimmer/swt/group_proxy.rb
343
376
  - lib/glimmer/swt/label_proxy.rb
377
+ - lib/glimmer/swt/latest_message_box_proxy.rb
378
+ - lib/glimmer/swt/latest_shell_proxy.rb
344
379
  - lib/glimmer/swt/layout_data_proxy.rb
345
380
  - lib/glimmer/swt/layout_proxy.rb
346
381
  - lib/glimmer/swt/list_proxy.rb
347
382
  - lib/glimmer/swt/make_shift_shell_proxy.rb
383
+ - lib/glimmer/swt/menu_item_proxy.rb
384
+ - lib/glimmer/swt/menu_proxy.rb
348
385
  - lib/glimmer/swt/message_box_proxy.rb
349
386
  - lib/glimmer/swt/point.rb
350
387
  - lib/glimmer/swt/property_owner.rb