glimmer-dsl-jfx 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []