glimmer-dsl-opal 0.6.1 → 0.7.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -0
- data/README.md +489 -16
- data/VERSION +1 -1
- data/lib/display.rb +31 -0
- data/lib/file.rb +29 -0
- data/lib/glimmer-dsl-opal.rb +31 -3
- data/lib/glimmer-dsl-opal/ext/date.rb +11 -0
- data/lib/glimmer-dsl-opal/ext/struct.rb +37 -0
- data/lib/glimmer-dsl-opal/samples/hello/hello_browser.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_button.rb +46 -0
- data/lib/glimmer-dsl-opal/samples/hello/hello_custom_shell.rb +7 -7
- data/lib/glimmer-dsl-opal/samples/hello/hello_table.rb +283 -0
- data/lib/glimmer-dsl-swt.rb +20 -35
- data/lib/glimmer/data_binding/table_items_binding.rb +32 -19
- data/lib/glimmer/dsl/opal/block_property_expression.rb +41 -0
- data/lib/glimmer/dsl/opal/custom_widget_expression.rb +5 -0
- data/lib/glimmer/dsl/opal/dsl.rb +2 -0
- data/lib/glimmer/dsl/opal/widget_expression.rb +6 -2
- data/lib/glimmer/swt/combo_proxy.rb +40 -1
- data/lib/glimmer/swt/composite_proxy.rb +5 -1
- data/lib/glimmer/swt/control_editor.rb +54 -0
- data/lib/glimmer/swt/date_time_proxy.rb +66 -1
- data/lib/glimmer/swt/display_proxy.rb +4 -0
- data/lib/glimmer/swt/font_proxy.rb +4 -4
- data/lib/glimmer/swt/grid_layout_proxy.rb +7 -8
- data/lib/glimmer/swt/label_proxy.rb +11 -3
- data/lib/glimmer/swt/layout_data_proxy.rb +9 -3
- data/lib/glimmer/swt/layout_proxy.rb +1 -1
- data/lib/glimmer/swt/message_box_proxy.rb +3 -10
- data/lib/glimmer/swt/property_owner.rb +2 -2
- data/lib/glimmer/swt/shell_proxy.rb +8 -0
- data/lib/glimmer/swt/table_column_proxy.rb +71 -12
- data/lib/glimmer/swt/table_editor.rb +65 -0
- data/lib/glimmer/swt/table_item_proxy.rb +44 -1
- data/lib/glimmer/swt/table_proxy.rb +579 -12
- data/lib/glimmer/swt/text_proxy.rb +49 -1
- data/lib/glimmer/swt/widget_proxy.rb +106 -17
- data/lib/glimmer/ui/custom_shell.rb +9 -7
- data/lib/net/http.rb +1 -5
- data/lib/os.rb +36 -0
- data/lib/uri.rb +3 -3
- metadata +31 -9
- data/lib/glimmer/data_binding/ext/observable_model.rb +0 -40
@@ -20,11 +20,59 @@ module Glimmer
|
|
20
20
|
event: 'keyup',
|
21
21
|
event_handler: -> (event_listener) {
|
22
22
|
-> (event) {
|
23
|
+
# TODO consider unifying this event handler with on_key_pressed by relying on its result instead of hooking another keyup event
|
24
|
+
if @last_key_pressed_event.nil? || @last_key_pressed_event.doit
|
25
|
+
@text = event.target.value
|
26
|
+
event_listener.call(event)
|
27
|
+
else
|
28
|
+
# TODO Fix doit false, it's not stopping input
|
29
|
+
event.prevent
|
30
|
+
event.prevent_default
|
31
|
+
event.stop_propagation
|
32
|
+
event.stop_immediate_propagation
|
33
|
+
end
|
34
|
+
}
|
35
|
+
}
|
36
|
+
},
|
37
|
+
'on_key_pressed' => {
|
38
|
+
event: 'keydown',
|
39
|
+
event_handler: -> (event_listener) {
|
40
|
+
-> (event) {
|
41
|
+
@last_key_pressed_event = event
|
23
42
|
@text = event.target.value
|
43
|
+
# TODO generalize this solution to all widgets that support key presses
|
44
|
+
# TODO support event.location once DOM3 is supported by opal-jquery
|
45
|
+
event.define_singleton_method(:keyCode) {event.which}
|
46
|
+
event.define_singleton_method(:key_code, &event.method(:keyCode))
|
47
|
+
event.define_singleton_method(:character) {event.which.chr}
|
48
|
+
event.define_singleton_method(:stateMask) do
|
49
|
+
state_mask = 0
|
50
|
+
state_mask |= SWTProxy[:alt] if event.alt_key
|
51
|
+
state_mask |= SWTProxy[:ctrl] if event.ctrl_key
|
52
|
+
state_mask |= SWTProxy[:shift] if event.shift_key
|
53
|
+
state_mask |= SWTProxy[:command] if event.meta_key
|
54
|
+
state_mask
|
55
|
+
end
|
56
|
+
event.define_singleton_method(:state_mask, &event.method(:stateMask))
|
57
|
+
doit = true
|
58
|
+
event.define_singleton_method(:doit=) do |value|
|
59
|
+
doit = value
|
60
|
+
end
|
61
|
+
event.define_singleton_method(:doit) { doit }
|
24
62
|
event_listener.call(event)
|
63
|
+
|
64
|
+
# TODO Fix doit false, it's not stopping input
|
65
|
+
unless doit
|
66
|
+
event.prevent
|
67
|
+
event.prevent_default
|
68
|
+
event.stop_propagation
|
69
|
+
event.stop_immediate_propagation
|
70
|
+
end
|
71
|
+
|
72
|
+
doit
|
25
73
|
}
|
26
74
|
}
|
27
|
-
}
|
75
|
+
},
|
28
76
|
}
|
29
77
|
end
|
30
78
|
|
@@ -29,7 +29,10 @@ module Glimmer
|
|
29
29
|
include Glimmer
|
30
30
|
include PropertyOwner
|
31
31
|
|
32
|
-
attr_reader :parent, :args, :path, :children, :enabled, :foreground, :background, :font, :focus
|
32
|
+
attr_reader :parent, :args, :path, :children, :enabled, :foreground, :background, :font, :focus, :disposed?, :rendered
|
33
|
+
alias isDisposed disposed?
|
34
|
+
alias is_disposed disposed?
|
35
|
+
alias rendered? rendered
|
33
36
|
|
34
37
|
class << self
|
35
38
|
# Factory Method that translates a Glimmer DSL keyword into a WidgetProxy object
|
@@ -103,6 +106,7 @@ module Glimmer
|
|
103
106
|
@block = block
|
104
107
|
@children = Set.new # TODO consider moving to composite
|
105
108
|
@enabled = true
|
109
|
+
@data = {}
|
106
110
|
DEFAULT_INITIALIZERS[self.class.underscored_widget_name(self)]&.call(self)
|
107
111
|
@parent.post_initialize_child(self) # TODO rename to post_initialize_child to be closer to glimmer-dsl-swt terminology
|
108
112
|
end
|
@@ -113,17 +117,52 @@ module Glimmer
|
|
113
117
|
child.render
|
114
118
|
end
|
115
119
|
|
120
|
+
# Executes for the parent of a child that just got disposed
|
121
|
+
def post_dispose_child(child)
|
122
|
+
@children&.delete(child)
|
123
|
+
end
|
124
|
+
|
116
125
|
# Executes at the closing of a parent widget curly braces after all children/properties have been added/set
|
117
126
|
def post_add_content
|
118
127
|
# No Op by default
|
119
128
|
end
|
120
129
|
|
130
|
+
def set_data(key=nil, value)
|
131
|
+
@data[key] = value
|
132
|
+
end
|
133
|
+
alias setData set_data
|
134
|
+
alias data= set_data
|
135
|
+
|
136
|
+
def get_data(key=nil)
|
137
|
+
@data[key]
|
138
|
+
end
|
139
|
+
alias getData get_data
|
140
|
+
alias data get_data
|
141
|
+
|
121
142
|
def css_classes
|
122
143
|
dom_element.attr('class').to_s.split
|
123
144
|
end
|
124
145
|
|
125
146
|
def dispose
|
147
|
+
remove_all_listeners
|
126
148
|
Document.find(path).remove
|
149
|
+
parent&.post_dispose_child(self)
|
150
|
+
# TODO fire on_widget_disposed listener
|
151
|
+
@disposed = true
|
152
|
+
end
|
153
|
+
|
154
|
+
def remove_all_listeners
|
155
|
+
effective_observation_request_to_event_mapping.keys.each do |keyword|
|
156
|
+
effective_observation_request_to_event_mapping[keyword].to_collection.each do |mapping|
|
157
|
+
observation_requests[keyword].to_a.each do |event_listener|
|
158
|
+
event = mapping[:event]
|
159
|
+
event_handler = mapping[:event_handler]
|
160
|
+
event_element_css_selector = mapping[:event_element_css_selector]
|
161
|
+
the_listener_dom_element = event_element_css_selector ? Element[event_element_css_selector] : listener_dom_element
|
162
|
+
the_listener_dom_element.off(event)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
127
166
|
end
|
128
167
|
|
129
168
|
def path
|
@@ -172,31 +211,52 @@ module Glimmer
|
|
172
211
|
@parent.path
|
173
212
|
end
|
174
213
|
|
175
|
-
def
|
214
|
+
def parent_dom_element
|
215
|
+
Document.find(parent_path)
|
216
|
+
end
|
217
|
+
|
218
|
+
def render(custom_parent_dom_element = nil)
|
219
|
+
the_parent_dom_element = custom_parent_dom_element || parent_dom_element
|
176
220
|
old_element = dom_element
|
177
221
|
brand_new = @dom.nil? || old_element.empty?
|
178
|
-
build_dom
|
222
|
+
build_dom(!custom_parent_dom_element) # TODO handle custom parent layout by passing parent instead of parent dom element
|
179
223
|
if brand_new
|
180
|
-
|
224
|
+
the_parent_dom_element.append(@dom)
|
181
225
|
else
|
182
226
|
old_element.replace_with(@dom)
|
183
227
|
end
|
184
|
-
|
228
|
+
observation_requests&.clone&.each do |keyword, event_listener_set|
|
185
229
|
event_listener_set.each do |event_listener|
|
186
|
-
|
230
|
+
observation_requests[keyword].delete(event_listener) # TODO look into the implications of this and if it's needed.
|
187
231
|
handle_observation_request(keyword, &event_listener)
|
188
232
|
end
|
189
233
|
end
|
190
234
|
children.each do |child|
|
191
235
|
child.render
|
192
236
|
end
|
237
|
+
@rendered = true
|
238
|
+
content_on_render_blocks.each { |content_block| content(&content_block) }
|
193
239
|
end
|
194
240
|
alias redraw render
|
195
241
|
|
196
|
-
def
|
242
|
+
def content_on_render_blocks
|
243
|
+
@content_on_render_blocks ||= []
|
244
|
+
end
|
245
|
+
|
246
|
+
def add_content_on_render(&content_block)
|
247
|
+
if rendered?
|
248
|
+
content_block.call
|
249
|
+
else
|
250
|
+
content_on_render_blocks << content_block
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
def build_dom(layout=true)
|
255
|
+
# TODO consider passing parent element instead and having table item include a table cell widget only for opal
|
197
256
|
@dom = nil
|
198
257
|
@dom = dom
|
199
258
|
@dom = @parent.layout.dom(@dom) if @parent.respond_to?(:layout) && @parent.layout
|
259
|
+
@dom
|
200
260
|
end
|
201
261
|
|
202
262
|
def content(&block)
|
@@ -208,6 +268,21 @@ module Glimmer
|
|
208
268
|
{}
|
209
269
|
end
|
210
270
|
|
271
|
+
def effective_observation_request_to_event_mapping
|
272
|
+
default_observation_request_to_event_mapping.merge(observation_request_to_event_mapping)
|
273
|
+
end
|
274
|
+
|
275
|
+
def default_observation_request_to_event_mapping
|
276
|
+
{
|
277
|
+
'on_focus_gained' => {
|
278
|
+
event: 'focus',
|
279
|
+
},
|
280
|
+
'on_focus_lost' => {
|
281
|
+
event: 'blur',
|
282
|
+
},
|
283
|
+
}
|
284
|
+
end
|
285
|
+
|
211
286
|
def name
|
212
287
|
self.class.name.split('::').last.underscore.sub(/_proxy$/, '').gsub('_', '-')
|
213
288
|
end
|
@@ -271,10 +346,6 @@ module Glimmer
|
|
271
346
|
element
|
272
347
|
end
|
273
348
|
|
274
|
-
def parent_dom_element
|
275
|
-
Document.find(parent_path)
|
276
|
-
end
|
277
|
-
|
278
349
|
def listener_path
|
279
350
|
path
|
280
351
|
end
|
@@ -296,14 +367,17 @@ module Glimmer
|
|
296
367
|
end
|
297
368
|
end
|
298
369
|
|
299
|
-
def
|
300
|
-
return unless observation_request_to_event_mapping.keys.include?(keyword)
|
370
|
+
def observation_requests
|
301
371
|
@observation_requests ||= {}
|
302
|
-
|
372
|
+
end
|
373
|
+
|
374
|
+
def handle_observation_request(keyword, &event_listener)
|
375
|
+
return unless effective_observation_request_to_event_mapping.keys.include?(keyword)
|
303
376
|
event = nil
|
304
377
|
delegate = nil
|
305
|
-
[
|
306
|
-
|
378
|
+
effective_observation_request_to_event_mapping[keyword].to_collection.each do |mapping|
|
379
|
+
observation_requests[keyword] ||= Set.new
|
380
|
+
observation_requests[keyword] << event_listener
|
307
381
|
event = mapping[:event]
|
308
382
|
event_handler = mapping[:event_handler]
|
309
383
|
event_element_css_selector = mapping[:event_element_css_selector]
|
@@ -334,6 +408,14 @@ module Glimmer
|
|
334
408
|
super(attribute_name, *args) # PropertyOwner
|
335
409
|
end
|
336
410
|
|
411
|
+
def method_missing(method, *args, &block)
|
412
|
+
if method.to_s.start_with?('on_')
|
413
|
+
handle_observation_request(method, &block)
|
414
|
+
else
|
415
|
+
super(method, *args, &block)
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
337
419
|
def apply_property_type_converters(attribute_name, args)
|
338
420
|
if args.count == 1
|
339
421
|
value = args.first
|
@@ -488,6 +570,13 @@ module Glimmer
|
|
488
570
|
}
|
489
571
|
end
|
490
572
|
},
|
573
|
+
TableProxy => {
|
574
|
+
:selection => lambda do |observer|
|
575
|
+
on_widget_selected { |selection_event|
|
576
|
+
observer.call(selection_event.table_item.get_data) # TODO ensure selection doesn't conflict with editing
|
577
|
+
}
|
578
|
+
end,
|
579
|
+
},
|
491
580
|
# Java::OrgEclipseSwtWidgets::MenuItem => {
|
492
581
|
# :selection => lambda do |observer|
|
493
582
|
# on_widget_selected { |selection_event|
|
@@ -509,12 +598,12 @@ module Glimmer
|
|
509
598
|
end
|
510
599
|
end
|
511
600
|
|
601
|
+
require 'glimmer/swt/display_proxy'
|
512
602
|
require 'glimmer/swt/browser_proxy'
|
513
603
|
require 'glimmer/swt/button_proxy'
|
514
604
|
require 'glimmer/swt/combo_proxy'
|
515
605
|
require 'glimmer/swt/checkbox_proxy'
|
516
606
|
require 'glimmer/swt/composite_proxy'
|
517
|
-
require 'glimmer/swt/display_proxy'
|
518
607
|
require 'glimmer/swt/date_time_proxy'
|
519
608
|
require 'glimmer/swt/group_proxy'
|
520
609
|
require 'glimmer/swt/label_proxy'
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (c) 2020 Andy Maleh
|
2
|
-
#
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -31,8 +31,10 @@ module Glimmer
|
|
31
31
|
class << self
|
32
32
|
def included(klass)
|
33
33
|
klass.extend(CustomWidget::ClassMethods)
|
34
|
-
klass.include(Glimmer)
|
34
|
+
klass.include(Glimmer)
|
35
35
|
Glimmer::UI::CustomWidget.add_custom_widget_namespaces_for(klass)
|
36
|
+
keyword = klass.name.split(':').last.underscore
|
37
|
+
`localStorage[#{keyword}] = #{$LOADED_FEATURES.last}`
|
36
38
|
end
|
37
39
|
|
38
40
|
def request_parameter_string
|
@@ -44,12 +46,12 @@ module Glimmer
|
|
44
46
|
end
|
45
47
|
|
46
48
|
def requested_and_not_handled?
|
47
|
-
requested? && !request_parameter_string.include?('custom_shell_handled=true')
|
48
|
-
end
|
49
|
+
requested? && !request_parameter_string.include?('custom_shell_handled=true')
|
50
|
+
end
|
49
51
|
|
50
52
|
def requested?
|
51
53
|
request_parameter_string.include?('custom_shell=')
|
52
|
-
end
|
54
|
+
end
|
53
55
|
end
|
54
56
|
|
55
57
|
def initialize(parent, args, options, &content)
|
data/lib/net/http.rb
CHANGED
data/lib/os.rb
ADDED
@@ -0,0 +1,36 @@
|
|
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
|
+
|
22
|
+
class OS
|
23
|
+
class << self
|
24
|
+
def windows?
|
25
|
+
# No Op in Opal
|
26
|
+
end
|
27
|
+
|
28
|
+
def mac?
|
29
|
+
# No Op in Opal
|
30
|
+
end
|
31
|
+
|
32
|
+
def linux?
|
33
|
+
# No Op in Opal
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/uri.rb
CHANGED
@@ -6,7 +6,7 @@ module URI
|
|
6
6
|
|
7
7
|
def initialize(url)
|
8
8
|
@url = url
|
9
|
-
uri_match = url.match(REGEX)
|
9
|
+
uri_match = url.match(REGEX).to_a
|
10
10
|
@scheme = uri_match[1]
|
11
11
|
@host = uri_match[2]
|
12
12
|
@path = uri_match[3]
|
@@ -16,7 +16,7 @@ module URI
|
|
16
16
|
|
17
17
|
def to_s
|
18
18
|
url
|
19
|
-
end
|
19
|
+
end
|
20
20
|
end
|
21
21
|
|
22
22
|
TBLENCWWWCOMP_ = {"\u0000"=>"%00", "\u0001"=>"%01", "\u0002"=>"%02", "\u0003"=>"%03", "\u0004"=>"%04", "\u0005"=>"%05", "\u0006"=>"%06", "\a"=>"%07", "\b"=>"%08", "\t"=>"%09", "\n"=>"%0A", "\v"=>"%0B", "\f"=>"%0C", "\r"=>"%0D", "\u000E"=>"%0E", "\u000F"=>"%0F", "\u0010"=>"%10", "\u0011"=>"%11", "\u0012"=>"%12", "\u0013"=>"%13", "\u0014"=>"%14", "\u0015"=>"%15", "\u0016"=>"%16", "\u0017"=>"%17", "\u0018"=>"%18", "\u0019"=>"%19", "\u001A"=>"%1A", "\e"=>"%1B", "\u001C"=>"%1C", "\u001D"=>"%1D", "\u001E"=>"%1E", "\u001F"=>"%1F", " "=>"+", "!"=>"%21", "\""=>"%22", "#"=>"%23", "$"=>"%24", "%"=>"%25", "&"=>"%26", "'"=>"%27", "("=>"%28", ")"=>"%29", "*"=>"%2A", "+"=>"%2B", ","=>"%2C", "-"=>"%2D", "."=>"%2E", "/"=>"%2F", "0"=>"%30", "1"=>"%31", "2"=>"%32", "3"=>"%33", "4"=>"%34", "5"=>"%35", "6"=>"%36", "7"=>"%37", "8"=>"%38", "9"=>"%39", ":"=>"%3A", ";"=>"%3B", "<"=>"%3C", "="=>"%3D", ">"=>"%3E", "?"=>"%3F", "@"=>"%40", "A"=>"%41", "B"=>"%42", "C"=>"%43", "D"=>"%44", "E"=>"%45", "F"=>"%46", "G"=>"%47", "H"=>"%48", "I"=>"%49", "J"=>"%4A", "K"=>"%4B", "L"=>"%4C", "M"=>"%4D", "N"=>"%4E", "O"=>"%4F", "P"=>"%50", "Q"=>"%51", "R"=>"%52", "S"=>"%53", "T"=>"%54", "U"=>"%55", "V"=>"%56", "W"=>"%57", "X"=>"%58", "Y"=>"%59", "Z"=>"%5A", "["=>"%5B", "\\"=>"%5C", "]"=>"%5D", "^"=>"%5E", "_"=>"%5F", "`"=>"%60", "a"=>"%61", "b"=>"%62", "c"=>"%63", "d"=>"%64", "e"=>"%65", "f"=>"%66", "g"=>"%67", "h"=>"%68", "i"=>"%69", "j"=>"%6A", "k"=>"%6B", "l"=>"%6C", "m"=>"%6D", "n"=>"%6E", "o"=>"%6F", "p"=>"%70", "q"=>"%71", "r"=>"%72", "s"=>"%73", "t"=>"%74", "u"=>"%75", "v"=>"%76", "w"=>"%77", "x"=>"%78", "y"=>"%79", "z"=>"%7A", "{"=>"%7B", "|"=>"%7C", "}"=>"%7D", "~"=>"%7E", "\u007F"=>"%7F", "\u0080"=>"%80", "\u0081"=>"%81", "\u0082"=>"%82", "\u0083"=>"%83", "\u0084"=>"%84", "\u0085"=>"%85", "\u0086"=>"%86", "\u0087"=>"%87", "\u0088"=>"%88", "\u0089"=>"%89", "\u008A"=>"%8A", "\u008B"=>"%8B", "\u008C"=>"%8C", "\u008D"=>"%8D", "\u008E"=>"%8E", "\u008F"=>"%8F", "\u0090"=>"%90", "\u0091"=>"%91", "\u0092"=>"%92", "\u0093"=>"%93", "\u0094"=>"%94", "\u0095"=>"%95", "\u0096"=>"%96", "\u0097"=>"%97", "\u0098"=>"%98", "\u0099"=>"%99", "\u009A"=>"%9A", "\u009B"=>"%9B", "\u009C"=>"%9C", "\u009D"=>"%9D", "\u009E"=>"%9E", "\u009F"=>"%9F", "\u00A0"=>"%A0", "\u00A1"=>"%A1", "\u00A2"=>"%A2", "\u00A3"=>"%A3", "\u00A4"=>"%A4", "\u00A5"=>"%A5", "\u00A6"=>"%A6", "\u00A7"=>"%A7", "\u00A8"=>"%A8", "\u00A9"=>"%A9", "\u00AA"=>"%AA", "\u00AB"=>"%AB", "\u00AC"=>"%AC", "\u00AD"=>"%AD", "\u00AE"=>"%AE", "\u00AF"=>"%AF", "\u00B0"=>"%B0", "\u00B1"=>"%B1", "\u00B2"=>"%B2", "\u00B3"=>"%B3", "\u00B4"=>"%B4", "\u00B5"=>"%B5", "\u00B6"=>"%B6", "\u00B7"=>"%B7", "\u00B8"=>"%B8", "\u00B9"=>"%B9", "\u00BA"=>"%BA", "\u00BB"=>"%BB", "\u00BC"=>"%BC", "\u00BD"=>"%BD", "\u00BE"=>"%BE", "\u00BF"=>"%BF", "\u00C0"=>"%C0", "\u00C1"=>"%C1", "\u00C2"=>"%C2", "\u00C3"=>"%C3", "\u00C4"=>"%C4", "\u00C5"=>"%C5", "\u00C6"=>"%C6", "\u00C7"=>"%C7", "\u00C8"=>"%C8", "\u00C9"=>"%C9", "\u00CA"=>"%CA", "\u00CB"=>"%CB", "\u00CC"=>"%CC", "\u00CD"=>"%CD", "\u00CE"=>"%CE", "\u00CF"=>"%CF", "\u00D0"=>"%D0", "\u00D1"=>"%D1", "\u00D2"=>"%D2", "\u00D3"=>"%D3", "\u00D4"=>"%D4", "\u00D5"=>"%D5", "\u00D6"=>"%D6", "\u00D7"=>"%D7", "\u00D8"=>"%D8", "\u00D9"=>"%D9", "\u00DA"=>"%DA", "\u00DB"=>"%DB", "\u00DC"=>"%DC", "\u00DD"=>"%DD", "\u00DE"=>"%DE", "\u00DF"=>"%DF", "\u00E0"=>"%E0", "\u00E1"=>"%E1", "\u00E2"=>"%E2", "\u00E3"=>"%E3", "\u00E4"=>"%E4", "\u00E5"=>"%E5", "\u00E6"=>"%E6", "\u00E7"=>"%E7", "\u00E8"=>"%E8", "\u00E9"=>"%E9", "\u00EA"=>"%EA", "\u00EB"=>"%EB", "\u00EC"=>"%EC", "\u00ED"=>"%ED", "\u00EE"=>"%EE", "\u00EF"=>"%EF", "\u00F0"=>"%F0", "\u00F1"=>"%F1", "\u00F2"=>"%F2", "\u00F3"=>"%F3", "\u00F4"=>"%F4", "\u00F5"=>"%F5", "\u00F6"=>"%F6", "\u00F7"=>"%F7", "\u00F8"=>"%F8", "\u00F9"=>"%F9", "\u00FA"=>"%FA", "\u00FB"=>"%FB", "\u00FC"=>"%FC", "\u00FD"=>"%FD", "\u00FE"=>"%FE", "\u00FF"=>"%FF"}
|
@@ -54,7 +54,7 @@ module URI
|
|
54
54
|
def self.decode_www_form_component(str, enc=Encoding::UTF_8)
|
55
55
|
raise ArgumentError, "invalid %-encoding (#{str})" if /%(?![0-9a-fA-F][0-9a-fA-F])/ =~ str
|
56
56
|
str.b.gsub(/\+|%[0-9a-fA-F][0-9a-fA-F]/, TBLDECWWWCOMP_).force_encoding(enc)
|
57
|
-
end
|
57
|
+
end
|
58
58
|
end
|
59
59
|
|
60
60
|
module Kernel
|
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.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0.
|
19
|
+
version: 1.0.5
|
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.
|
26
|
+
version: 1.0.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: glimmer-dsl-xml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,19 +67,33 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.2.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: to_collection
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
76
|
-
type: :
|
75
|
+
version: 2.0.1
|
76
|
+
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 2.0.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: puts_debuggerer
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: rake
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -222,9 +236,12 @@ files:
|
|
222
236
|
- app/assets/stylesheets/glimmer/jquery-ui.structure.css
|
223
237
|
- app/assets/stylesheets/glimmer/jquery-ui.theme.css
|
224
238
|
- app/assets/stylesheets/glimmer/jquery.ui.timepicker.css
|
239
|
+
- lib/display.rb
|
240
|
+
- lib/file.rb
|
225
241
|
- lib/glimmer-dsl-opal.rb
|
226
242
|
- lib/glimmer-dsl-opal/ext/date.rb
|
227
243
|
- lib/glimmer-dsl-opal/ext/exception.rb
|
244
|
+
- lib/glimmer-dsl-opal/ext/struct.rb
|
228
245
|
- lib/glimmer-dsl-opal/samples/elaborate/contact_manager.rb
|
229
246
|
- lib/glimmer-dsl-opal/samples/elaborate/contact_manager/contact.rb
|
230
247
|
- lib/glimmer-dsl-opal/samples/elaborate/contact_manager/contact_manager_presenter.rb
|
@@ -234,6 +251,7 @@ files:
|
|
234
251
|
- lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe/board.rb
|
235
252
|
- lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe/cell.rb
|
236
253
|
- lib/glimmer-dsl-opal/samples/hello/hello_browser.rb
|
254
|
+
- lib/glimmer-dsl-opal/samples/hello/hello_button.rb
|
237
255
|
- lib/glimmer-dsl-opal/samples/hello/hello_checkbox.rb
|
238
256
|
- lib/glimmer-dsl-opal/samples/hello/hello_checkbox_group.rb
|
239
257
|
- lib/glimmer-dsl-opal/samples/hello/hello_combo.rb
|
@@ -248,6 +266,7 @@ files:
|
|
248
266
|
- lib/glimmer-dsl-opal/samples/hello/hello_radio.rb
|
249
267
|
- lib/glimmer-dsl-opal/samples/hello/hello_radio_group.rb
|
250
268
|
- lib/glimmer-dsl-opal/samples/hello/hello_tab.rb
|
269
|
+
- lib/glimmer-dsl-opal/samples/hello/hello_table.rb
|
251
270
|
- lib/glimmer-dsl-opal/samples/hello/hello_world.rb
|
252
271
|
- lib/glimmer-dsl-opal/vendor/jquery-ui-timepicker/GPL-LICENSE.txt
|
253
272
|
- lib/glimmer-dsl-opal/vendor/jquery-ui-timepicker/MIT-LICENSE.txt
|
@@ -269,12 +288,12 @@ files:
|
|
269
288
|
- lib/glimmer-dsl-opal/vendor/jquery.js
|
270
289
|
- lib/glimmer-dsl-swt.rb
|
271
290
|
- lib/glimmer/data_binding/element_binding.rb
|
272
|
-
- lib/glimmer/data_binding/ext/observable_model.rb
|
273
291
|
- lib/glimmer/data_binding/list_selection_binding.rb
|
274
292
|
- lib/glimmer/data_binding/observable_element.rb
|
275
293
|
- lib/glimmer/data_binding/table_items_binding.rb
|
276
294
|
- lib/glimmer/dsl/opal/async_exec_expression.rb
|
277
295
|
- lib/glimmer/dsl/opal/bind_expression.rb
|
296
|
+
- lib/glimmer/dsl/opal/block_property_expression.rb
|
278
297
|
- lib/glimmer/dsl/opal/checkbox_group_selection_data_binding_expression.rb
|
279
298
|
- lib/glimmer/dsl/opal/color_expression.rb
|
280
299
|
- lib/glimmer/dsl/opal/column_properties_expression.rb
|
@@ -310,6 +329,7 @@ files:
|
|
310
329
|
- lib/glimmer/swt/color_proxy.rb
|
311
330
|
- lib/glimmer/swt/combo_proxy.rb
|
312
331
|
- lib/glimmer/swt/composite_proxy.rb
|
332
|
+
- lib/glimmer/swt/control_editor.rb
|
313
333
|
- lib/glimmer/swt/custom/checkbox_group.rb
|
314
334
|
- lib/glimmer/swt/custom/radio_group.rb
|
315
335
|
- lib/glimmer/swt/date_time_proxy.rb
|
@@ -337,6 +357,7 @@ files:
|
|
337
357
|
- lib/glimmer/swt/tab_folder_proxy.rb
|
338
358
|
- lib/glimmer/swt/tab_item_proxy.rb
|
339
359
|
- lib/glimmer/swt/table_column_proxy.rb
|
360
|
+
- lib/glimmer/swt/table_editor.rb
|
340
361
|
- lib/glimmer/swt/table_item_proxy.rb
|
341
362
|
- lib/glimmer/swt/table_proxy.rb
|
342
363
|
- lib/glimmer/swt/text_proxy.rb
|
@@ -345,6 +366,7 @@ files:
|
|
345
366
|
- lib/glimmer/ui/custom_widget.rb
|
346
367
|
- lib/glimmer/util/proc_tracker.rb
|
347
368
|
- lib/net/http.rb
|
369
|
+
- lib/os.rb
|
348
370
|
- lib/uri.rb
|
349
371
|
homepage: http://github.com/AndyObtiva/glimmer-dsl-opal
|
350
372
|
licenses:
|