glimmer-dsl-swt 4.17.10.8 → 4.18.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f86e6ce8dc5b52db4661c0cb5aa9d9bce7e0cc644408ae1536aed5d2ea25d0cd
4
- data.tar.gz: ccdbb42c7bebc81a2a73235ee80ef53ce6607810152ea66b6336e33490a8e83a
3
+ metadata.gz: 50e5a8d642ce0d66a1451ab28c2029388aa1b38f2e930b01259ac5a09fa528a6
4
+ data.tar.gz: 280f7949f24aa626a97658fd0eaff2715bdc5538d4ab2220b08375050653adf3
5
5
  SHA512:
6
- metadata.gz: 7d1e3ee58b861a453d79cca264749bcfc17f0efd4e490864aadec61a4b4269ad033cc49fbf291ccf8b9840ed54813130e8620a557d1f15c3c6c25883276ee6cb
7
- data.tar.gz: 7fb220ed34798e701839cf118e1a7df1ebf5492b938570a8ee7dd0ad6a0a624808f52fe74ac30d221f58e6269ff708dd6d71098b0251c3470d16fa2a5c472323
6
+ metadata.gz: 95a750f50e8564ba0adbfe955234323b329f3760c72c8853dadb9b160444428794e91d78484c182efd4615fe806e2de711d21fbf81824c72cc1a9625d93a5bbe
7
+ data.tar.gz: '069fda16d1b6d399b35f11c7d32e68f3b3749e3cab7d79aef9a52b4583e885ebf55a53beeb68c66bcc47b27ce31f7d325189f8b24c8189d1da0e5fc2a2321903'
@@ -1,5 +1,19 @@
1
1
  # Change Log
2
2
 
3
+ ### 4.18.0.0
4
+
5
+ - Upgrade to SWT v4.18
6
+ - Upgrade to JRuby v9.2.14.0
7
+ - Apply all WidgetProxy property converters upon normal setting of properties too (not just in DSL) (like `some_widget.background = color_symbol`)
8
+ - Update Hello, Menu Bar! sample to show accelerators on menu items
9
+ - Have the `swt` keyword (SWTProxy) support accepting a string character (to build an accelerator style)
10
+ - Make accelerator property accept symbols and character directly (without swt)
11
+ - Write meta-sample changes to user directory to avoid permission issues
12
+ - Zero margin_left, margin_right, margin_top, margin_bottom in layouts given that margin_width and margin_height are set by default
13
+ - Prevent editing/launching meta-sample from Glimmer Meta-Sample
14
+ - Fix enablement on `menu` (as opposed to menu_item, where it works)
15
+ - Fix issue relating to background image scaling on resize of widget
16
+
3
17
  ### 4.17.10.8
4
18
 
5
19
  - Support editing sample code in the Glimmer Meta-Sample to enable experimentation and learning
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.10.8
1
+ # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.18.0.0
2
2
 
3
3
  ## JRuby Desktop Development GUI Framework
4
4
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-swt.svg)](http://badge.fury.io/rb/glimmer-dsl-swt)
@@ -17,7 +17,7 @@
17
17
 
18
18
  Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
19
19
 
20
- [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) versions 4.17.x.y come with [SWT 4.17](https://download.eclipse.org/eclipse/downloads/drops4/R-4.17-202009021800/), which was released on September 2, 2020.
20
+ [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) versions 4.18.x.y come with [SWT 4.18](https://download.eclipse.org/eclipse/downloads/drops4/R-4.18-202012021800/), which was released on December 2, 2020.
21
21
 
22
22
  [<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
23
23
  Featured in<br />JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do)
@@ -416,13 +416,13 @@ https://www.eclipse.org/swt/faq.php
416
416
  ## Pre-requisites
417
417
 
418
418
  - JDK 8u241 (1.8.0_241) (find at https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html)
419
- - JRuby 9.2.13.0 (supporting Ruby 2.5.x syntax) (get via [RVM](http://rvm.io) on Mac and Linux or find at [https://www.jruby.org/download](https://www.jruby.org/download) for Windows)
420
- - SWT 4.17 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem)
419
+ - JRuby 9.2.14.0 (supporting Ruby 2.5.x syntax) (get via [RVM](http://rvm.io) on Mac and Linux or find at [https://www.jruby.org/download](https://www.jruby.org/download) for Windows)
420
+ - SWT 4.18 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem)
421
421
 
422
422
  To obtain JRuby through [RVM](http://rvm.io), you may run:
423
423
 
424
424
  ```bash
425
- rvm install jruby-9.2.13.0
425
+ rvm install jruby-9.2.14.0
426
426
  ```
427
427
 
428
428
  Glimmer might still work on other versions of Java, JRuby and SWT, but there are no guarantees, so it is best to stick to the pre-requisites outlined above.
@@ -449,7 +449,7 @@ jgem install glimmer-dsl-swt
449
449
 
450
450
  Or this command if you want a specific version:
451
451
  ```
452
- jgem install glimmer-dsl-swt -v 4.17.10.8
452
+ jgem install glimmer-dsl-swt -v 4.18.0.0
453
453
 
454
454
  ```
455
455
 
@@ -468,7 +468,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
468
468
 
469
469
  Add the following to `Gemfile`:
470
470
  ```
471
- gem 'glimmer-dsl-swt', '~> 4.17'
471
+ gem 'glimmer-dsl-swt', '~> 4.18.0.0'
472
472
  ```
473
473
 
474
474
  And, then run:
@@ -526,7 +526,7 @@ bin/glimmer samples
526
526
  Below are the full usage instructions that come up when running `glimmer` without args.
527
527
 
528
528
  ```
529
- Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.17.10.8
529
+ Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.18.0.0
530
530
 
531
531
 
532
532
  Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
@@ -1004,7 +1004,7 @@ Output:
1004
1004
 
1005
1005
  Css glimmer-dsl-css 1.1.0 AndyMaleh Glimmer DSL for CSS
1006
1006
  Opal glimmer-dsl-opal 0.8.0 AndyMaleh Glimmer DSL for Opal
1007
- Swt glimmer-dsl-swt 4.17.10.8
1007
+ Swt glimmer-dsl-swt 4.18.0.0
1008
1008
  AndyMaleh Glimmer DSL for SWT
1009
1009
  Tk glimmer-dsl-tk 0.0.6 AndyMaleh Glimmer DSL for Tk
1010
1010
  Xml glimmer-dsl-xml 1.1.0 AndyMaleh Glimmer DSL for XML
@@ -3635,7 +3635,7 @@ This brings up the [Glimmer Meta-Sample (The Sample of Samples)](samples/elabora
3635
3635
 
3636
3636
  ![Glimmer Meta-Sample](images/glimmer-meta-sample.png)
3637
3637
 
3638
- You may edit the code of any sample before launching it via the "Launch" button. This helps you learn by experiementing with Glimmer GUI DSL syntax. To go back to original code, simply hit the "Reset" button.
3638
+ You may edit the code of any sample before launching it by clicking on the "Launch" button. This helps you learn by experimenting with Glimmer GUI DSL syntax. To go back to original code, simply hit the "Reset" button.
3639
3639
 
3640
3640
  ### Hello Samples
3641
3641
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.17.10.8
1
+ 4.18.0.0
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: glimmer-dsl-swt 4.17.10.8 ruby lib
5
+ # stub: glimmer-dsl-swt 4.18.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer-dsl-swt".freeze
9
- s.version = "4.17.10.8"
9
+ s.version = "4.18.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["AndyMaleh".freeze]
14
- s.date = "2020-12-17"
14
+ s.date = "2020-12-19"
15
15
  s.description = "Glimmer DSL for SWT (JRuby Desktop Development GUI Framework)".freeze
16
16
  s.email = "andy.am@gmail.com".freeze
17
17
  s.executables = ["glimmer".freeze, "girb".freeze]
@@ -166,32 +166,51 @@ Gem::Specification.new do |s|
166
166
  s.homepage = "http://github.com/AndyObtiva/glimmer-dsl-swt".freeze
167
167
  s.licenses = ["MIT".freeze]
168
168
  s.required_ruby_version = Gem::Requirement.new(">= 2.5.3".freeze)
169
- s.rubygems_version = "3.1.4".freeze
169
+ s.rubygems_version = "3.0.6".freeze
170
170
  s.summary = "Glimmer DSL for SWT".freeze
171
171
 
172
172
  if s.respond_to? :specification_version then
173
173
  s.specification_version = 4
174
- end
175
174
 
176
- if s.respond_to? :add_runtime_dependency then
177
- s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.0.6"])
178
- s.add_runtime_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
179
- s.add_runtime_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
180
- s.add_runtime_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
181
- s.add_runtime_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
182
- s.add_runtime_dependency(%q<git-glimmer>.freeze, ["= 1.7.0"])
183
- s.add_runtime_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
184
- s.add_runtime_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
185
- s.add_runtime_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
186
- s.add_runtime_dependency(%q<text-table>.freeze, [">= 1.2.4", "< 2.0.0"])
187
- s.add_runtime_dependency(%q<rouge>.freeze, [">= 3.26.0", "< 4.0.0"])
188
- s.add_development_dependency(%q<juwelier>.freeze, [">= 2.4.9", "< 3.0.0"])
189
- s.add_development_dependency(%q<warbler>.freeze, [">= 2.0.5", "< 3.0.0"])
190
- s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
191
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
192
- s.add_development_dependency(%q<coveralls>.freeze, ["= 0.8.23"])
193
- s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
194
- s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
175
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
176
+ s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.0.6"])
177
+ s.add_runtime_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
178
+ s.add_runtime_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
179
+ s.add_runtime_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
180
+ s.add_runtime_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
181
+ s.add_runtime_dependency(%q<git-glimmer>.freeze, ["= 1.7.0"])
182
+ s.add_runtime_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
183
+ s.add_runtime_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
184
+ s.add_runtime_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
185
+ s.add_runtime_dependency(%q<text-table>.freeze, [">= 1.2.4", "< 2.0.0"])
186
+ s.add_runtime_dependency(%q<rouge>.freeze, [">= 3.26.0", "< 4.0.0"])
187
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 2.4.9", "< 3.0.0"])
188
+ s.add_development_dependency(%q<warbler>.freeze, [">= 2.0.5", "< 3.0.0"])
189
+ s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
190
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
191
+ s.add_development_dependency(%q<coveralls>.freeze, ["= 0.8.23"])
192
+ s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
193
+ s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
194
+ else
195
+ s.add_dependency(%q<glimmer>.freeze, ["~> 1.0.6"])
196
+ s.add_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
197
+ s.add_dependency(%q<nested_inherited_jruby_include_package>.freeze, [">= 0.3.0", "< 2.0.0"])
198
+ s.add_dependency(%q<puts_debuggerer>.freeze, [">= 0.11.0", "< 2.0.0"])
199
+ s.add_dependency(%q<rake-tui>.freeze, [">= 0.2.3", "< 2.0.0"])
200
+ s.add_dependency(%q<git-glimmer>.freeze, ["= 1.7.0"])
201
+ s.add_dependency(%q<logging>.freeze, [">= 2.3.0", "< 3.0.0"])
202
+ s.add_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
203
+ s.add_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
204
+ s.add_dependency(%q<text-table>.freeze, [">= 1.2.4", "< 2.0.0"])
205
+ s.add_dependency(%q<rouge>.freeze, [">= 3.26.0", "< 4.0.0"])
206
+ s.add_dependency(%q<juwelier>.freeze, [">= 2.4.9", "< 3.0.0"])
207
+ s.add_dependency(%q<warbler>.freeze, [">= 2.0.5", "< 3.0.0"])
208
+ s.add_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
209
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
210
+ s.add_dependency(%q<coveralls>.freeze, ["= 0.8.23"])
211
+ s.add_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
212
+ s.add_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
213
+ end
195
214
  else
196
215
  s.add_dependency(%q<glimmer>.freeze, ["~> 1.0.6"])
197
216
  s.add_dependency(%q<super_module>.freeze, [">= 1.4.1", "< 2.0.0"])
@@ -36,6 +36,7 @@ require 'nested_inherited_jruby_include_package'
36
36
  require 'super_module'
37
37
  require 'rouge'
38
38
  require 'date'
39
+ require 'facets/string/capitalized'
39
40
 
40
41
  # Internal requires
41
42
  require 'ext/glimmer/config'
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2007-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
@@ -54,9 +54,9 @@ module Glimmer
54
54
  @args = @args.first if @args.size == 1 && @args.first.is_a?(Array)
55
55
  if options&.keys&.include?(:swt_image)
56
56
  @swt_image = options[:swt_image]
57
- @image_data = @swt_image.image_data
57
+ @original_image_data = @image_data = @swt_image.image_data
58
58
  elsif @file_path
59
- @image_data = ImageData.new(input_stream || @file_path)
59
+ @original_image_data = @image_data = ImageData.new(input_stream || @file_path)
60
60
  @swt_image = Image.new(DisplayProxy.instance.swt_display, @image_data)
61
61
  width = options[:width]
62
62
  height = options[:height]
@@ -65,8 +65,8 @@ module Glimmer
65
65
  scale_to(width, height) unless width.nil? || height.nil?
66
66
  else
67
67
  @swt_image = Image.new(*@args)
68
- @image_data = @swt_image.image_data
69
- end
68
+ @original_image_data = @image_data = @swt_image.image_data
69
+ end
70
70
  end
71
71
 
72
72
  def input_stream
@@ -77,12 +77,13 @@ module Glimmer
77
77
  file_input_stream = object.java_class.resource_as_stream(file_path)
78
78
  else
79
79
  file_input_stream = java.io.FileInputStream.new(@file_path)
80
- end
80
+ end
81
81
  java.io.BufferedInputStream.new(file_input_stream) if file_input_stream
82
82
  end
83
83
 
84
84
  def scale_to(width, height)
85
- scaled_image_data = image_data.scaledTo(width, height)
85
+ return if @image_data.width == width && @image_data.height == height
86
+ scaled_image_data = @original_image_data.scaledTo(width, height)
86
87
  device = swt_image.device
87
88
  swt_image.dispose
88
89
  @swt_image = Image.new(device, scaled_image_data)
@@ -99,7 +100,7 @@ module Glimmer
99
100
 
100
101
  def respond_to?(method, *args, &block)
101
102
  super || swt_image.respond_to?(method, *args, &block)
102
- end
103
+ end
103
104
  end
104
105
  end
105
106
  end
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2007-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
@@ -68,6 +68,10 @@ module Glimmer
68
68
  @swt_layout = self.class.swt_layout_class_for(underscored_layout_name).new(*args)
69
69
  @swt_layout.marginWidth = 15 if @swt_layout.respond_to?(:marginWidth)
70
70
  @swt_layout.marginHeight = 15 if @swt_layout.respond_to?(:marginHeight)
71
+ @swt_layout.marginTop = 0 if @swt_layout.respond_to?(:marginTop)
72
+ @swt_layout.marginRight = 0 if @swt_layout.respond_to?(:marginRight)
73
+ @swt_layout.marginBottom = 0 if @swt_layout.respond_to?(:marginBottom)
74
+ @swt_layout.marginLeft = 0 if @swt_layout.respond_to?(:marginLeft)
71
75
  @widget_proxy.swt_widget.setLayout(@swt_layout)
72
76
  end
73
77
 
@@ -75,7 +75,7 @@ module Glimmer
75
75
  end
76
76
 
77
77
  def has_attribute?(attribute_name, *args)
78
- if attribute_name.to_s == "text"
78
+ if ['text', 'enabled'].include?(attribute_name.to_s)
79
79
  true
80
80
  else
81
81
  super(attribute_name, *args)
@@ -83,24 +83,29 @@ module Glimmer
83
83
  end
84
84
 
85
85
  def set_attribute(attribute_name, *args)
86
- attribute_name
87
- if attribute_name.to_s == "text"
86
+ if normalized_attribute(attribute_name) == 'text'
88
87
  text_value = args[0]
89
88
  @swt_menu_item.setText text_value
89
+ elsif normalized_attribute(attribute_name) == 'enabled'
90
+ value = args[0]
91
+ @swt_menu_item.setEnabled value
90
92
  else
91
93
  super(attribute_name, *args)
92
94
  end
93
95
  end
94
96
 
95
97
  def get_attribute(attribute_name)
96
- if attribute_name.to_s == "text"
98
+ if normalized_attribute(attribute_name) == 'text'
97
99
  @swt_menu_item.getText
100
+ elsif normalized_attribute(attribute_name) == 'enabled'
101
+ @swt_menu_item.getEnabled
98
102
  else
99
103
  super(attribute_name)
100
104
  end
101
105
  end
102
106
 
103
107
  def can_handle_observation_request?(observation_request, super_only: false)
108
+ observation_request = observation_request.to_s
104
109
  super_result = super(observation_request)
105
110
  if observation_request.start_with?('on_') && !super_result && !super_only
106
111
  return menu_item_proxy.can_handle_observation_request?(observation_request)
@@ -28,7 +28,7 @@ module Glimmer
28
28
  # Follows the Proxy Design Pattern
29
29
  class SashFormProxy < WidgetProxy
30
30
  def post_add_content
31
- swt_widget.setWeights(@weights) unless @weights.nil?
31
+ self.weights = @weights unless @weights.nil?
32
32
  end
33
33
 
34
34
  def set_attribute(attribute_name, *args)
@@ -89,11 +89,15 @@ module Glimmer
89
89
  negative ? ~bit_value : bit_value
90
90
  rescue => e
91
91
  # Glimmer::Config.logger.debug {e.full_message}
92
- bit_value = extra_styles[swt_constant_symbol]
93
- if bit_value
94
- negative ? ~bit_value : bit_value
92
+ if symbol.to_s.size == 1 # accelerator key
93
+ symbol.to_s.bytes.first
95
94
  else
96
- symbol
95
+ bit_value = extra_styles[swt_constant_symbol]
96
+ if bit_value
97
+ negative ? ~bit_value : bit_value
98
+ else
99
+ symbol
100
+ end
97
101
  end
98
102
  end
99
103
  end
@@ -202,7 +202,22 @@ module Glimmer
202
202
  end
203
203
  end
204
204
 
205
+ def has_attribute_getter?(attribute_getter_name, *args)
206
+ attribute_getter_name = attribute_getter_name.to_s.underscore
207
+ return false unless !attribute_getter_name.end_with?('=') && !attribute_getter_name.start_with?('set_')
208
+ args.empty? && swt_widget.respond_to?(attribute_getter_name)
209
+ end
210
+
211
+ def has_attribute_setter?(attribute_setter_name, *args)
212
+ attribute_setter_name = attribute_setter_name.to_s
213
+ underscored_attribute_setter_name = attribute_setter_name.underscore
214
+ return false unless attribute_setter_name.end_with?('=') || (attribute_setter_name.start_with?('set_') && !args.empty?)
215
+ attribute_name = underscored_attribute_setter_name.sub(/^set_/, '').sub(/=$/, '')
216
+ has_attribute?(attribute_name, *args)
217
+ end
218
+
205
219
  def has_attribute?(attribute_name, *args)
220
+ # TODO test that attribute getter responds too
206
221
  widget_custom_attribute = widget_custom_attribute_mapping[attribute_name.to_s]
207
222
  if widget_custom_attribute
208
223
  @swt_widget.respond_to?(widget_custom_attribute[:setter][:name])
@@ -214,11 +229,13 @@ module Glimmer
214
229
  def set_attribute(attribute_name, *args)
215
230
  # TODO Think about widget subclasses overriding set_attribute to add more attributes vs adding as Ruby attributes directly
216
231
  widget_custom_attribute = widget_custom_attribute_mapping[attribute_name.to_s]
232
+ apply_property_type_converters(normalized_attribute(attribute_name), args)
217
233
  if widget_custom_attribute
218
234
  widget_custom_attribute[:setter][:invoker].call(@swt_widget, args)
219
235
  elsif @swt_widget.respond_to?(attribute_setter(attribute_name))
220
- apply_property_type_converters(attribute_name, args)
221
236
  @swt_widget.send(attribute_setter(attribute_name), *args) unless @swt_widget.send(attribute_getter(attribute_name)) == args.first
237
+ elsif @swt_widget.respond_to?(ruby_attribute_setter(attribute_name))
238
+ @swt_widget.send(ruby_attribute_setter(attribute_name), args)
222
239
  else
223
240
  send(ruby_attribute_setter(attribute_name), args)
224
241
  end
@@ -234,6 +251,12 @@ module Glimmer
234
251
  end
235
252
  elsif @swt_widget.respond_to?(attribute_getter(attribute_name))
236
253
  @swt_widget.send(attribute_getter(attribute_name))
254
+ elsif @swt_widget.respond_to?(ruby_attribute_getter(attribute_name))
255
+ @swt_widget.send(ruby_attribute_getter(attribute_name))
256
+ elsif @swt_widget.respond_to?(attribute_name)
257
+ @swt_widget.send(attribute_name)
258
+ elsif respond_to?(ruby_attribute_getter(attribute_name))
259
+ send(ruby_attribute_getter(attribute_name))
237
260
  else
238
261
  send(attribute_name)
239
262
  end
@@ -608,11 +631,16 @@ module Glimmer
608
631
  def method_missing(method, *args, &block)
609
632
  if can_handle_observation_request?(method)
610
633
  handle_observation_request(method, &block)
634
+ elsif has_attribute_setter?(method, *args)
635
+ set_attribute(method, *args)
636
+ elsif has_attribute_getter?(method, *args)
637
+ get_attribute(method, *args)
611
638
  else
612
639
  swt_widget.send(method, *args, &block)
613
640
  end
614
641
  rescue => e
615
- Glimmer::Config.logger.debug {"Neither WidgetProxy nor #{swt_widget.class.name} can handle the method ##{method}"}
642
+ Glimmer::Config.logger.debug { "Neither WidgetProxy nor #{swt_widget.class.name} can handle the method ##{method}" }
643
+ Glimmer::Config.logger.debug { e.full_message }
616
644
  super
617
645
  # TODO consider get_attribute too
618
646
  end
@@ -640,16 +668,26 @@ module Glimmer
640
668
  end
641
669
 
642
670
  def ruby_attribute_setter(attribute_name)
643
- "#{attribute_name}="
671
+ "#{normalized_attribute(attribute_name)}="
644
672
  end
645
673
 
646
674
  def attribute_setter(attribute_name)
647
- "set#{attribute_name.to_s.camelcase(:upper)}"
675
+ "set#{normalized_attribute(attribute_name).camelcase(:upper)}"
648
676
  end
649
677
 
650
678
  def attribute_getter(attribute_name)
651
- "get#{attribute_name.to_s.camelcase(:upper)}"
679
+ "get#{normalized_attribute(attribute_name).camelcase(:upper)}"
652
680
  end
681
+
682
+ def normalized_attribute(attribute_name)
683
+ attribute_name = attribute_name.to_s if attribute_name.is_a?(Symbol)
684
+ attribute_name = attribute_name.underscore unless attribute_name.downcase?
685
+ attribute_name = attribute_name.sub(/^get_/, '') if attribute_name.start_with?('get_')
686
+ attribute_name = attribute_name.sub(/^set_/, '') if attribute_name.start_with?('set_')
687
+ attribute_name = attribute_name.sub(/=$/, '') if attribute_name.end_with?('=')
688
+ attribute_name
689
+ end
690
+ alias ruby_attribute_getter normalized_attribute
653
691
 
654
692
  # TODO refactor following methods to eliminate duplication
655
693
  # perhaps consider relying on raising an exception to avoid checking first
@@ -800,11 +838,14 @@ module Glimmer
800
838
  end
801
839
  # TODO consider detecting type on widget method and automatically invoking right converter (e.g. :to_s for String, :to_i for Integer)
802
840
  @property_type_converters ||= {
803
- alignment: -> (*value) {
841
+ accelerator: lambda { |*value|
842
+ SWTProxy[*value]
843
+ },
844
+ alignment: lambda { |*value|
804
845
  SWTProxy[*value]
805
846
  },
806
- :background => color_converter,
807
- :background_image => lambda do |*value|
847
+ background: color_converter,
848
+ background_image: lambda do |*value|
808
849
  image_proxy = ImageProxy.create(*value)
809
850
 
810
851
  if image_proxy&.file_path&.end_with?('.gif')
@@ -845,7 +886,7 @@ module Glimmer
845
886
 
846
887
  image_proxy&.swt_image
847
888
  end,
848
- :cursor => lambda do |value|
889
+ cursor: lambda do |value|
849
890
  cursor_proxy = nil
850
891
  if value.is_a?(CursorProxy)
851
892
  cursor_proxy = value
@@ -857,9 +898,9 @@ module Glimmer
857
898
  :enabled => lambda do |value|
858
899
  !!value
859
900
  end,
860
- :foreground => color_converter,
861
- :link_foreground => color_converter,
862
- :font => lambda do |value|
901
+ foreground: color_converter,
902
+ link_foreground: color_converter,
903
+ font: lambda do |value|
863
904
  if value.is_a?(Hash)
864
905
  font_properties = value
865
906
  FontProxy.new(self, font_properties).swt_font
@@ -867,21 +908,21 @@ module Glimmer
867
908
  value
868
909
  end
869
910
  end,
870
- :image => lambda do |*value|
911
+ image: lambda do |*value|
871
912
  ImageProxy.create(*value).swt_image
872
913
  end,
873
- :images => lambda do |array|
914
+ images: lambda do |array|
874
915
  array.to_a.map do |value|
875
916
  ImageProxy.create(value).swt_image
876
917
  end.to_java(Image)
877
918
  end,
878
- :items => lambda do |value|
919
+ items: lambda do |value|
879
920
  value.to_java :string
880
921
  end,
881
- :text => lambda do |value|
922
+ text: lambda do |value|
882
923
  value.to_s
883
924
  end,
884
- :transfer => lambda do |value|
925
+ transfer: lambda do |value|
885
926
  value = value.first if value.is_a?(Array) && value.size == 1 && value.first.is_a?(Array)
886
927
  transfer_object_extrapolator = lambda do |transfer_name|
887
928
  transfer_type = "#{transfer_name.to_s.camelcase(:upper)}Transfer".to_sym
@@ -900,9 +941,12 @@ module Glimmer
900
941
  result = result.to_java(Transfer) unless result.is_a?(ArrayJavaProxy)
901
942
  result
902
943
  end,
903
- :visible => lambda do |value|
944
+ visible: lambda do |value|
904
945
  !!value
905
946
  end,
947
+ weights: lambda do |value|
948
+ value.to_java(:int)
949
+ end,
906
950
  }
907
951
  end
908
952
  end
@@ -1,4 +1,5 @@
1
1
  require 'fileutils'
2
+ require 'etc'
2
3
 
3
4
  class Sample
4
5
  include Glimmer::DataBinding::ObservableModel
@@ -33,23 +34,29 @@ class Sample
33
34
  notify_observers('code')
34
35
  end
35
36
 
37
+ def editable
38
+ File.basename(file) != 'meta_sample.rb'
39
+ end
40
+ alias launchable editable
41
+
36
42
  def launch(modified_code)
37
- modified_file = File.join(File.dirname(file), ".#{File.basename(file)}")
43
+ parent_directory = File.basename(File.dirname(file))
44
+ modified_file_parent_directory = File.join(Etc.getpwuid.dir, '.glimmer', 'samples', parent_directory)
45
+ launch_file = modified_file = File.join(modified_file_parent_directory, File.basename(file))
38
46
  begin
47
+ FileUtils.mkdir_p(modified_file_parent_directory)
48
+ FileUtils.cp_r(file, modified_file_parent_directory)
49
+ FileUtils.cp_r(file.sub(/\.rb/, ''), modified_file_parent_directory) if File.exist?(file.sub(/\.rb/, ''))
39
50
  File.write(modified_file, modified_code)
40
- begin
41
- load(modified_file)
42
- rescue StandardError, SyntaxError => launch_error
43
- message_box {
44
- text 'Error Launching'
45
- message launch_error.full_message
46
- }.open
47
- end
48
- rescue
49
- load(file) # load original file if failed to write changes
50
- ensure
51
- FileUtils.rm_rf(modified_file)
51
+ rescue => e
52
+ puts 'Error writing sample modifications. Launching original sample.'
53
+ puts e.full_message
54
+ launch_file = file # load original file if failed to write changes
52
55
  end
56
+ load(launch_file)
57
+ ensure
58
+ FileUtils.rm_rf(modified_file)
59
+ FileUtils.rm_rf(modified_file.sub(/\.rb/, ''))
53
60
  end
54
61
  end
55
62
 
@@ -149,7 +156,10 @@ class MetaSampleApplication
149
156
 
150
157
  sash_form {
151
158
  composite {
152
- grid_layout 1, false
159
+ grid_layout(1, false) {
160
+ margin_width 0
161
+ margin_height 0
162
+ }
153
163
 
154
164
  expand_bar {
155
165
  layout_data(:fill, :fill, true, true)
@@ -180,13 +190,24 @@ class MetaSampleApplication
180
190
  button {
181
191
  text 'Launch'
182
192
  font height: 30
193
+ enabled bind(SampleDirectory, 'selected_sample.launchable')
194
+
183
195
  on_widget_selected {
184
- SampleDirectory.selected_sample.launch(@code_text.text)
196
+ begin
197
+ SampleDirectory.selected_sample.launch(@code_text.text)
198
+ rescue StandardError, SyntaxError => launch_error
199
+ message_box {
200
+ text 'Error Launching'
201
+ message launch_error.full_message
202
+ }.open
203
+ end
185
204
  }
186
205
  }
187
206
  button {
188
207
  text 'Reset'
189
208
  font height: 30
209
+ enabled bind(SampleDirectory, 'selected_sample.editable')
210
+
190
211
  on_widget_selected {
191
212
  SampleDirectory.selected_sample.reset_code!
192
213
  }
@@ -196,6 +217,7 @@ class MetaSampleApplication
196
217
 
197
218
  @code_text = code_text {
198
219
  text bind(SampleDirectory, 'selected_sample.code', read_only: true)
220
+ editable bind(SampleDirectory, 'selected_sample.editable')
199
221
  }
200
222
 
201
223
  weights 4, 9
@@ -21,50 +21,52 @@
21
21
 
22
22
  include Glimmer
23
23
 
24
- shell { |shell_proxy|
24
+ COLORS = [:white, :red, :yellow, :green, :blue, :magenta, :gray, :black]
25
+
26
+ shell {
27
+ grid_layout {
28
+ margin_width 0
29
+ margin_height 0
30
+ }
31
+
25
32
  text 'Hello, Menu Bar!'
26
- grid_layout
27
- label(:center) {
28
- font height: 16
29
- text 'Check Out The File Menu and History Menu in The Menu Bar Above!'
33
+
34
+ @label = label(:center) {
35
+ font height: 50
36
+ text 'Check Out The Menu Bar Above!'
30
37
  }
38
+
31
39
  menu_bar {
32
40
  menu {
33
41
  text '&File'
34
42
  menu_item {
35
- text 'E&xit'
36
- on_widget_selected {
37
- exit(0)
38
- }
39
- }
40
- menu_item(0) {
41
43
  text '&New'
44
+ accelerator :command, :N
45
+
42
46
  on_widget_selected {
43
- message_box(shell_proxy) {
44
- text 'New File'
45
- message 'New File Contents'
47
+ message_box {
48
+ text 'New'
49
+ message 'New file created.'
46
50
  }.open
47
51
  }
48
52
  }
49
- menu(1) {
50
- text '&Options'
51
- menu_item(:radio) {
52
- text 'Option 1'
53
- }
54
- menu_item(:separator)
55
- menu_item(:check) {
56
- text 'Option 3'
53
+ menu_item {
54
+ text '&Open...'
55
+ accelerator :command, :O
56
+
57
+ on_widget_selected {
58
+ message_box {
59
+ text 'Open'
60
+ message 'Opening File...'
61
+ }.open
57
62
  }
58
63
  }
59
- }
60
- menu {
61
- text '&History'
62
64
  menu {
63
- text '&Recent'
65
+ text 'Open &Recent'
64
66
  menu_item {
65
67
  text 'File 1'
66
68
  on_widget_selected {
67
- message_box(shell_proxy) {
69
+ message_box {
68
70
  text 'File 1'
69
71
  message 'File 1 Contents'
70
72
  }.open
@@ -73,13 +75,167 @@ shell { |shell_proxy|
73
75
  menu_item {
74
76
  text 'File 2'
75
77
  on_widget_selected {
76
- message_box(shell_proxy) {
78
+ message_box {
77
79
  text 'File 2'
78
80
  message 'File 2 Contents'
79
81
  }.open
80
82
  }
81
83
  }
82
84
  }
85
+ menu_item(:separator)
86
+ menu_item {
87
+ text 'E&xit'
88
+
89
+ on_widget_selected {
90
+ exit(0)
91
+ }
92
+ }
93
+ }
94
+ menu {
95
+ text '&Edit'
96
+ menu_item {
97
+ text 'Cut'
98
+ accelerator :command, :X
99
+ }
100
+ menu_item {
101
+ text 'Copy'
102
+ accelerator :command, :C
103
+ }
104
+ menu_item {
105
+ text 'Paste'
106
+ accelerator :command, :V
107
+ }
108
+ }
109
+ menu {
110
+ text '&Options'
111
+
112
+ menu_item(:radio) {
113
+ text '&Enabled'
114
+
115
+ on_widget_selected {
116
+ @select_one_menu.enabled = true
117
+ @select_multiple_menu.enabled = true
118
+ }
119
+ }
120
+ @select_one_menu = menu {
121
+ text '&Select One'
122
+ enabled false
123
+
124
+ menu_item(:radio) {
125
+ text 'Option 1'
126
+ }
127
+ menu_item(:radio) {
128
+ text 'Option 2'
129
+ }
130
+ menu_item(:radio) {
131
+ text 'Option 3'
132
+ }
133
+ }
134
+ @select_multiple_menu = menu {
135
+ text '&Select Multiple'
136
+ enabled false
137
+
138
+ menu_item(:check) {
139
+ text 'Option 4'
140
+ }
141
+ menu_item(:check) {
142
+ text 'Option 5'
143
+ }
144
+ menu_item(:check) {
145
+ text 'Option 6'
146
+ }
147
+ }
148
+ }
149
+ menu {
150
+ text '&Format'
151
+ menu {
152
+ text '&Background Color'
153
+ COLORS.each { |color_style|
154
+ menu_item(:radio) {
155
+ text color_style.to_s.split('_').map(&:capitalize).join(' ')
156
+
157
+ on_widget_selected {
158
+ @label.background = color_style
159
+ }
160
+ }
161
+ }
162
+ }
163
+ menu {
164
+ text 'Foreground &Color'
165
+ COLORS.each { |color_style|
166
+ menu_item(:radio) {
167
+ text color_style.to_s.split('_').map(&:capitalize).join(' ')
168
+
169
+ on_widget_selected {
170
+ @label.foreground = color_style
171
+ }
172
+ }
173
+ }
174
+ }
175
+ }
176
+ menu {
177
+ text '&View'
178
+ menu_item(:radio) {
179
+ text 'Small'
180
+
181
+ on_widget_selected {
182
+ @label.font = {height: 25}
183
+ @label.parent.pack
184
+ }
185
+ }
186
+ menu_item(:radio) {
187
+ text 'Medium'
188
+ selection true
189
+
190
+ on_widget_selected {
191
+ @label.font = {height: 50}
192
+ @label.parent.pack
193
+ }
194
+ }
195
+ menu_item(:radio) {
196
+ text 'Large'
197
+
198
+ on_widget_selected {
199
+ @label.font = {height: 75}
200
+ @label.parent.pack
201
+ }
202
+ }
203
+ }
204
+ menu {
205
+ text '&Help'
206
+ menu_item {
207
+ text '&Manual'
208
+ accelerator :command, :shift, :M
209
+
210
+ on_widget_selected {
211
+ message_box {
212
+ text 'Manual'
213
+ message 'Manual Contents'
214
+ }.open
215
+ }
216
+ }
217
+ menu_item {
218
+ text '&Tutorial'
219
+ accelerator :command, :shift, :T
220
+
221
+ on_widget_selected {
222
+ message_box {
223
+ text 'Tutorial'
224
+ message 'Tutorial Contents'
225
+ }.open
226
+ }
227
+ }
228
+ menu_item(:separator)
229
+ menu_item {
230
+ text '&Report an Issue...'
231
+
232
+ on_widget_selected {
233
+ message_box {
234
+ text 'Report an Issue'
235
+ message 'Reporting an issue...'
236
+ }.open
237
+ }
238
+ }
83
239
  }
84
240
  }
85
241
  }.open
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-swt
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.17.10.8
4
+ version: 4.18.0.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-12-17 00:00:00.000000000 Z
11
+ date: 2020-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: 1.0.6
19
19
  name: glimmer
20
- prerelease: false
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -34,8 +34,8 @@ dependencies:
34
34
  - !ruby/object:Gem::Version
35
35
  version: 2.0.0
36
36
  name: super_module
37
- prerelease: false
38
37
  type: :runtime
38
+ prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
@@ -54,8 +54,8 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: 2.0.0
56
56
  name: nested_inherited_jruby_include_package
57
- prerelease: false
58
57
  type: :runtime
58
+ prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
@@ -74,8 +74,8 @@ dependencies:
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.0.0
76
76
  name: puts_debuggerer
77
- prerelease: false
78
77
  type: :runtime
78
+ prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
@@ -94,8 +94,8 @@ dependencies:
94
94
  - !ruby/object:Gem::Version
95
95
  version: 2.0.0
96
96
  name: rake-tui
97
- prerelease: false
98
97
  type: :runtime
98
+ prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -111,8 +111,8 @@ dependencies:
111
111
  - !ruby/object:Gem::Version
112
112
  version: 1.7.0
113
113
  name: git-glimmer
114
- prerelease: false
115
114
  type: :runtime
115
+ prerelease: false
116
116
  version_requirements: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - '='
@@ -128,8 +128,8 @@ dependencies:
128
128
  - !ruby/object:Gem::Version
129
129
  version: 3.0.0
130
130
  name: logging
131
- prerelease: false
132
131
  type: :runtime
132
+ prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
@@ -148,8 +148,8 @@ dependencies:
148
148
  - !ruby/object:Gem::Version
149
149
  version: 2.0.0
150
150
  name: os
151
- prerelease: false
152
151
  type: :runtime
152
+ prerelease: false
153
153
  version_requirements: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - ">="
@@ -168,8 +168,8 @@ dependencies:
168
168
  - !ruby/object:Gem::Version
169
169
  version: 14.0.0
170
170
  name: rake
171
- prerelease: false
172
171
  type: :runtime
172
+ prerelease: false
173
173
  version_requirements: !ruby/object:Gem::Requirement
174
174
  requirements:
175
175
  - - ">="
@@ -188,8 +188,8 @@ dependencies:
188
188
  - !ruby/object:Gem::Version
189
189
  version: 2.0.0
190
190
  name: text-table
191
- prerelease: false
192
191
  type: :runtime
192
+ prerelease: false
193
193
  version_requirements: !ruby/object:Gem::Requirement
194
194
  requirements:
195
195
  - - ">="
@@ -208,8 +208,8 @@ dependencies:
208
208
  - !ruby/object:Gem::Version
209
209
  version: 4.0.0
210
210
  name: rouge
211
- prerelease: false
212
211
  type: :runtime
212
+ prerelease: false
213
213
  version_requirements: !ruby/object:Gem::Requirement
214
214
  requirements:
215
215
  - - ">="
@@ -228,8 +228,8 @@ dependencies:
228
228
  - !ruby/object:Gem::Version
229
229
  version: 3.0.0
230
230
  name: juwelier
231
- prerelease: false
232
231
  type: :development
232
+ prerelease: false
233
233
  version_requirements: !ruby/object:Gem::Requirement
234
234
  requirements:
235
235
  - - ">="
@@ -248,8 +248,8 @@ dependencies:
248
248
  - !ruby/object:Gem::Version
249
249
  version: 3.0.0
250
250
  name: warbler
251
- prerelease: false
252
251
  type: :development
252
+ prerelease: false
253
253
  version_requirements: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - ">="
@@ -265,8 +265,8 @@ dependencies:
265
265
  - !ruby/object:Gem::Version
266
266
  version: 3.5.0
267
267
  name: rspec-mocks
268
- prerelease: false
269
268
  type: :development
269
+ prerelease: false
270
270
  version_requirements: !ruby/object:Gem::Requirement
271
271
  requirements:
272
272
  - - "~>"
@@ -279,8 +279,8 @@ dependencies:
279
279
  - !ruby/object:Gem::Version
280
280
  version: 3.5.0
281
281
  name: rspec
282
- prerelease: false
283
282
  type: :development
283
+ prerelease: false
284
284
  version_requirements: !ruby/object:Gem::Requirement
285
285
  requirements:
286
286
  - - "~>"
@@ -293,8 +293,8 @@ dependencies:
293
293
  - !ruby/object:Gem::Version
294
294
  version: 0.8.23
295
295
  name: coveralls
296
- prerelease: false
297
296
  type: :development
297
+ prerelease: false
298
298
  version_requirements: !ruby/object:Gem::Requirement
299
299
  requirements:
300
300
  - - '='
@@ -307,8 +307,8 @@ dependencies:
307
307
  - !ruby/object:Gem::Version
308
308
  version: 0.16.1
309
309
  name: simplecov
310
- prerelease: false
311
310
  type: :development
311
+ prerelease: false
312
312
  version_requirements: !ruby/object:Gem::Requirement
313
313
  requirements:
314
314
  - - "~>"
@@ -321,8 +321,8 @@ dependencies:
321
321
  - !ruby/object:Gem::Version
322
322
  version: 0.7.0
323
323
  name: simplecov-lcov
324
- prerelease: false
325
324
  type: :development
325
+ prerelease: false
326
326
  version_requirements: !ruby/object:Gem::Requirement
327
327
  requirements:
328
328
  - - "~>"
@@ -499,7 +499,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
499
499
  - !ruby/object:Gem::Version
500
500
  version: '0'
501
501
  requirements: []
502
- rubygems_version: 3.1.4
502
+ rubygems_version: 3.0.6
503
503
  signing_key:
504
504
  specification_version: 4
505
505
  summary: Glimmer DSL for SWT