tk_paradise 0.0.13

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.
Files changed (32) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +387 -0
  3. data/doc/README.gen +325 -0
  4. data/lib/tk_paradise/base/base.rb +63 -0
  5. data/lib/tk_paradise/examples/001_dialog_box_example.rb +21 -0
  6. data/lib/tk_paradise/examples/002_draw_tiny_box.rb +22 -0
  7. data/lib/tk_paradise/examples/003_fun_with_cursors.rb +82 -0
  8. data/lib/tk_paradise/examples/004_hello_world_example.rb +23 -0
  9. data/lib/tk_paradise/examples/005_key_press_event_example.rb +21 -0
  10. data/lib/tk_paradise/examples/006_multiple_buttons.rb +30 -0
  11. data/lib/tk_paradise/examples/007_packing_example_in_tk.rb +28 -0
  12. data/lib/tk_paradise/examples/008_pig_latin_example.rb +70 -0
  13. data/lib/tk_paradise/examples/009_scrollbar_example.rb +44 -0
  14. data/lib/tk_paradise/examples/010_telnet_client.rb +106 -0
  15. data/lib/tk_paradise/examples/011_thermostat_example.rb +60 -0
  16. data/lib/tk_paradise/examples/012_tk_menu_example.rb +23 -0
  17. data/lib/tk_paradise/examples/013_tk_popup.rb +61 -0
  18. data/lib/tk_paradise/examples/014_tk_slider.rb +63 -0
  19. data/lib/tk_paradise/examples/015_choose_colour_example.rb +22 -0
  20. data/lib/tk_paradise/examples/016_spin_box_example.rb +28 -0
  21. data/lib/tk_paradise/examples/017_combo_box_example.rb +46 -0
  22. data/lib/tk_paradise/examples/018_tk_list_box_example.rb +18 -0
  23. data/lib/tk_paradise/examples/019_tk_curves.rb +33 -0
  24. data/lib/tk_paradise/examples/advanced/0001_example_showing_move_method.rb +32 -0
  25. data/lib/tk_paradise/examples/advanced/0019_tk_curves.rb +0 -0
  26. data/lib/tk_paradise/tk_classes/label.rb +18 -0
  27. data/lib/tk_paradise/tk_classes/root.rb +24 -0
  28. data/lib/tk_paradise/tk_paradise.rb +154 -0
  29. data/lib/tk_paradise/version/version.rb +19 -0
  30. data/lib/tk_paradise.rb +5 -0
  31. data/tk_paradise.gemspec +42 -0
  32. metadata +106 -0
@@ -0,0 +1,63 @@
1
+ # This demonstration script creates a text widget that illustrates the
2
+ # various display styles that may be set for tags.
3
+ # Modified from the demo widget example provided in the Tcl release
4
+ require 'tk'
5
+ TITLE = 'Packing Example'
6
+ root = TkRoot.new() { title TITLE }
7
+ button = TkButton.new(root) {
8
+ text "First, rightmost"
9
+ }
10
+ button.pack("side"=>"right", "fill"=>'y')
11
+ entry = TkEntry.new(root).pack("side"=>"top", "fill"=>"x")
12
+ entry.insert(0, "Entry on the top")
13
+ label = TkLabel.new() { text 'to the right' }
14
+ label.pack("side"=>"right")
15
+ image = TkPhotoImage.new(
16
+ 'file' => '/home/x/DATA/images/NJOY/Leeann_Tweeden.png',
17
+ 'height' => 52
18
+ )
19
+ img_label = TkLabel.new(root) { image image }.pack("anchor"=>"e")
20
+ text = TkText.new(root) { width 20; height 5 }.pack("side"=>"left")
21
+ text.insert('end', "Left in canvas")
22
+ TkButton.new(root) {
23
+ index = 0
24
+ text 'Click Me'
25
+ command proc {
26
+ index += 1
27
+ puts 'Congratulations on creating ' +
28
+ 'your '+verbose_number_to_word_position(index.to_s)+' Ruby/Tk' +
29
+ 'application'}
30
+ }.pack('padx'=>15, 'pady'=>15)
31
+ #TkScrollbar.new(root)
32
+ TkMessage.new(root) { text "Message in the Bottom" }.pack("side"=>"bottom")
33
+ Tk.mainloop()
34
+
35
+
36
+ #text .t -yscrollcommand ".scroll set" -setgrid true \
37
+ # -width 40 -height 10 -wrap word
38
+ #scrollbar .scroll -command ".t yview"
39
+ #pack .scroll -side right -fill y
40
+ #pack .t -expand yes -fill both
41
+ #
42
+ # Set up the tags
43
+ #.t tag configure bold_italics -font \
44
+ # {-family courier -size 12 -weight bold -slant italic}
45
+ #.t tag configure big -font {-family helvetica -size 24 -weight bold}
46
+ #.t tag configure color1 -foreground red
47
+ #.t tag configure sunken -relief sunken -borderwidth 1
48
+ #.t tag bind Ouch <1> {.t insert end "Ouch! "}
49
+ #
50
+ # Now insert text that has the property of the tags
51
+ #.t insert end "Here are a few text styles.\n"
52
+ #.t insert end "1. Bold italic text.\n" bold_italics#
53
+ #.t insert end "2. Larger Helvetica text.\n" big
54
+ #.t insert end "3. Red text.\n" color1
55
+ #.t insert end "4. Sunken text.\n" sunken
56
+ #button .b -text "5. An embedded Hello Button" \
57
+ # -command {.t insert end "Hello "}
58
+ #.t window create end -window .b
59
+ #.t insert end "\n"
60
+ # .t insert end "6. Text with a binding (try clicking me)" Ouch
61
+ #.t insert end "\nAnd all this is editable!"
62
+
63
+
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'tk'
6
+
7
+ root = TkRoot.new
8
+ root.title = 'Window'
9
+ root.geometry('800x600+0+0')
10
+
11
+ button_click = Proc.new {
12
+ Tk.chooseColor
13
+ }
14
+
15
+ button = TkButton.new(root) {
16
+ text 'button'
17
+ pack(side: :left, padx: "50", pady: "50")
18
+ }
19
+
20
+ button.command = button_click
21
+
22
+ Tk.mainloop
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'tk'
6
+
7
+ alias e puts
8
+
9
+ root = TkRoot.new
10
+ root.title = 'Window'
11
+ root.geometry('800x600+0+0')
12
+
13
+ @spin_box_variable = TkVariable.new
14
+ @spin_box = TkSpinbox.new(root) {
15
+ from 0
16
+ to 100
17
+ increment 5
18
+ justify :center
19
+ textvariable @spin_box_variable
20
+ command proc { callback }
21
+ pack(side: 'left', padx: '50', pady: '50')
22
+ }
23
+ def callback
24
+ e 'The value has changed.'
25
+ e @spin_box_variable.get
26
+ end
27
+
28
+ Tk.mainloop
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'tk'
6
+
7
+ alias e puts
8
+
9
+ root = TkRoot.new
10
+ root.title = 'Combo Box Example'
11
+ root.geometry('700x550+0+0')
12
+
13
+ MONOSPACED_FONT = TkFont.new(family: 'Hack', size: 22, weight: 'bold')
14
+
15
+ # =========================================================================== #
16
+ # label text for title
17
+ # =========================================================================== #
18
+ TkLabel.new(root,
19
+ text: 'Combobox Widget',
20
+ background: 'green',
21
+ foreground: 'white',
22
+ font: MONOSPACED_FONT
23
+ ).grid(row: 0, column: 0)
24
+
25
+ TkLabel.new(root,
26
+ text: 'Select the month:',
27
+ font: MONOSPACED_FONT
28
+ ).grid(column: 0, row: 5, padx: 10, pady: 25)
29
+
30
+ # =========================================================================== #
31
+ # Combobox creation:
32
+ # =========================================================================== #
33
+ n = TkVariable.new
34
+ combo_box = TkCombobox.new(
35
+ root,
36
+ width: 30,
37
+ font: MONOSPACED_FONT,
38
+ textvariable: n
39
+ )
40
+ combo_box.values(%w(
41
+ aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu
42
+ ))
43
+ combo_box.grid(column: 0, row: 6)
44
+ combo_box.current = 3
45
+
46
+ Tk.mainloop
@@ -0,0 +1,18 @@
1
+ require 'tk'
2
+
3
+ root = TkRoot.new
4
+ root.title = "Window"
5
+ root.geometry('700x400+0+0')
6
+ list = TkListbox.new(root) {
7
+ width 10
8
+ height 10
9
+ setgrid 1
10
+ selectmode 'multiple'
11
+ pack('fill' => 'x')
12
+ }
13
+
14
+ list.insert 0, "yellow", "gray", "green",
15
+ "blue", "red", "black", "white", "cyan",
16
+ "pink", "yellow", "orange", "gray"
17
+
18
+ Tk.mainloop
@@ -0,0 +1,33 @@
1
+ require 'tk'
2
+ include Math
3
+
4
+ TkRoot.new { |root|
5
+ title 'Curves'
6
+ geometry "400x400"
7
+ TkCanvas.new(root) do |canvas|
8
+ width 400
9
+ height 400
10
+ pack('side'=>'top', 'fill'=>'both', 'expand'=>'yes')
11
+ points = [ ]
12
+ 10.upto(30) do |scale|
13
+ (0.0).step(2*PI,0.1) do |i|
14
+ new_x = 5*scale*sin(i) + 200
15
+ new_y = 5*scale*cos(i) + 200
16
+ points << [ new_x, new_y ]
17
+ f = scale/5.0
18
+ r = (Math.sin(f)+1)*127.0
19
+ g = (Math.cos(2*f)+1)*127.0
20
+ b = (Math.sin(3*f)+1)*127.0
21
+ col = sprintf("#%02x%02x%02x", r.to_i, g.to_i, b.to_i)
22
+ if points.size == 3
23
+ TkcLine.new(canvas, points[0][0], points[0][1],
24
+ points[1][0], points[1][1], points[2][0], points[2][1],
25
+ 'smooth'=>'on', 'width'=> 7, 'fill' => col, 'capstyle' => 'round')
26
+ points.shift
27
+ end
28
+ end
29
+ end
30
+ end
31
+ }
32
+
33
+ Tk.mainloop
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'tk_paradise'
6
+
7
+ alias e puts
8
+
9
+ @window = Tk.root
10
+ @window.title = 'Window'
11
+ @window.move(0, 0)
12
+ USE_THIS_FONT = TkFont.new(family: 'Helvetica', size: 20, weight: 'bold')
13
+
14
+ # =========================================================================== #
15
+ # === on_button1_clicked
16
+ # =========================================================================== #
17
+ def on_button1_clicked
18
+ result = Tk.choose_colour # The result may be like this: "#d9845b"
19
+ @window.configure(background: result)
20
+ return result
21
+ end
22
+
23
+ proc_on_button_clicked = Proc.new { on_button1_clicked }
24
+
25
+ button = TkButton.new(@window) {
26
+ text 'button: choose a colour'
27
+ font USE_THIS_FONT
28
+ pack(side: :left, padx: "50", pady: "50")
29
+ }
30
+ button.command = proc_on_button_clicked
31
+
32
+ Tk.run
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'tk_paradise/tk_classes/label.rb'
6
+ # =========================================================================== #
7
+ module Tk
8
+
9
+ class TkLabel
10
+
11
+ # ========================================================================= #
12
+ # === set_text
13
+ # ========================================================================= #
14
+ def set_text(i)
15
+ configure(text: i)
16
+ end
17
+
18
+ end; end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'tk_paradise/tk_classes/root.rb'
6
+ # =========================================================================== #
7
+ module Tk
8
+
9
+ class Root
10
+
11
+ # ========================================================================= #
12
+ # === move
13
+ #
14
+ # This will re-position the tk-root widget to the specified position,
15
+ # similar to how ruby-gtk works.
16
+ # ========================================================================= #
17
+ def move(
18
+ x = 0,
19
+ y = 0
20
+ )
21
+ root.geometry("+#{x}+#{y}") # This will only specify the x and y coordinates
22
+ end
23
+
24
+ end; end
@@ -0,0 +1,154 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'tk_paradise/tk_paradise.rb'
6
+ # include Tk
7
+ # =========================================================================== #
8
+ require 'tk'
9
+
10
+ module Tk
11
+
12
+ alias choose_colour chooseColor # === choose_colour
13
+
14
+ # ========================================================================= #
15
+ # Provide some "aliases".
16
+ # ========================================================================= #
17
+ Grid = TkGrid
18
+ Font = TkFont
19
+ # ========================================================================= #
20
+ # Button = TkButton
21
+ # Note that the tk-gem already defines Button.
22
+ # ========================================================================= #
23
+
24
+ # ========================================================================= #
25
+ # === e
26
+ # ========================================================================= #
27
+ def e(i = '')
28
+ puts i
29
+ end
30
+
31
+ # ========================================================================= #
32
+ # === Tk.run
33
+ # ========================================================================= #
34
+ def self.run
35
+ ::Tk.mainloop
36
+ end
37
+
38
+ # ========================================================================= #
39
+ # === Tk.root
40
+ # ========================================================================= #
41
+ def self.root(hash = {}, &block)
42
+ root = TkRoot.new { hash }
43
+ if block_given?
44
+ yielded = yield
45
+ if yielded.is_a? Hash
46
+ # =================================================================== #
47
+ # === :geometry
48
+ # =================================================================== #
49
+ if yielded.has_key? :geometry
50
+ root.geometry(yielded[:geometry])
51
+ end
52
+ # =================================================================== #
53
+ # === :title
54
+ # =================================================================== #
55
+ if yielded.has_key? :title
56
+ root.title = yielded[:title]
57
+ end
58
+ end
59
+ end
60
+ return root
61
+ end
62
+
63
+ # ========================================================================= #
64
+ # === tk_label
65
+ #
66
+ # The second argument should be the root-widget.
67
+ #
68
+ # Usage example:
69
+ #
70
+ # tk_label('Message in the Bottom', root) { :on_bottom }
71
+ #
72
+ # ========================================================================= #
73
+ def tk_label(
74
+ text_to_use = '',
75
+ root_widget = nil,
76
+ font = nil # fontStyle = tkFont.Font(family="Lucida Grande", size=20)
77
+ )
78
+ pack_onto_this_side = 'bottom'
79
+ # ======================================================================= #
80
+ # === Handle blocks next
81
+ # ======================================================================= #
82
+ if block_given?
83
+ yielded = yield
84
+ case yielded # case tag
85
+ # ===================================================================== #
86
+ # === :on_bottom
87
+ # ===================================================================== #
88
+ when :on_bottom
89
+ pack_onto_this_side = 'bottom'
90
+ # ===================================================================== #
91
+ # === :on_right
92
+ # ===================================================================== #
93
+ when :on_right
94
+ pack_onto_this_side = 'right'
95
+ end
96
+ end
97
+ ::TkMessage.new(root_widget) {
98
+ text(text_to_use)
99
+ }.pack('side' => pack_onto_this_side)
100
+ end; alias label tk_label # === label
101
+
102
+ # ========================================================================= #
103
+ # === tk_image
104
+ #
105
+ # Usage examples:
106
+ #
107
+ # - create an empty image of 300x200 pixels:
108
+ #
109
+ # image = TkPhotoImage.new(height: 200, width: 300)
110
+ #
111
+ # - create an image from a file:
112
+ #
113
+ # image = TkPhotoImage.new(file: 'my_image.gif')
114
+ #
115
+ # ========================================================================= #
116
+ def tk_image(
117
+ path_to_the_image,
118
+ extra_arguments = { height: 50 }
119
+ )
120
+ hash = {}
121
+ hash['file'] = path_to_the_image
122
+ hash.merge(extra_arguments)
123
+ return ::TkPhotoImage.new(hash)
124
+ end; alias image tk_image # === image
125
+
126
+ # ========================================================================= #
127
+ # === tk_button
128
+ # ========================================================================= #
129
+ # def tk_button
130
+ # end; alias button tk_button # === button
131
+
132
+ class Button
133
+
134
+ # ======================================================================= #
135
+ # === set_font
136
+ # ======================================================================= #
137
+ def set_font(i)
138
+ self['font'] = i
139
+ end
140
+
141
+ end
142
+
143
+ # create button
144
+ # button = Button(gui, text='My Button', bg='#0052cc', fg='#ffffff')
145
+ # # apply font to the button label
146
+ # button['font'] = myFont
147
+
148
+ end
149
+
150
+ # =========================================================================== #
151
+ # Next, require some addons - modifications of core-tk classes.
152
+ # =========================================================================== #
153
+ require 'tk_paradise/tk_classes/label.rb'
154
+ require 'tk_paradise/tk_classes/root.rb'
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'tk_paradise/version/version.rb'
6
+ # =========================================================================== #
7
+ module Tk
8
+
9
+ # ========================================================================= #
10
+ # === VERSION
11
+ # ========================================================================= #
12
+ VERSION = '0.0.13'
13
+
14
+ # ========================================================================= #
15
+ # === LAST_UPDATE
16
+ # ========================================================================= #
17
+ LAST_UPDATE = '23.12.2023'
18
+
19
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'tk_paradise/tk_paradise.rb'
@@ -0,0 +1,42 @@
1
+ # =========================================================================== #
2
+ # Gemspec.
3
+ # =========================================================================== #
4
+ require 'tk_paradise/version/version.rb'
5
+ require 'roebe'
6
+
7
+ Gem::Specification.new { |s|
8
+
9
+ s.name = 'tk_paradise'
10
+ s.version = Tk::VERSION
11
+ s.date = Time.now.strftime('%Y-%m-%d')
12
+
13
+ DESCRIPTION = <<-EOF
14
+
15
+ This project is called tk_paradise. It provides some helper-code for
16
+ ruby-tk applications.
17
+
18
+ It is in an early beta-stage; don't use it yet.
19
+ EOF
20
+
21
+ s.summary = DESCRIPTION
22
+ s.description = DESCRIPTION
23
+
24
+ s.extra_rdoc_files = %w()
25
+
26
+ s.authors = ['Robert A. Heiler']
27
+ s.email = Roebe.email?
28
+ s.files = Dir['**/*']
29
+ s.license = 'GPL-2.0'
30
+ s.homepage = 'https://rubygems.org/gems/tk_paradise'
31
+
32
+ s.required_ruby_version = '>= '+RUBY_VERSION
33
+ s.required_rubygems_version = '>= '+Gem::VERSION
34
+ s.rubygems_version = '>= '+Gem::VERSION
35
+
36
+ # ========================================================================= #
37
+ # External dependencies for the project:
38
+ # ========================================================================= #
39
+ s.add_dependency 'colours'
40
+ s.add_dependency 'tk'
41
+
42
+ }
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tk_paradise
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.13
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-12-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colours
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: tk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |2
42
+
43
+ This project is called tk_paradise. It provides some helper-code for
44
+ ruby-tk applications.
45
+
46
+ It is in an early beta-stage; don't use it yet.
47
+ email: shevy@inbox.lt
48
+ executables: []
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - README.md
53
+ - doc/README.gen
54
+ - lib/tk_paradise.rb
55
+ - lib/tk_paradise/base/base.rb
56
+ - lib/tk_paradise/examples/001_dialog_box_example.rb
57
+ - lib/tk_paradise/examples/002_draw_tiny_box.rb
58
+ - lib/tk_paradise/examples/003_fun_with_cursors.rb
59
+ - lib/tk_paradise/examples/004_hello_world_example.rb
60
+ - lib/tk_paradise/examples/005_key_press_event_example.rb
61
+ - lib/tk_paradise/examples/006_multiple_buttons.rb
62
+ - lib/tk_paradise/examples/007_packing_example_in_tk.rb
63
+ - lib/tk_paradise/examples/008_pig_latin_example.rb
64
+ - lib/tk_paradise/examples/009_scrollbar_example.rb
65
+ - lib/tk_paradise/examples/010_telnet_client.rb
66
+ - lib/tk_paradise/examples/011_thermostat_example.rb
67
+ - lib/tk_paradise/examples/012_tk_menu_example.rb
68
+ - lib/tk_paradise/examples/013_tk_popup.rb
69
+ - lib/tk_paradise/examples/014_tk_slider.rb
70
+ - lib/tk_paradise/examples/015_choose_colour_example.rb
71
+ - lib/tk_paradise/examples/016_spin_box_example.rb
72
+ - lib/tk_paradise/examples/017_combo_box_example.rb
73
+ - lib/tk_paradise/examples/018_tk_list_box_example.rb
74
+ - lib/tk_paradise/examples/019_tk_curves.rb
75
+ - lib/tk_paradise/examples/advanced/0001_example_showing_move_method.rb
76
+ - lib/tk_paradise/examples/advanced/0019_tk_curves.rb
77
+ - lib/tk_paradise/tk_classes/label.rb
78
+ - lib/tk_paradise/tk_classes/root.rb
79
+ - lib/tk_paradise/tk_paradise.rb
80
+ - lib/tk_paradise/version/version.rb
81
+ - tk_paradise.gemspec
82
+ homepage: https://rubygems.org/gems/tk_paradise
83
+ licenses:
84
+ - GPL-2.0
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 3.2.2
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 3.4.22
100
+ requirements: []
101
+ rubygems_version: 3.4.22
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: This project is called tk_paradise. It provides some helper-code for ruby-tk
105
+ applications. It is in an early beta-stage; don't use it yet.
106
+ test_files: []