glimmer-dsl-opal 0.10.3 → 0.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +257 -0
  3. data/README.md +188 -1300
  4. data/VERSION +1 -1
  5. data/app/controllers/glimmer/application_controller.rb +4 -0
  6. data/app/controllers/glimmer/image_paths_controller.rb +41 -0
  7. data/app/views/glimmer/image_paths/index.html.erb +1 -0
  8. data/{lib/glimmer-dsl-opal/samples/hello/hello_computed/contact.rb → config/routes.rb} +2 -20
  9. data/lib/display.rb +3 -0
  10. data/lib/glimmer-dsl-opal.rb +8 -3
  11. data/lib/glimmer-dsl-opal/ext/file.rb +31 -0
  12. data/lib/glimmer-dsl-opal/ext/glimmer/dsl/engine.rb +1 -1
  13. data/lib/glimmer-dsl-opal/samples/elaborate/contact_manager.rb +15 -13
  14. data/lib/glimmer-dsl-opal/samples/elaborate/login.rb +55 -28
  15. data/lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb +2 -2
  16. data/lib/glimmer-dsl-opal/samples/elaborate/weather.rb +157 -0
  17. data/lib/glimmer-dsl-opal/samples/hello/hello_button.rb +8 -8
  18. data/lib/glimmer-dsl-opal/samples/hello/hello_checkbox.rb +16 -14
  19. data/lib/glimmer-dsl-opal/samples/hello/hello_checkbox_group.rb +14 -9
  20. data/lib/glimmer-dsl-opal/samples/hello/hello_combo.rb +24 -22
  21. data/lib/glimmer-dsl-opal/samples/hello/hello_computed.rb +32 -14
  22. data/lib/glimmer-dsl-opal/samples/hello/hello_custom_shell.rb +16 -12
  23. data/lib/glimmer-dsl-opal/samples/hello/hello_custom_widget.rb +1 -1
  24. data/lib/glimmer-dsl-opal/samples/hello/hello_date_time.rb +4 -4
  25. data/lib/glimmer-dsl-opal/samples/hello/hello_group.rb +6 -6
  26. data/lib/glimmer-dsl-opal/samples/hello/hello_list_multi_selection.rb +1 -1
  27. data/lib/glimmer-dsl-opal/samples/hello/hello_list_single_selection.rb +1 -1
  28. data/lib/glimmer-dsl-opal/samples/hello/hello_radio.rb +18 -16
  29. data/lib/glimmer-dsl-opal/samples/hello/hello_radio_group.rb +17 -12
  30. data/lib/glimmer-dsl-opal/samples/hello/hello_table.rb +31 -23
  31. data/lib/glimmer-dsl-opal/samples/hello/hello_table/baseball_park.png +0 -0
  32. data/lib/glimmer/data_binding/table_items_binding.rb +3 -2
  33. data/lib/glimmer/dsl/opal/bind_expression.rb +24 -25
  34. data/lib/glimmer/dsl/opal/custom_widget_expression.rb +7 -7
  35. data/lib/glimmer/dsl/opal/dsl.rb +2 -0
  36. data/lib/glimmer/dsl/opal/menu_expression.rb +1 -1
  37. data/lib/glimmer/dsl/opal/property_expression.rb +2 -1
  38. data/lib/glimmer/dsl/opal/shape_expression.rb +1 -1
  39. data/lib/glimmer/dsl/opal/shell_expression.rb +1 -1
  40. data/lib/glimmer/dsl/opal/shine_data_binding_expression.rb +49 -0
  41. data/lib/glimmer/dsl/opal/table_items_data_binding_expression.rb +2 -2
  42. data/lib/glimmer/dsl/opal/widget_expression.rb +1 -1
  43. data/lib/glimmer/engine.rb +21 -0
  44. data/lib/glimmer/swt/combo_proxy.rb +1 -0
  45. data/lib/glimmer/swt/composite_proxy.rb +34 -0
  46. data/lib/glimmer/swt/dialog_proxy.rb +1 -1
  47. data/lib/glimmer/swt/display_proxy.rb +1 -0
  48. data/lib/glimmer/swt/layout_proxy.rb +23 -3
  49. data/lib/glimmer/swt/message_box_proxy.rb +1 -1
  50. data/lib/glimmer/swt/shell_proxy.rb +43 -0
  51. data/lib/glimmer/swt/table_item_proxy.rb +3 -0
  52. data/lib/glimmer/swt/table_proxy.rb +19 -3
  53. data/lib/glimmer/swt/widget_proxy.rb +3 -4
  54. data/lib/glimmer/ui/custom_shell.rb +13 -10
  55. data/lib/glimmer/ui/custom_widget.rb +11 -2
  56. data/lib/net/http.rb +15 -6
  57. metadata +20 -12
@@ -12,10 +12,10 @@ module Glimmer
12
12
  keyword == "items" and
13
13
  block.nil? and
14
14
  parent.is_a?(Glimmer::SWT::TableProxy) and
15
- args.size == 2 and
15
+ args.size.between?(1, 2) and
16
16
  args[0].is_a?(DataBinding::ModelBinding) and
17
17
  args[0].evaluate_property.is_a?(Array) and
18
- args[1].is_a?(Array)
18
+ (args[1].nil? or args[1].is_a?(Array))
19
19
  end
20
20
 
21
21
  def interpret(parent, keyword, *args, &block)
@@ -20,7 +20,7 @@ module Glimmer
20
20
  Glimmer::SWT::WidgetProxy.for(keyword, parent, args, block)
21
21
  end
22
22
 
23
- def add_content(parent, &block)
23
+ def add_content(parent, keyword, *args, &block)
24
24
  if parent.rendered? || parent.skip_content_on_render_blocks?
25
25
  super(parent, &block)
26
26
  parent.post_add_content
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2020-2021 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
  module Glimmer
2
23
  class Engine < ::Rails::Engine
3
24
  isolate_namespace Glimmer
@@ -6,6 +6,7 @@ module Glimmer
6
6
  class ComboProxy < WidgetProxy
7
7
  include Glimmer::DataBinding::ObservableElement
8
8
  attr_reader :text, :items
9
+ attr_accessor :selection # virtual attribute just to pass the shine data-binding test (TODO THINK OF A BETTER WAY OF HANDLING THIS)
9
10
 
10
11
  def initialize(parent, args, block)
11
12
  super(parent, args, block)
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2020-2021 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
  require 'glimmer/swt/grid_layout_proxy'
2
23
  require 'glimmer/swt/widget_proxy'
3
24
 
@@ -41,6 +62,19 @@ module Glimmer
41
62
  # TODO implement layout(changed = nil, all = nil) just as per SWT API
42
63
  @layout&.layout(self, changed)
43
64
  end
65
+
66
+ # background image
67
+ def background_image
68
+ @background_image
69
+ end
70
+
71
+ # background image is stretched by default
72
+ def background_image=(value)
73
+ @background_image = value
74
+ dom_element.css('background-image', "url(#{background_image})")
75
+ dom_element.css('background-repeat', 'no-repeat')
76
+ dom_element.css('background-size', 'cover')
77
+ end
44
78
 
45
79
  end
46
80
 
@@ -138,7 +138,7 @@ module Glimmer
138
138
 
139
139
 
140
140
  def content(&block)
141
- Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::DialogExpression.new, &block)
141
+ Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::DialogExpression.new, 'dialog', &block)
142
142
  end
143
143
 
144
144
  def path
@@ -79,6 +79,7 @@ module Glimmer
79
79
  )
80
80
  queue = WidgetProxy.widget_handling_listener
81
81
  end
82
+ return block.call if !modal_open?
82
83
  schedule_async_exec(block, queue)
83
84
  end
84
85
  # sync_exec kept for API compatibility reasons
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2020-2021 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
  require 'glimmer/swt/property_owner'
2
23
 
3
24
  module Glimmer
@@ -13,9 +34,8 @@ module Glimmer
13
34
  end
14
35
 
15
36
  def layout_class(keyword)
16
- class_name_alternative = keyword.camelcase(:upper)
17
- class_name_main = "#{class_name_alternative}Proxy"
18
- a_layout_class = Glimmer::SWT.const_get(class_name_main.to_sym) rescue Glimmer::SWT.const_get(class_name_alternative.to_sym)
37
+ class_name_main = "#{keyword.camelcase(:upper)}Proxy"
38
+ a_layout_class = Glimmer::SWT.const_get(class_name_main.to_sym)
19
39
  a_layout_class if a_layout_class.ancestors.include?(Glimmer::SWT::LayoutProxy)
20
40
  rescue => e
21
41
  Glimmer::Config.logger.debug "Layout #{keyword} was not found!"
@@ -118,7 +118,7 @@ module Glimmer
118
118
  end
119
119
 
120
120
  def content(&block)
121
- Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::MessageBoxExpression.new, &block)
121
+ Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::MessageBoxExpression.new, 'message_box', *@args, &block)
122
122
  end
123
123
 
124
124
  def selector
@@ -1,3 +1,24 @@
1
+ # Copyright (c) 2020-2021 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
  require 'glimmer/swt/widget_proxy'
2
23
  require 'glimmer/swt/layout_proxy'
3
24
  require 'glimmer/swt/display_proxy'
@@ -71,6 +92,28 @@ module Glimmer
71
92
  Document.title = value
72
93
  end
73
94
 
95
+ # favicon
96
+ def image
97
+ @image
98
+ end
99
+
100
+ def image=(value)
101
+ @image = value
102
+ # TODO consider moving this code to favicon_dom_element
103
+ if favicon_dom_element.empty?
104
+ favicon_element = Element.new(:link)
105
+ favicon_element.attr('rel', 'icon')
106
+ Document.find('head').append(favicon_element)
107
+ else
108
+ favicon_element = favicon_dom_element
109
+ end
110
+ favicon_element.attr('href', image)
111
+ end
112
+
113
+ def favicon_dom_element
114
+ Document.find('link[rel=icon]')
115
+ end
116
+
74
117
  def minimum_size=(width_or_minimum_size, height = nil)
75
118
  @minimum_size = height.nil? ? width_or_minimum_size : Point.new(width_or_minimum_size, height)
76
119
  return if @minimum_size.nil?
@@ -28,6 +28,9 @@ module Glimmer
28
28
  tr.table-item td {
29
29
  padding-bottom: 0;
30
30
  }
31
+ tr.table-item:nth-child(odd):not(.selected) {
32
+ background: white;
33
+ }
31
34
  tr.table-item:nth-child(even):not(.selected) {
32
35
  background: rgb(243, 244, 246);
33
36
  }
@@ -257,9 +257,7 @@ module Glimmer
257
257
  @table_editor.minimumWidth = 90
258
258
  @table_editor.minimumHeight = 20
259
259
  if editable?
260
- on_mouse_up { |event|
261
- edit_table_item(event.table_item, event.column_index)
262
- }
260
+ add_editable_event_listener
263
261
  end
264
262
  end
265
263
 
@@ -311,6 +309,24 @@ module Glimmer
311
309
  end
312
310
  alias editable editable?
313
311
 
312
+ def editable=(value)
313
+ if value
314
+ args.push(:editable)
315
+ dom_element.addClass('editable')
316
+ add_editable_event_listener
317
+ else
318
+ args.delete(:editable)
319
+ dom_element.removeClass('editable')
320
+ @editable_on_mouse_up_event_listener.deregister # TODO see why table event listener deregistration is not working
321
+ end
322
+ end
323
+
324
+ def add_editable_event_listener
325
+ @editable_on_mouse_up_event_listener = on_mouse_up { |event|
326
+ edit_table_item(event.table_item, event.column_index) if editable?
327
+ }
328
+ end
329
+
314
330
  def selection
315
331
  @selection.to_a
316
332
  end
@@ -46,9 +46,8 @@ module Glimmer
46
46
  end
47
47
 
48
48
  def widget_class(keyword)
49
- class_name_alternative = keyword.camelcase(:upper)
50
- class_name_main = "#{class_name_alternative}Proxy"
51
- Glimmer::SWT.const_get(class_name_main.to_sym) rescue Glimmer::SWT.const_get(class_name_alternative.to_sym)
49
+ class_name_main = "#{keyword.camelcase(:upper)}Proxy"
50
+ Glimmer::SWT.const_get(class_name_main.to_sym)
52
51
  rescue => e
53
52
  puts "Widget #{keyword} was not found!"
54
53
  nil
@@ -309,7 +308,7 @@ module Glimmer
309
308
  end
310
309
 
311
310
  def content(&block)
312
- Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::WidgetExpression.new, &block)
311
+ Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::WidgetExpression.new, self.class.underscored_widget_name(self), &block)
313
312
  end
314
313
 
315
314
  # Subclasses must override with their own mappings
@@ -29,15 +29,12 @@ module Glimmer
29
29
  include Glimmer::UI::CustomWidget
30
30
 
31
31
  module ClassMethods
32
+ include Glimmer
32
33
  attr_reader :custom_shell
33
34
 
34
35
  def launch
35
- @custom_shell = send(self.name.underscore.gsub('::', '__'))
36
- @custom_shell.open
37
- end
38
-
39
- def shutdown
40
- @custom_shell.close
36
+ custom_shell = send(self.name.underscore.gsub('::', '__'))
37
+ custom_shell.open
41
38
  end
42
39
  end
43
40
 
@@ -73,11 +70,17 @@ module Glimmer
73
70
  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)
74
71
  end
75
72
 
76
- # Classes may override
77
- def open
78
- # TODO consider the idea of delaying rendering till the open method
79
- body_root.open
73
+ def open(async: true)
74
+ work = lambda do
75
+ body_root.open
76
+ end
77
+ if async
78
+ Glimmer::SWT::DisplayProxy.instance.async_exec(&work)
79
+ else
80
+ work.call
81
+ end
80
82
  end
83
+
81
84
 
82
85
  # DO NOT OVERRIDE. JUST AN ALIAS FOR `#open`. OVERRIDE `#open` INSTEAD.
83
86
  def show
@@ -83,6 +83,16 @@ module Glimmer
83
83
  @after_body_blocks ||= []
84
84
  @after_body_blocks << block
85
85
  end
86
+
87
+ def keyword
88
+ self.name.underscore.gsub('::', '__')
89
+ end
90
+
91
+ # Returns shortcut keyword to use for this custom widget (keyword minus namespace)
92
+ def shortcut_keyword
93
+ self.name.underscore.gsub('::', '__').split('__').last
94
+ end
95
+
86
96
  end
87
97
 
88
98
  class << self
@@ -143,7 +153,6 @@ module Glimmer
143
153
  def reset_custom_widget_namespaces
144
154
  @custom_widget_namespaces = Set[Object, Glimmer::UI]
145
155
  end
146
-
147
156
  end
148
157
  # <- end of class methods
149
158
 
@@ -259,7 +268,7 @@ module Glimmer
259
268
  # Otherwise, if a block is passed, it adds it as content to this custom widget
260
269
  def content(&block)
261
270
  if block_given?
262
- body_root.content(&block)
271
+ Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Opal::CustomWidgetExpression.new, self.class.keyword, &block)
263
272
  else
264
273
  @content
265
274
  end
data/lib/net/http.rb CHANGED
@@ -19,8 +19,6 @@
19
19
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
20
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
- # Missing Net module class methods TODO implement
23
-
24
22
  require_relative '../uri'
25
23
 
26
24
  module Net
@@ -30,11 +28,22 @@ module Net
30
28
  class HTTP
31
29
  class << self
32
30
  def post_form(uri, params)
33
- response_body = nil
34
- result = ::HTTP.post(uri, payload: params) do |response|
35
- response_body = response.body
31
+ uri = "#{`window.location.protocol`}//#{File.join(uri)}" unless uri.start_with?('http:') || uri.start_with?('https:') # TODO refactor repetitive code
32
+ result = nil
33
+ ::HTTP.post(uri, {async: false, dataType: 'text', data: params}) do |response|
34
+ result = response.body if response.ok?
35
+ end
36
+ result
37
+ end
38
+
39
+ def get(uri, path_and_params)
40
+ uri = File.join(uri, path_and_params)
41
+ uri = "#{`window.location.protocol`}//#{uri}" unless uri.start_with?('http:') || uri.start_with?('https:') # TODO refactor repetitive code
42
+ result = nil
43
+ ::HTTP.get(uri, {async: false, dataType: 'text'}) do |response|
44
+ result = response.body if response.ok?
36
45
  end
37
- response_body
46
+ result
38
47
  end
39
48
  end
40
49
  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.10.3
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-25 00:00:00.000000000 Z
11
+ date: 2021-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.10
19
+ version: 2.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.10
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: glimmer-dsl-xml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.0
33
+ version: 1.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.0
40
+ version: 1.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: glimmer-dsl-css
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.1.0
47
+ version: 1.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.1.0
54
+ version: 1.2.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: opal-async
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.2'
61
+ version: 1.2.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.2'
68
+ version: 1.2.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: to_collection
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -242,9 +242,11 @@ email: andy.am@gmail.com
242
242
  executables: []
243
243
  extensions: []
244
244
  extra_rdoc_files:
245
+ - CHANGELOG.md
245
246
  - LICENSE.txt
246
247
  - README.md
247
248
  files:
249
+ - CHANGELOG.md
248
250
  - LICENSE.txt
249
251
  - README.md
250
252
  - VERSION
@@ -261,6 +263,10 @@ files:
261
263
  - app/assets/stylesheets/glimmer/jquery-ui.structure.css
262
264
  - app/assets/stylesheets/glimmer/jquery-ui.theme.css
263
265
  - app/assets/stylesheets/glimmer/jquery.ui.timepicker.css
266
+ - app/controllers/glimmer/application_controller.rb
267
+ - app/controllers/glimmer/image_paths_controller.rb
268
+ - app/views/glimmer/image_paths/index.html.erb
269
+ - config/routes.rb
264
270
  - lib/display.rb
265
271
  - lib/glimmer-dsl-opal.rb
266
272
  - lib/glimmer-dsl-opal/ext/class.rb
@@ -276,13 +282,13 @@ files:
276
282
  - lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb
277
283
  - lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe/board.rb
278
284
  - lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe/cell.rb
285
+ - lib/glimmer-dsl-opal/samples/elaborate/weather.rb
279
286
  - lib/glimmer-dsl-opal/samples/hello/hello_browser.rb
280
287
  - lib/glimmer-dsl-opal/samples/hello/hello_button.rb
281
288
  - lib/glimmer-dsl-opal/samples/hello/hello_checkbox.rb
282
289
  - lib/glimmer-dsl-opal/samples/hello/hello_checkbox_group.rb
283
290
  - lib/glimmer-dsl-opal/samples/hello/hello_combo.rb
284
291
  - lib/glimmer-dsl-opal/samples/hello/hello_computed.rb
285
- - lib/glimmer-dsl-opal/samples/hello/hello_computed/contact.rb
286
292
  - lib/glimmer-dsl-opal/samples/hello/hello_custom_shell.rb
287
293
  - lib/glimmer-dsl-opal/samples/hello/hello_custom_widget.rb
288
294
  - lib/glimmer-dsl-opal/samples/hello/hello_date_time.rb
@@ -297,6 +303,7 @@ files:
297
303
  - lib/glimmer-dsl-opal/samples/hello/hello_radio_group.rb
298
304
  - lib/glimmer-dsl-opal/samples/hello/hello_tab.rb
299
305
  - lib/glimmer-dsl-opal/samples/hello/hello_table.rb
306
+ - lib/glimmer-dsl-opal/samples/hello/hello_table/baseball_park.png
300
307
  - lib/glimmer-dsl-opal/samples/hello/hello_world.rb
301
308
  - lib/glimmer-dsl-opal/vendor/jquery-ui-timepicker/GPL-LICENSE.txt
302
309
  - lib/glimmer-dsl-opal/vendor/jquery-ui-timepicker/MIT-LICENSE.txt
@@ -349,6 +356,7 @@ files:
349
356
  - lib/glimmer/dsl/opal/rgba_expression.rb
350
357
  - lib/glimmer/dsl/opal/shape_expression.rb
351
358
  - lib/glimmer/dsl/opal/shell_expression.rb
359
+ - lib/glimmer/dsl/opal/shine_data_binding_expression.rb
352
360
  - lib/glimmer/dsl/opal/swt_expression.rb
353
361
  - lib/glimmer/dsl/opal/sync_exec_expression.rb
354
362
  - lib/glimmer/dsl/opal/table_column_expression.rb
@@ -428,7 +436,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
428
436
  - !ruby/object:Gem::Version
429
437
  version: '0'
430
438
  requirements: []
431
- rubygems_version: 3.1.4
439
+ rubygems_version: 3.2.22
432
440
  signing_key:
433
441
  specification_version: 4
434
442
  summary: Glimmer DSL for Opal