glimmer-dsl-swt 0.2.4 → 0.5.0
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/README.md +11 -4
- data/VERSION +1 -1
- data/lib/ext/glimmer/config.rb +88 -0
- data/lib/glimmer-dsl-swt.rb +2 -1
- data/lib/glimmer/data_binding/table_items_binding.rb +7 -3
- data/lib/glimmer/data_binding/tree_items_binding.rb +4 -6
- data/lib/glimmer/dsl/swt/custom_widget_expression.rb +1 -0
- data/lib/glimmer/dsl/swt/exec_expression.rb +1 -1
- data/lib/glimmer/dsl/swt/tab_item_expression.rb +1 -1
- data/lib/glimmer/dsl/swt/widget_listener_expression.rb +5 -5
- data/lib/glimmer/package.rb +5 -3
- data/lib/glimmer/rake_task.rb +68 -28
- data/lib/glimmer/scaffold.rb +4 -6
- data/lib/glimmer/swt/color_proxy.rb +11 -0
- data/lib/glimmer/swt/display_proxy.rb +13 -15
- data/lib/glimmer/swt/layout_data_proxy.rb +1 -1
- data/lib/glimmer/swt/layout_proxy.rb +2 -2
- data/lib/glimmer/swt/message_box_proxy.rb +2 -0
- data/lib/glimmer/swt/shell_proxy.rb +10 -9
- data/lib/glimmer/swt/style_constantizable.rb +2 -2
- data/lib/glimmer/swt/table_column_proxy.rb +6 -2
- data/lib/glimmer/swt/table_proxy.rb +169 -78
- data/lib/glimmer/swt/widget_proxy.rb +52 -32
- data/lib/glimmer/ui/custom_shell.rb +2 -1
- data/lib/glimmer/ui/custom_widget.rb +28 -18
- metadata +51 -31
@@ -3,7 +3,6 @@ require 'glimmer/swt/color_proxy'
|
|
3
3
|
require 'glimmer/swt/font_proxy'
|
4
4
|
require 'glimmer/swt/swt_proxy'
|
5
5
|
require 'glimmer/swt/dnd_proxy'
|
6
|
-
require 'glimmer/data_binding/observable_widget'
|
7
6
|
|
8
7
|
# TODO refactor to make file smaller and extract sub-widget-proxies out of this
|
9
8
|
|
@@ -20,11 +19,10 @@ module Glimmer
|
|
20
19
|
# Follows the Proxy Design Pattern
|
21
20
|
class WidgetProxy
|
22
21
|
include Packages
|
23
|
-
include DataBinding::ObservableWidget
|
24
22
|
|
25
23
|
DEFAULT_STYLES = {
|
26
24
|
"text" => [:border],
|
27
|
-
"table" => [:border],
|
25
|
+
"table" => [:virtual, :border],
|
28
26
|
"tree" => [:virtual, :border, :h_scroll, :v_scroll],
|
29
27
|
"spinner" => [:border],
|
30
28
|
"styled_text" => [:border],
|
@@ -60,6 +58,7 @@ module Glimmer
|
|
60
58
|
styles, extra_options = extract_args(underscored_widget_name, args)
|
61
59
|
swt_widget_class = self.class.swt_widget_class_for(underscored_widget_name)
|
62
60
|
@swt_widget = swt_widget_class.new(parent.swt_widget, style(underscored_widget_name, styles), *extra_options)
|
61
|
+
@swt_widget.set_data('proxy', self)
|
63
62
|
DEFAULT_INITIALIZERS[underscored_widget_name]&.call(@swt_widget)
|
64
63
|
parent.post_initialize_child(self)
|
65
64
|
end
|
@@ -176,44 +175,44 @@ module Glimmer
|
|
176
175
|
}
|
177
176
|
end,
|
178
177
|
:caret_position => lambda do |observer|
|
179
|
-
|
178
|
+
on_swt_keydown { |event|
|
180
179
|
observer.call(@swt_widget.getCaretPosition)
|
181
180
|
}
|
182
|
-
|
181
|
+
on_swt_keyup { |event|
|
183
182
|
observer.call(@swt_widget.getCaretPosition)
|
184
183
|
}
|
185
|
-
|
184
|
+
on_swt_mousedown { |event|
|
186
185
|
observer.call(@swt_widget.getCaretPosition)
|
187
186
|
}
|
188
|
-
|
187
|
+
on_swt_mouseup { |event|
|
189
188
|
observer.call(@swt_widget.getCaretPosition)
|
190
189
|
}
|
191
190
|
end,
|
192
191
|
:selection => lambda do |observer|
|
193
|
-
|
192
|
+
on_swt_keydown { |event|
|
194
193
|
observer.call(@swt_widget.getSelection)
|
195
194
|
}
|
196
|
-
|
195
|
+
on_swt_keyup { |event|
|
197
196
|
observer.call(@swt_widget.getSelection)
|
198
197
|
}
|
199
|
-
|
198
|
+
on_swt_mousedown { |event|
|
200
199
|
observer.call(@swt_widget.getSelection)
|
201
200
|
}
|
202
|
-
|
201
|
+
on_swt_mouseup { |event|
|
203
202
|
observer.call(@swt_widget.getSelection)
|
204
203
|
}
|
205
204
|
end,
|
206
205
|
:selection_count => lambda do |observer|
|
207
|
-
|
206
|
+
on_swt_keydown { |event|
|
208
207
|
observer.call(@swt_widget.getSelectionCount)
|
209
208
|
}
|
210
|
-
|
209
|
+
on_swt_keyup { |event|
|
211
210
|
observer.call(@swt_widget.getSelectionCount)
|
212
211
|
}
|
213
|
-
|
212
|
+
on_swt_mousedown { |event|
|
214
213
|
observer.call(@swt_widget.getSelectionCount)
|
215
214
|
}
|
216
|
-
|
215
|
+
on_swt_mouseup { |event|
|
217
216
|
observer.call(@swt_widget.getSelectionCount)
|
218
217
|
}
|
219
218
|
end,
|
@@ -267,17 +266,17 @@ module Glimmer
|
|
267
266
|
swt_widget_name = underscored_widget_name.camelcase(:upper)
|
268
267
|
swt_widget_class = eval(swt_widget_name)
|
269
268
|
unless swt_widget_class.ancestors.include?(org.eclipse.swt.widgets.Widget)
|
270
|
-
Glimmer::Config.logger
|
269
|
+
Glimmer::Config.logger.debug {"Class #{swt_widget_class} matching #{underscored_widget_name} is not a subclass of org.eclipse.swt.widgets.Widget"}
|
271
270
|
return nil
|
272
271
|
end
|
273
272
|
swt_widget_class
|
274
|
-
rescue NameError => e
|
275
|
-
Glimmer::Config.logger
|
276
|
-
# Glimmer::Config.logger
|
273
|
+
rescue SyntaxError, NameError => e
|
274
|
+
Glimmer::Config.logger.debug {e.full_message}
|
275
|
+
# Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"}
|
277
276
|
nil
|
278
277
|
rescue => e
|
279
|
-
Glimmer::Config.logger
|
280
|
-
# Glimmer::Config.logger
|
278
|
+
Glimmer::Config.logger.debug {e.full_message}
|
279
|
+
# Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"}
|
281
280
|
nil
|
282
281
|
end
|
283
282
|
|
@@ -336,10 +335,10 @@ module Glimmer
|
|
336
335
|
|
337
336
|
# TODO eliminate duplication in the following methods perhaps by relying on exceptions
|
338
337
|
|
339
|
-
def can_handle_observation_request?(observation_request)
|
338
|
+
def can_handle_observation_request?(observation_request)
|
340
339
|
observation_request = observation_request.to_s
|
341
|
-
if observation_request.start_with?('
|
342
|
-
constant_name = observation_request.sub(/^
|
340
|
+
if observation_request.start_with?('on_swt_')
|
341
|
+
constant_name = observation_request.sub(/^on_swt_/, '')
|
343
342
|
SWTProxy.has_constant?(constant_name)
|
344
343
|
elsif observation_request.start_with?('on_')
|
345
344
|
event = observation_request.sub(/^on_/, '')
|
@@ -357,6 +356,9 @@ module Glimmer
|
|
357
356
|
@drag_source_proxy = nil
|
358
357
|
end
|
359
358
|
end
|
359
|
+
rescue => e
|
360
|
+
Glimmer::Config.logger.debug {e.full_message}
|
361
|
+
false
|
360
362
|
end
|
361
363
|
|
362
364
|
def can_handle_drop_observation_request?(observation_request)
|
@@ -372,8 +374,9 @@ module Glimmer
|
|
372
374
|
end
|
373
375
|
|
374
376
|
def handle_observation_request(observation_request, &block)
|
375
|
-
|
376
|
-
|
377
|
+
observation_request = observation_request.to_s
|
378
|
+
if observation_request.start_with?('on_swt_')
|
379
|
+
constant_name = observation_request.sub(/^on_swt_/, '')
|
377
380
|
add_swt_event_listener(constant_name, &block)
|
378
381
|
elsif observation_request.start_with?('on_')
|
379
382
|
event = observation_request.sub(/^on_/, '')
|
@@ -392,6 +395,23 @@ module Glimmer
|
|
392
395
|
Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::SWT::WidgetExpression.new, &block)
|
393
396
|
end
|
394
397
|
|
398
|
+
def method_missing(method, *args, &block)
|
399
|
+
if can_handle_observation_request?(method)
|
400
|
+
handle_observation_request(method, &block)
|
401
|
+
else
|
402
|
+
swt_widget.send(method, *args, &block)
|
403
|
+
end
|
404
|
+
rescue => e
|
405
|
+
Glimmer::Config.logger.debug {"Neither WidgetProxy nor #{swt_widget.class.name} can handle the method ##{method}"}
|
406
|
+
super
|
407
|
+
end
|
408
|
+
|
409
|
+
def respond_to?(method, *args, &block)
|
410
|
+
super ||
|
411
|
+
can_handle_observation_request?(method) ||
|
412
|
+
swt_widget.respond_to?(method, *args, &block)
|
413
|
+
end
|
414
|
+
|
395
415
|
private
|
396
416
|
|
397
417
|
def style(underscored_widget_name, styles)
|
@@ -437,7 +457,7 @@ module Glimmer
|
|
437
457
|
def add_listener(underscored_listener_name, &block)
|
438
458
|
widget_add_listener_method, listener_class, listener_method = self.class.find_listener(@swt_widget.getClass, underscored_listener_name)
|
439
459
|
widget_listener_proxy = nil
|
440
|
-
safe_block = lambda { |
|
460
|
+
safe_block = lambda { |*args| block.call(*args) unless @swt_widget.isDisposed }
|
441
461
|
listener = listener_class.new(listener_method => safe_block)
|
442
462
|
@swt_widget.send(widget_add_listener_method, listener)
|
443
463
|
widget_listener_proxy = WidgetListenerProxy.new(swt_widget: @swt_widget, swt_listener: listener, widget_add_listener_method: widget_add_listener_method, swt_listener_class: listener_class, swt_listener_method: listener_method)
|
@@ -479,9 +499,9 @@ module Glimmer
|
|
479
499
|
listener_class.define_method('initialize') do |event_method_block_mapping|
|
480
500
|
@event_method_block_mapping = event_method_block_mapping
|
481
501
|
end
|
482
|
-
listener_type.getMethods.each do |event_method|
|
483
|
-
listener_class.define_method(event_method.getName) do |
|
484
|
-
@event_method_block_mapping[event_method.getName]&.call(
|
502
|
+
listener_type.getMethods.each do |event_method|
|
503
|
+
listener_class.define_method(event_method.getName) do |*args|
|
504
|
+
@event_method_block_mapping[event_method.getName]&.call(*args)
|
485
505
|
end
|
486
506
|
end
|
487
507
|
end
|
@@ -492,7 +512,7 @@ module Glimmer
|
|
492
512
|
def add_swt_event_listener(swt_constant, &block)
|
493
513
|
event_type = SWTProxy[swt_constant]
|
494
514
|
widget_listener_proxy = nil
|
495
|
-
safe_block = lambda { |
|
515
|
+
safe_block = lambda { |*args| block.call(*args) unless @swt_widget.isDisposed }
|
496
516
|
@swt_widget.addListener(event_type, &safe_block)
|
497
517
|
widget_listener_proxy = WidgetListenerProxy.new(swt_widget: @swt_widget, swt_listener: @swt_widget.getListeners(event_type).last, event_type: event_type, swt_constant: swt_constant)
|
498
518
|
end
|
@@ -579,7 +599,7 @@ module Glimmer
|
|
579
599
|
end
|
580
600
|
image_data = ImageData.new(value)
|
581
601
|
# TODO in the future, look into unregistering this listener when no longer needed
|
582
|
-
|
602
|
+
on_swt_Resize do |resize_event|
|
583
603
|
new_image_data = image_data.scaledTo(@swt_widget.getSize.x, @swt_widget.getSize.y)
|
584
604
|
@swt_widget.getBackgroundImage&.dispose
|
585
605
|
@swt_widget.setBackgroundImage(Image.new(@swt_widget.getDisplay, new_image_data))
|
@@ -5,9 +5,10 @@ module Glimmer
|
|
5
5
|
module CustomShell
|
6
6
|
include SuperModule
|
7
7
|
include Glimmer::UI::CustomWidget
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(parent, *swt_constants, options, &content)
|
10
10
|
super
|
11
|
+
@swt_widget.set_data('custom_shell', self)
|
11
12
|
raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.swt_widget.is_a?(org.eclipse.swt.widgets.Shell)
|
12
13
|
end
|
13
14
|
|
@@ -5,7 +5,6 @@ require 'glimmer/swt/display_proxy'
|
|
5
5
|
require 'glimmer/util/proc_tracker'
|
6
6
|
require 'glimmer/data_binding/observer'
|
7
7
|
require 'glimmer/data_binding/observable_model'
|
8
|
-
require 'glimmer/data_binding/observable_widget'
|
9
8
|
|
10
9
|
module Glimmer
|
11
10
|
module UI
|
@@ -15,7 +14,6 @@ module Glimmer
|
|
15
14
|
|
16
15
|
super_module_included do |klass|
|
17
16
|
klass.include(Glimmer) unless klass.name.include?('Glimmer::UI::CustomShell')
|
18
|
-
klass.prepend DataBinding::ObservableWidget
|
19
17
|
Glimmer::UI::CustomWidget.add_custom_widget_namespaces_for(klass) unless klass.name.include?('Glimmer::UI::CustomShell')
|
20
18
|
end
|
21
19
|
|
@@ -36,15 +34,15 @@ module Glimmer
|
|
36
34
|
return constant if constant.ancestors.include?(Glimmer::UI::CustomWidget)
|
37
35
|
constant
|
38
36
|
rescue => e
|
39
|
-
# Glimmer::Config.logger
|
37
|
+
# Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"}
|
40
38
|
result
|
41
39
|
end
|
42
40
|
end
|
43
41
|
end
|
44
42
|
raise "#{underscored_custom_widget_name} has no custom widget class!"
|
45
43
|
rescue => e
|
46
|
-
Glimmer::Config.logger
|
47
|
-
Glimmer::Config.logger
|
44
|
+
Glimmer::Config.logger.debug {e.message}
|
45
|
+
Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"}
|
48
46
|
nil
|
49
47
|
end
|
50
48
|
|
@@ -134,16 +132,18 @@ module Glimmer
|
|
134
132
|
body_block = self.class.instance_variable_get("@body_block")
|
135
133
|
raise Glimmer::Error, 'Invalid custom widget for having no body! Please define body block!' if body_block.nil?
|
136
134
|
@body_root = instance_exec(&body_block)
|
137
|
-
execute_hooks('after_body')
|
138
135
|
@swt_widget = @body_root.swt_widget
|
136
|
+
@swt_widget.set_data('custom_widget', self)
|
137
|
+
execute_hooks('after_body')
|
139
138
|
end
|
140
139
|
|
141
140
|
# Subclasses may override to perform post initialization work on an added child
|
142
141
|
def post_initialize_child(child)
|
143
|
-
|
144
|
-
end
|
142
|
+
# No Op by default
|
143
|
+
end
|
145
144
|
|
146
145
|
def can_handle_observation_request?(observation_request)
|
146
|
+
observation_request = observation_request.to_s
|
147
147
|
result = false
|
148
148
|
if observation_request.start_with?('on_updated_')
|
149
149
|
property = observation_request.sub(/^on_updated_/, '')
|
@@ -153,6 +153,7 @@ module Glimmer
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def handle_observation_request(observation_request, &block)
|
156
|
+
observation_request = observation_request.to_s
|
156
157
|
if observation_request.start_with?('on_updated_')
|
157
158
|
property = observation_request.sub(/^on_updated_/, '') # TODO look into eliminating duplication from above
|
158
159
|
add_observer(DataBinding::Observer.proc(&block), property) if can_add_observer?(property)
|
@@ -162,7 +163,7 @@ module Glimmer
|
|
162
163
|
end
|
163
164
|
|
164
165
|
def can_add_observer?(attribute_name)
|
165
|
-
has_instance_method?(attribute_name) ||
|
166
|
+
has_instance_method?(attribute_name) || has_instance_method?("#{attribute_name}?") || @body_root.can_add_observer?(attribute_name)
|
166
167
|
end
|
167
168
|
|
168
169
|
def add_observer(observer, attribute_name)
|
@@ -174,12 +175,12 @@ module Glimmer
|
|
174
175
|
end
|
175
176
|
|
176
177
|
def has_attribute?(attribute_name, *args)
|
177
|
-
|
178
|
+
has_instance_method?(attribute_setter(attribute_name)) ||
|
178
179
|
@body_root.has_attribute?(attribute_name, *args)
|
179
180
|
end
|
180
181
|
|
181
182
|
def set_attribute(attribute_name, *args)
|
182
|
-
if
|
183
|
+
if has_instance_method?(attribute_setter(attribute_name))
|
183
184
|
send(attribute_setter(attribute_name), *args)
|
184
185
|
else
|
185
186
|
@body_root.set_attribute(attribute_name, *args)
|
@@ -188,7 +189,10 @@ module Glimmer
|
|
188
189
|
|
189
190
|
# This method ensures it has an instance method not coming from Glimmer DSL
|
190
191
|
def has_instance_method?(method_name)
|
191
|
-
respond_to?(method_name) &&
|
192
|
+
respond_to?(method_name) &&
|
193
|
+
!swt_widget.respond_to?(method_name) &&
|
194
|
+
!method(method_name)&.source_location&.first&.include?('glimmer/dsl/engine.rb') &&
|
195
|
+
!method(method_name)&.source_location&.first&.include?('glimmer/swt/widget_proxy.rb')
|
192
196
|
end
|
193
197
|
|
194
198
|
def get_attribute(attribute_name)
|
@@ -203,7 +207,6 @@ module Glimmer
|
|
203
207
|
"#{attribute_name}="
|
204
208
|
end
|
205
209
|
|
206
|
-
|
207
210
|
def has_style?(style)
|
208
211
|
(swt_style & SWT::SWTProxy[style]) == SWT::SWTProxy[style]
|
209
212
|
end
|
@@ -229,12 +232,19 @@ module Glimmer
|
|
229
232
|
end
|
230
233
|
end
|
231
234
|
|
232
|
-
def dispose
|
233
|
-
body_root.dispose
|
234
|
-
end
|
235
|
-
|
236
235
|
def method_missing(method, *args, &block)
|
237
|
-
|
236
|
+
if can_handle_observation_request?(method)
|
237
|
+
handle_observation_request(method, &block)
|
238
|
+
else
|
239
|
+
body_root.send(method, *args, &block)
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
alias local_respond_to? respond_to?
|
244
|
+
def respond_to?(method, *args, &block)
|
245
|
+
super or
|
246
|
+
can_handle_observation_request?(method) or
|
247
|
+
body_root.respond_to?(method, *args, &block)
|
238
248
|
end
|
239
249
|
|
240
250
|
private
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-swt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
18
|
+
version: 0.10.1
|
19
19
|
name: glimmer
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
@@ -23,7 +23,7 @@ dependencies:
|
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.10.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.
|
60
|
+
version: 0.9.0
|
61
61
|
name: puts_debuggerer
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
@@ -65,67 +65,67 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.9.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
74
|
+
version: 2.3.9
|
75
75
|
- - "<"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
name:
|
77
|
+
version: 3.0.0
|
78
|
+
name: jeweler
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: 2.3.9
|
86
86
|
- - "<"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
88
|
+
version: 3.0.0
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
94
|
+
version: 2.3.0
|
95
95
|
- - "<"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
98
|
-
name:
|
97
|
+
version: 3.0.0
|
98
|
+
name: logging
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
101
|
version_requirements: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - ">="
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
105
|
+
version: 2.3.0
|
106
106
|
- - "<"
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
108
|
+
version: 3.0.0
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
requirement: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
112
|
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
114
|
+
version: 1.0.0
|
115
115
|
- - "<"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
118
|
-
name:
|
117
|
+
version: 2.0.0
|
118
|
+
name: os
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
125
|
+
version: 1.0.0
|
126
126
|
- - "<"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version:
|
128
|
+
version: 2.0.0
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
@@ -151,41 +151,61 @@ dependencies:
|
|
151
151
|
requirements:
|
152
152
|
- - ">="
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: 2.
|
154
|
+
version: 6.2.1
|
155
155
|
- - "<"
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
158
|
-
name:
|
157
|
+
version: 7.0.0
|
158
|
+
name: rdoc
|
159
159
|
type: :runtime
|
160
160
|
prerelease: false
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
163
|
- - ">="
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: 2.
|
165
|
+
version: 6.2.1
|
166
166
|
- - "<"
|
167
167
|
- !ruby/object:Gem::Version
|
168
|
-
version:
|
168
|
+
version: 7.0.0
|
169
169
|
- !ruby/object:Gem::Dependency
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
174
|
+
version: 1.2.4
|
175
175
|
- - "<"
|
176
176
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
178
|
-
name:
|
177
|
+
version: 2.0.0
|
178
|
+
name: text-table
|
179
179
|
type: :runtime
|
180
180
|
prerelease: false
|
181
181
|
version_requirements: !ruby/object:Gem::Requirement
|
182
182
|
requirements:
|
183
183
|
- - ">="
|
184
184
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
185
|
+
version: 1.2.4
|
186
186
|
- - "<"
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
-
version:
|
188
|
+
version: 2.0.0
|
189
|
+
- !ruby/object:Gem::Dependency
|
190
|
+
requirement: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 2.0.5
|
195
|
+
- - "<"
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: 3.0.0
|
198
|
+
name: warbler
|
199
|
+
type: :runtime
|
200
|
+
prerelease: false
|
201
|
+
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: 2.0.5
|
206
|
+
- - "<"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 3.0.0
|
189
209
|
- !ruby/object:Gem::Dependency
|
190
210
|
requirement: !ruby/object:Gem::Requirement
|
191
211
|
requirements:
|