glimmer-dsl-tk 0.0.1 → 0.0.2

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: 45310155a2c33c5c9ba6cbdf0b1c531a7c56b7eebe746ccaacfc28cbfb5dfa41
4
- data.tar.gz: eb2b64327e24ff90ce3f674248b957d79fb89fab694bfe4d9795d582083552dd
3
+ metadata.gz: 3f1d6377c707655c2ae9b49e60f3412e31ef27869aefee78492c30feeba21ef5
4
+ data.tar.gz: 02bef3e445ba3e3fce1633d89af37c66860dadbe2ae5aa4472c6dbcbbcd3602c
5
5
  SHA512:
6
- metadata.gz: '096cb8daf02fe1cdc0aab75a143461e658fd0fd95dd9629b19d43f3cf7a274cacf9fa3daec404bbd5ec70534d28e80659579c5262b2006c02de51181b7c91398'
7
- data.tar.gz: c20e4aef88e707f438d7fc44f5293b832430e4e8a38c46a32a53e3fac42aaccf13f80c3130ea3b080a5948432ba98315733c94c7164161d3fab7f9b6053278c5
6
+ metadata.gz: 30f1946ae7324c585309f0986f5a320a427250ca2e6925999856a2bd07958ab420b8ba67e6227d1991f7ab68e43627337fc6644f4b97d81899a7dafaccc8db61
7
+ data.tar.gz: cba5744288234fe059aa9c5efe68d9c0404d81211d63096b07a45f89474fcaaa4c57b7faccb018003394c8a50a9750c5bfc4d26f17a5ee16b74f40f5dac60170
@@ -1,5 +1,10 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.0.2
4
+
5
+ - Notebook/frame support
6
+ - Hello, Tab! sample
7
+
3
8
  ## 0.0.1
4
9
 
5
10
  - Initial Glimmer DSL for TK implementation to support Hello, World!
data/README.md CHANGED
@@ -1,10 +1,10 @@
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 Tk 0.0.1 (Desktop GUI)
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 Tk 0.0.2 (Desktop GUI)
2
2
  [![Gem Version](https://badge.fury.io/rb/glimmer-dsl-tk.svg)](http://badge.fury.io/rb/glimmer-dsl-tk)
3
3
  [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
4
 
5
5
  [Glimmer](https://github.com/AndyObtiva/glimmer) DSL for [Tk](https://www.tcl.tk/) enables desktop development with [Glimmer](https://github.com/AndyObtiva/glimmer).
6
6
 
7
- [Tcl/Tk](https://www.tcl.tk/) has evolved into a practical desktop GUI toolkit due to gaining true native widgets on Mac, Windows, and Linux in Tk version 8.5.
7
+ [Tcl/Tk](https://www.tcl.tk/) has evolved into a practical desktop GUI toolkit due to gaining true native widgets on Mac, Windows, and Linux in [Tk version 8.5](https://www.tcl.tk/software/tcltk/8.5.html#:~:text=Highlights%20of%20Tk%208.5&text=Font%20rendering%3A%20Now%20uses%20anti,and%20window%20layout%2C%20and%20more.).
8
8
 
9
9
  Additionally, Ruby 3.0 supports truly parallel multi-threading, making both [MRI](https://github.com/ruby/ruby) and [Tk](https://www.tcl.tk/) finally viable for support in [Glimmer](https://github.com/AndyObtiva/glimmer) (Ruby Desktop Development GUI Library).
10
10
 
@@ -15,6 +15,28 @@ Additionally, Ruby 3.0 supports truly parallel multi-threading, making both [MRI
15
15
  - Scaffolding for new custom widgets, apps, and gems
16
16
  - Native-Executable packaging on Mac, Windows, and Linux
17
17
 
18
+ **Hello, World!**
19
+
20
+ Glimmer code (from [samples/hello/hello_world.rb](samples/hello/hello_world.rb)):
21
+
22
+ ```ruby
23
+ root {
24
+ label {
25
+ text 'Hello, World!'
26
+ }
27
+ }.open
28
+ ```
29
+
30
+ Run (with the [glimmer-dsl-tk](https://rubygems.org/gems/glimmer-dsl-tk) gem installed):
31
+
32
+ ```
33
+ ruby -e "require '../samples/hello/hello_world.rb'"
34
+ ```
35
+
36
+ Glimmer app:
37
+
38
+ ![glimmer dsl tk screenshot sample hello world](images/glimmer-dsl-tk-screenshot-sample-hello-world.png)
39
+
18
40
  Other [Glimmer](https://github.com/AndyObtiva/glimmer) DSL gems:
19
41
  - [glimmer-dsl-swt](https://github.com/AndyObtiva/glimmer-dsl-swt): Glimmer DSL for SWT (Desktop GUI via JRuby on SWT)
20
42
  - [glimmer-dsl-opal](https://github.com/AndyObtiva/glimmer-dsl-opal): Glimmer DSL for Opal (Web GUI Adapter for Desktop Apps)
@@ -46,7 +68,7 @@ gem install glimmer-dsl-tk
46
68
 
47
69
  Add the following to `Gemfile`:
48
70
  ```
49
- gem 'glimmer-dsl-tk', '~> 0.0.1'
71
+ gem 'glimmer-dsl-tk', '~> 0.0.2'
50
72
  ```
51
73
 
52
74
  And, then run:
@@ -54,9 +76,77 @@ And, then run:
54
76
  bundle
55
77
  ```
56
78
 
57
- ## Example
79
+ ## Tk Concepts
80
+
81
+ Here is a summary taken from the official [Tk Concepts Tutorial](https://tkdocs.com/tutorial/concepts.html)
82
+
83
+ Tk Concepts consist of:
84
+ - [Widgets](https://tkdocs.com/tutorial/concepts.html#widgets): Widgets are all the things that you see onscreen. In our example, we had a button, an entry, a few labels, and a frame. Others are things like checkboxes, tree views, scrollbars, text areas, and so on. Widgets are what are often referred to as "controls"; you'll also often see them referred to as "windows," particularly in Tk's documentation, a holdover from its X11 roots (so under that terminology, both a toplevel window and things like a button would be called windows).
85
+ - [Geometry Management](https://tkdocs.com/tutorial/concepts.html#geometry): If you've been playing around creating widgets, you've probably noticed that just by creating them, they didn't end up showing up onscreen. Having things actually put in the onscreen window, and precisely where in the window they show up is a separate step called geometry management.
86
+ - [Event Handling](https://tkdocs.com/tutorial/concepts.html#events): In Tk, as in most other user interface toolkits, there is an event loop which receives events from the operating system. These are things like button presses, keystrokes, mouse movement, window resizing, and so on.
87
+
88
+ Learn more at the official [Tk Concepts Tutorial](https://tkdocs.com/tutorial/concepts.html)
89
+
90
+ ## Glimmer GUI DSL Concepts
91
+
92
+ The Glimmer GUI DSL provides a declarative syntax for [Tk](https://www.tcl.tk/) that:
93
+ - Supports smart defaults (e.g. grid layout on most widgets)
94
+ - Automates wiring of widgets (e.g. nesting a label under a toplevel root or adding a frame to a notebook)
95
+ - Hides lower-level details (e.g. main loop is started automatically when opening a window)
96
+ - Nests widgets according to their visual hierarchy
97
+ - Requires the minimum amount of syntax needed to describe an app's GUI
98
+
99
+ The Glimmer GUI DSL follows these simple concepts in mapping from Tk syntax:
100
+ - **Widget Keyword**: Any Tk widget (e.g. `Tk::Tile::Label`) or toplevel window (e.g. `TkRoot`) may be declared by its lower-case underscored name without the namespace (e.g. `label` or `root`). This is called a keyword and is represented in the Glimmer GUI DSL by a Ruby method behind the scenes.
101
+ - **Args**: Any keyword method may optionally take arguments surrounded by parentheses (e.g. a `frame` nested under a `notebook` may receive tab options like `frame(text: 'Users')`, which gets used behind the scenes by Tk code such as `notebook.add tab, text: 'Users'`)
102
+ - **Content/Options Block**: Any keyword may optionally be followed by a Ruby curly-brace block
103
+
104
+ Example of an app written in [Tk](https://www.tcl.tk/) imperative syntax:
105
+
106
+ ```ruby
107
+ root = TkRoot.new
108
+ root.title = 'Hello, Tab!'
109
+
110
+ notebook = ::Tk::Tile::Notebook.new(root).grid
111
+
112
+ tab1 = ::Tk::Tile::Frame.new(notebook).grid
113
+ notebook.add tab1, text: 'English'
114
+ label1 = ::Tk::Tile::Label.new(tab1).grid
115
+ label1.text = 'Hello, World!'
116
+
117
+ tab2 = ::Tk::Tile::Frame.new(notebook).grid
118
+ notebook.add tab2, text: 'French'
119
+ label2 = ::Tk::Tile::Label.new(tab2).grid
120
+ label2.text = 'Bonjour, Univers!'
121
+
122
+ root.mainloop
123
+ ```
124
+
125
+ Example of the same app written in [Glimmer](https://github.com/AndyObtiva/glimmer) declarative syntax:
126
+
127
+ ```ruby
128
+ root {
129
+ title 'Hello, Tab!'
130
+
131
+ notebook {
132
+ frame(text: 'English') {
133
+ label {
134
+ text 'Hello, World!'
135
+ }
136
+ }
137
+
138
+ frame(text: 'French') {
139
+ label {
140
+ text 'Bonjour, Univers!'
141
+ }
142
+ }
143
+ }
144
+ }.open
145
+ ```
146
+
147
+ ## Samples
58
148
 
59
- ### Hello, World!:
149
+ ### Hello, World!
60
150
 
61
151
  Glimmer code (from [samples/hello/hello_world.rb](samples/hello/hello_world.rb)):
62
152
 
@@ -68,16 +158,51 @@ root {
68
158
  }.open
69
159
  ```
70
160
 
71
- Run:
161
+ Run (with the [glimmer-dsl-tk](https://rubygems.org/gems/glimmer-dsl-tk) gem installed):
72
162
 
73
163
  ```
74
- ruby samples/hello/hello_world.rb
164
+ ruby -e "gem 'glimmer-dsl-tk'; require '../samples/hello/hello_world.rb'"
75
165
  ```
76
166
 
77
167
  Glimmer app:
78
168
 
79
169
  ![glimmer dsl tk screenshot sample hello world](images/glimmer-dsl-tk-screenshot-sample-hello-world.png)
80
170
 
171
+ ### Hello, Tab!
172
+
173
+ Glimmer code (from [samples/hello/hello_tab.rb](samples/hello/hello_tab.rb)):
174
+
175
+ ```ruby
176
+ root {
177
+ title 'Hello, Tab!'
178
+
179
+ notebook {
180
+ frame(text: 'English') {
181
+ label {
182
+ text 'Hello, World!'
183
+ }
184
+ }
185
+
186
+ frame(text: 'French') {
187
+ label {
188
+ text 'Bonjour, Univers!'
189
+ }
190
+ }
191
+ }
192
+ }.open
193
+ ```
194
+
195
+ Run (with the [glimmer-dsl-tk](https://rubygems.org/gems/glimmer-dsl-tk) gem installed):
196
+
197
+ ```
198
+ ruby -e "gem 'glimmer-dsl-tk'; require '../samples/hello/hello_tab.rb'"
199
+ ```
200
+
201
+ Glimmer app:
202
+
203
+ ![glimmer dsl tk screenshot sample hello tab English](images/glimmer-dsl-tk-screenshot-sample-hello-tab-english.png)
204
+ ![glimmer dsl tk screenshot sample hello tab French](images/glimmer-dsl-tk-screenshot-sample-hello-tab-french.png)
205
+
81
206
  ## Help
82
207
 
83
208
  ### Issues
@@ -90,9 +215,13 @@ You may submit [issues](https://github.com/AndyObtiva/glimmer/issues) on [GitHub
90
215
 
91
216
  If you need live help, try to [![Join the chat at https://gitter.im/AndyObtiva/glimmer](https://badges.gitter.im/AndyObtiva/glimmer.svg)](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
92
217
 
218
+ ## Process
219
+
220
+ [Glimmer Process](https://github.com/AndyObtiva/glimmer/blob/master/PROCESS.md)
221
+
93
222
  ## Feature Suggestions
94
223
 
95
- These features have been suggested. You might see them in a future version of Glimmer. You are welcome to contribute more feature suggestions.
224
+ These features have been suggested. You might see them in a future version of Glimmer DSL for Tk. You are welcome to contribute more feature suggestions.
96
225
 
97
226
  [TODO.md](TODO.md)
98
227
 
@@ -108,7 +237,7 @@ These features have been suggested. You might see them in a future version of Gl
108
237
 
109
238
  * [Andy Maleh](https://github.com/AndyObtiva) (Founder)
110
239
 
111
- [Click here to view contributor commits.](https://github.com/AndyObtiva/glimmer-dsl-swt/graphs/contributors)
240
+ [Click here to view contributor commits.](https://github.com/AndyObtiva/glimmer-dsl-tk/graphs/contributors)
112
241
 
113
242
  ## License
114
243
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -24,7 +24,7 @@ $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
24
24
  # External requires
25
25
  require 'glimmer'
26
26
  require 'logging'
27
- # require 'puts_debuggerer'
27
+ require 'puts_debuggerer' if ENV['pd'].to_s.downcase == 'true'
28
28
  require 'super_module'
29
29
  require 'tk'
30
30
 
@@ -38,7 +38,7 @@ module Glimmer
38
38
  end
39
39
 
40
40
  def interpret(parent, keyword, *args, &block)
41
- Glimmer::Tk::WidgetProxy.new(keyword, parent, args, &block)
41
+ Glimmer::Tk::WidgetProxy.create(keyword, parent, args, &block)
42
42
  end
43
43
 
44
44
  def add_content(parent, &block)
@@ -52,3 +52,5 @@ module Glimmer
52
52
  end
53
53
 
54
54
  require 'glimmer/tk/widget_proxy'
55
+ require 'glimmer/tk/notebook_proxy'
56
+ require 'glimmer/tk/frame_proxy'
@@ -0,0 +1,42 @@
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
+ require 'glimmer/tk/widget_proxy'
23
+
24
+ module Glimmer
25
+ module Tk
26
+ # Proxy for Tk::Tile::Frame
27
+ #
28
+ # Follows the Proxy Design Pattern
29
+ class FrameProxy < WidgetProxy
30
+ attr_reader :tab_options
31
+
32
+ def initialize(underscored_widget_name, parent_proxy, args)
33
+ if parent_proxy.is_a?(NotebookProxy)
34
+ @tab_options, args[0] = args[0].to_h.partition {|key, value| NotebookProxy::TAB_OPTIONS.include?(key.to_s)}
35
+ @tab_options = Hash[@tab_options]
36
+ args.delete_at(0) if args[0].to_a.empty?
37
+ end
38
+ super
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,45 @@
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
+ require 'glimmer/tk/widget_proxy'
23
+
24
+ module Glimmer
25
+ module Tk
26
+ # Proxy for Tk::Tile::Notebook
27
+ #
28
+ # Follows the Proxy Design Pattern
29
+ class NotebookProxy < WidgetProxy
30
+ TAB_OPTIONS = ['state', 'sticky', 'padding', 'text', 'image', 'compound', 'underline']
31
+
32
+ attr_reader :tab_proxies
33
+
34
+ def initialize(*args)
35
+ @tab_proxies = []
36
+ super
37
+ end
38
+
39
+ def post_initialize_child(child)
40
+ @tab_proxies << child
41
+ @tk_widget.add child.tk_widget, child.tab_options
42
+ end
43
+ end
44
+ end
45
+ end
@@ -25,22 +25,43 @@ module Glimmer
25
25
  #
26
26
  # Follows the Proxy Design Pattern
27
27
  class WidgetProxy
28
- attr_reader :parent_proxy, :tk_widget, :drag_source_proxy, :drop_target_proxy, :drag_source_style, :drag_source_transfer, :drop_target_transfer
28
+ attr_reader :parent_proxy, :tk_widget, :args
29
29
 
30
30
  DEFAULT_INITIALIZERS = {
31
- 'label' => lambda do |label|
32
- label.grid
31
+ 'label' => lambda do |widget|
32
+ widget.grid
33
+ end,
34
+ 'frame' => lambda do |widget|
35
+ widget.grid
36
+ end,
37
+ 'notebook' => lambda do |widget|
38
+ widget.grid
33
39
  end,
34
40
  }
35
41
 
42
+ class << self
43
+ def create(keyword, parent, args)
44
+ widget_proxy_class(keyword).new(keyword, parent, args)
45
+ end
46
+
47
+ def widget_proxy_class(keyword)
48
+ begin
49
+ class_name = "#{keyword.camelcase(:upper)}Proxy".to_sym
50
+ Glimmer::Tk.const_get(class_name)
51
+ rescue
52
+ Glimmer::Tk::WidgetProxy
53
+ end
54
+ end
55
+ end
56
+
36
57
  # Initializes a new Tk Widget
37
58
  #
38
59
  # Styles is a comma separate list of symbols representing Tk styles in lower case
39
- def initialize(*init_args)
40
- underscored_widget_name, parent, extra_options = init_args
41
- @parent_proxy = parent
60
+ def initialize(underscored_widget_name, parent_proxy, args)
61
+ @parent_proxy = parent_proxy
62
+ @args = args
42
63
  tk_widget_class = self.class.tk_widget_class_for(underscored_widget_name)
43
- @tk_widget = tk_widget_class.new(@parent_proxy.tk_widget, *extra_options)
64
+ @tk_widget = tk_widget_class.new(@parent_proxy.tk_widget, *args)
44
65
  DEFAULT_INITIALIZERS[underscored_widget_name]&.call(@tk_widget)
45
66
  @parent_proxy.post_initialize_child(self)
46
67
  end
@@ -61,7 +82,7 @@ module Glimmer
61
82
 
62
83
  # This supports widgets in and out of basic Tk
63
84
  def self.tk_widget_class_for(underscored_widget_name)
64
- tk_widget_name = "::Tk::Tile::#{underscored_widget_name.camelcase(:upper)}"
85
+ tk_widget_name = "::Tk::Tile::#{underscored_widget_name.camelcase(:upper)}"
65
86
  tk_widget_class = eval(tk_widget_name)
66
87
  tk_widget_class
67
88
  rescue SyntaxError, NameError => e
@@ -0,0 +1,27 @@
1
+ require 'glimmer-dsl-tk'
2
+
3
+ class HelloTab
4
+ include Glimmer
5
+
6
+ def launch
7
+ root {
8
+ title 'Hello, Tab!'
9
+
10
+ notebook {
11
+ frame(text: 'English') {
12
+ label {
13
+ text 'Hello, World!'
14
+ }
15
+ }
16
+
17
+ frame(text: 'French') {
18
+ label {
19
+ text 'Bonjour, Univers!'
20
+ }
21
+ }
22
+ }
23
+ }.open
24
+ end
25
+ end
26
+
27
+ HelloTab.new.launch
@@ -24,6 +24,8 @@ require 'glimmer-dsl-tk'
24
24
  include Glimmer
25
25
 
26
26
  root {
27
+ title 'Hello, World!'
28
+
27
29
  label {
28
30
  text 'Hello, World!'
29
31
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-tk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - andy_maleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-10 00:00:00.000000000 Z
11
+ date: 2020-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.10.4
19
+ version: 0.10.3
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: 0.10.4
27
- - !ruby/object:Gem::Dependency
28
- name: super_module
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.4.1
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.4.1
26
+ version: 0.10.3
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: puts_debuggerer
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,134 +38,6 @@ dependencies:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: 0.10.0
55
- - !ruby/object:Gem::Dependency
56
- name: rake-tui
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 0.2.1
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 0.2.1
69
- - !ruby/object:Gem::Dependency
70
- name: git-glimmer
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 1.7.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 1.7.0
83
- - !ruby/object:Gem::Dependency
84
- name: jeweler
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 2.3.9
90
- - - "<"
91
- - !ruby/object:Gem::Version
92
- version: 3.0.0
93
- type: :runtime
94
- prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: 2.3.9
100
- - - "<"
101
- - !ruby/object:Gem::Version
102
- version: 3.0.0
103
- - !ruby/object:Gem::Dependency
104
- name: logging
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: 2.3.0
110
- - - "<"
111
- - !ruby/object:Gem::Version
112
- version: 3.0.0
113
- type: :runtime
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 2.3.0
120
- - - "<"
121
- - !ruby/object:Gem::Version
122
- version: 3.0.0
123
- - !ruby/object:Gem::Dependency
124
- name: os
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: 1.0.0
130
- - - "<"
131
- - !ruby/object:Gem::Version
132
- version: 2.0.0
133
- type: :runtime
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 1.0.0
140
- - - "<"
141
- - !ruby/object:Gem::Version
142
- version: 2.0.0
143
- - !ruby/object:Gem::Dependency
144
- name: rake
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: 10.1.0
150
- - - "<"
151
- - !ruby/object:Gem::Version
152
- version: 14.0.0
153
- type: :runtime
154
- prerelease: false
155
- version_requirements: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 10.1.0
160
- - - "<"
161
- - !ruby/object:Gem::Version
162
- version: 14.0.0
163
- - !ruby/object:Gem::Dependency
164
- name: text-table
165
- requirement: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: 1.2.4
170
- - - "<"
171
- - !ruby/object:Gem::Version
172
- version: 2.0.0
173
- type: :runtime
174
- prerelease: false
175
- version_requirements: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: 1.2.4
180
- - - "<"
181
- - !ruby/object:Gem::Version
182
- version: 2.0.0
183
41
  - !ruby/object:Gem::Dependency
184
42
  name: tk
185
43
  requirement: !ruby/object:Gem::Requirement
@@ -250,7 +108,41 @@ dependencies:
250
108
  - - ">="
251
109
  - !ruby/object:Gem::Version
252
110
  version: '0'
253
- description: Glimmer DSL for TK (Ruby Desktop GUI)
111
+ - !ruby/object:Gem::Dependency
112
+ name: jeweler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.9
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: 3.0.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 2.3.9
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: 3.0.0
131
+ - !ruby/object:Gem::Dependency
132
+ name: rake-tui
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 0.2.1
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 0.2.1
145
+ description: Glimmer DSL for Tk (Ruby Desktop GUI)
254
146
  email: andy.am@gmail.com
255
147
  executables: []
256
148
  extensions: []
@@ -268,8 +160,11 @@ files:
268
160
  - lib/glimmer/dsl/tk/dsl.rb
269
161
  - lib/glimmer/dsl/tk/root_expression.rb
270
162
  - lib/glimmer/dsl/tk/widget_expression.rb
163
+ - lib/glimmer/tk/frame_proxy.rb
164
+ - lib/glimmer/tk/notebook_proxy.rb
271
165
  - lib/glimmer/tk/root_proxy.rb
272
166
  - lib/glimmer/tk/widget_proxy.rb
167
+ - samples/hello/hello_tab.rb
273
168
  - samples/hello/hello_world.rb
274
169
  homepage: http://github.com/AndyObtiva/glimmer-dsl-tk
275
170
  licenses:
@@ -293,5 +188,5 @@ requirements: []
293
188
  rubygems_version: 3.1.2
294
189
  signing_key:
295
190
  specification_version: 4
296
- summary: Glimmer DSL for TK
191
+ summary: Glimmer DSL for Tk
297
192
  test_files: []