glimmer-dsl-jfx 0.0.1

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.
@@ -0,0 +1,49 @@
1
+ # Copyright (c) 2021 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
+ $LOAD_PATH.unshift(File.expand_path('.', __dir__))
23
+
24
+ # External requires
25
+ # require 'logging'
26
+ require 'puts_debuggerer' if ENV['pd'].to_s.downcase == 'true'
27
+ require 'nested_inherited_jruby_include_package'
28
+ # require 'super_module'
29
+ require 'java'
30
+ require 'concurrent-ruby' # ensures glimmer relies on Concurrent data-structure classes (e.g. Concurrent::Array)
31
+ require 'glimmer'
32
+ require 'os'
33
+ require 'array_include_methods'
34
+ require 'facets/string/underscore'
35
+ require 'facets/string/camelcase'
36
+ require 'facets/hash/stringify_keys'
37
+
38
+ jfx_lib_directory = ENV['PATH_TO_FX']
39
+ jfx_jar_files = Dir.glob(File.join(jfx_lib_directory.to_s, '*.jar')).to_a
40
+ if jfx_jar_files.empty?
41
+ raise 'The PATH_TO_FX environment variable is not set to a valid JavaFX SDK lib directory for your platform and CPU architeture. Make sure to download the right JavaFX SDK for your platform and CPU architecture from https://gluonhq.com/products/javafx/ and then set the PATH_TO_FX environment variable to the location of the lib directory in the extracted SDK directory.'
42
+ else
43
+ jfx_jar_files.each { |jar_file| require jar_file }
44
+ # Internal requires
45
+ require 'glimmer/jfx'
46
+ require 'glimmer/jfx/ext/glimmer'
47
+ require 'glimmer/jfx/ext/glimmer/config'
48
+ require 'glimmer/dsl/jfx/dsl'
49
+ end
@@ -0,0 +1,15 @@
1
+ require 'glimmer-dsl-jfx'
2
+
3
+ include Glimmer
4
+
5
+ window {
6
+ title 'Hello, Button!'
7
+
8
+ @button = button('Click To Increment: 0') {
9
+ on_action do
10
+ button_text_match = @button.text.match(/([^0-9]+)(\d+)$/)
11
+ count = button_text_match[2].to_i + 1
12
+ @button.text = "#{button_text_match[1]}#{count}"
13
+ end
14
+ }
15
+ }
@@ -0,0 +1,32 @@
1
+ require 'glimmer-dsl-jfx'
2
+
3
+ class Counter
4
+ attr_accessor :count
5
+
6
+ def initialize
7
+ self.count = 0
8
+ end
9
+ end
10
+
11
+ class HelloButton
12
+ include Glimmer
13
+
14
+ def initialize
15
+ @counter = Counter.new
16
+ end
17
+
18
+ def launch
19
+ window {
20
+ title 'Hello, Button!'
21
+
22
+ @button = button('Click To Increment: 0') {
23
+ on_action do
24
+ @counter.count += 1
25
+ @button.text = "Click To Increment: #{new_count}"
26
+ end
27
+ }
28
+ }
29
+ end
30
+ end
31
+
32
+ HelloButton.new.launch
@@ -0,0 +1,9 @@
1
+ require 'glimmer-dsl-jfx'
2
+
3
+ include Glimmer
4
+
5
+ window {
6
+ title 'Hello, World!'
7
+
8
+ label('Hello, World!')
9
+ }
metadata ADDED
@@ -0,0 +1,261 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: glimmer-dsl-jfx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andy Maleh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-12-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 2.5.4
19
+ name: glimmer
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.5.4
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.3.0
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: 2.0.0
36
+ name: nested_inherited_jruby_include_package
37
+ prerelease: false
38
+ type: :runtime
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.3.0
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: 2.0.0
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.13.0
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: 2.0.0
56
+ name: puts_debuggerer
57
+ prerelease: false
58
+ type: :runtime
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.13.0
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 2.0.0
67
+ - !ruby/object:Gem::Dependency
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.1.7
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.0
76
+ name: concurrent-ruby
77
+ prerelease: false
78
+ type: :runtime
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.1.7
84
+ - - "<"
85
+ - !ruby/object:Gem::Version
86
+ version: 2.0.0
87
+ - !ruby/object:Gem::Dependency
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.8.5
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: 2.0.0
96
+ name: jruby-win32ole
97
+ prerelease: false
98
+ type: :runtime
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.8.5
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: 2.0.0
107
+ - !ruby/object:Gem::Dependency
108
+ requirement: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 1.0.0
113
+ - - "<"
114
+ - !ruby/object:Gem::Version
115
+ version: 2.0.0
116
+ name: os
117
+ prerelease: false
118
+ type: :runtime
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 1.0.0
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: 2.0.0
127
+ - !ruby/object:Gem::Dependency
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 3.5.0
133
+ name: rspec
134
+ prerelease: false
135
+ type: :development
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 3.5.0
141
+ - !ruby/object:Gem::Dependency
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '3.12'
147
+ name: rdoc
148
+ prerelease: false
149
+ type: :development
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '3.12'
155
+ - !ruby/object:Gem::Dependency
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 2.1.0
161
+ name: juwelier
162
+ prerelease: false
163
+ type: :development
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: 2.1.0
169
+ - !ruby/object:Gem::Dependency
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ name: simplecov
176
+ prerelease: false
177
+ type: :development
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ - !ruby/object:Gem::Dependency
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">"
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ name: rake-tui
190
+ prerelease: false
191
+ type: :development
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">"
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ description: Glimmer DSL for JFX (JRuby JavaFX Desktop Development GUI Library) -
198
+ Enables development of desktop applications using JavaFX through JRuby (assumes
199
+ you downloaded the JavaFX SDK for your platform/CPU-architecture and set the PATH_TO_FX
200
+ environment variable to the lib directory of the extracted SDK).
201
+ email: andy.am@gmail.com
202
+ executables:
203
+ - girb
204
+ extensions: []
205
+ extra_rdoc_files:
206
+ - LICENSE.txt
207
+ - README.md
208
+ files:
209
+ - CHANGELOG.md
210
+ - LICENSE.txt
211
+ - README.md
212
+ - VERSION
213
+ - bin/girb
214
+ - bin/girb_runner.rb
215
+ - glimmer-dsl-jfx.gemspec
216
+ - lib/glimmer-dsl-jfx.rb
217
+ - lib/glimmer/dsl/jfx/control_expression.rb
218
+ - lib/glimmer/dsl/jfx/dsl.rb
219
+ - lib/glimmer/dsl/jfx/listener_expression.rb
220
+ - lib/glimmer/dsl/jfx/observe_expression.rb
221
+ - lib/glimmer/dsl/jfx/operation_expression.rb
222
+ - lib/glimmer/dsl/jfx/property_expression.rb
223
+ - lib/glimmer/dsl/jfx/window_expression.rb
224
+ - lib/glimmer/jfx.rb
225
+ - lib/glimmer/jfx/control_listener_proxy.rb
226
+ - lib/glimmer/jfx/control_proxy.rb
227
+ - lib/glimmer/jfx/ext/glimmer.rb
228
+ - lib/glimmer/jfx/ext/glimmer/config.rb
229
+ - lib/glimmer/jfx/packages.rb
230
+ - lib/glimmer/jfx/window_proxy.rb
231
+ - samples/hello/hello_button.rb
232
+ - samples/hello/hello_button2.rb
233
+ - samples/hello/hello_world.rb
234
+ homepage: http://github.com/AndyObtiva/glimmer-dsl-jfx
235
+ licenses:
236
+ - MIT
237
+ metadata: {}
238
+ post_install_message: Make sure to download the right JavaFX SDK for your platform
239
+ and CPU architecture from https://gluonhq.com/products/javafx/ and then set the
240
+ PATH_TO_FX environment variable to the location of the lib directory in the extracted
241
+ SDK directory.
242
+ rdoc_options: []
243
+ require_paths:
244
+ - lib
245
+ - "."
246
+ required_ruby_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ required_rubygems_version: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ requirements: []
257
+ rubygems_version: 3.2.29
258
+ signing_key:
259
+ specification_version: 4
260
+ summary: Glimmer DSL for JFX
261
+ test_files: []