glimmer-dsl-opal 0.7.5 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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