glimmer-dsl-web 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,99 @@
1
+ # Copyright (c) 2020-2022 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 'opal'
23
+
24
+ GLIMMER_DSL_OPAL_ROOT = File.expand_path('../..', __FILE__)
25
+ GLIMMER_DSL_OPAL_LIB = File.join(GLIMMER_DSL_OPAL_ROOT, 'lib')
26
+
27
+ $LOAD_PATH.unshift(GLIMMER_DSL_OPAL_LIB)
28
+
29
+ if RUBY_ENGINE == 'opal'
30
+ # GLIMMER_DSL_OPAL_MISSING = File.join(GLIMMER_DSL_OPAL_ROOT, 'lib', 'glimmer-dsl-opal', 'missing')
31
+
32
+ # $LOAD_PATH.unshift(GLIMMER_DSL_OPAL_MISSING) # missing Ruby classes/methods
33
+ # TODO look into making append_path work (causing some trouble right now)
34
+ # Opal.append_path File.expand_path('../glimmer-dsl-opal/missing', __FILE__)
35
+ # Opal.append_path GLIMMER_DSL_OPAL_MISSING
36
+ module Kernel
37
+ def include_package(package)
38
+ # No Op (just a shim)
39
+ end
40
+
41
+ def __dir__
42
+ '(dir)'
43
+ end
44
+ end
45
+
46
+ require 'opal-parser'
47
+ require 'native' # move this to opal-async
48
+ require 'opal-async'
49
+ require 'async/ext'
50
+ require 'to_collection'
51
+ require 'pure-struct' # TODO double check if the latest Opal implemented everything below already
52
+ require 'glimmer-dsl-web/vendor/jquery'
53
+ require 'opal-jquery'
54
+ require 'opal/jquery/local_storage'
55
+ require 'promise'
56
+
57
+ require 'facets/hash/symbolize_keys'
58
+ require 'facets/string/underscore'
59
+ require 'glimmer-dsl-web/ext/class'
60
+ require 'glimmer'
61
+ require 'glimmer-dsl-web/ext/exception'
62
+ require 'glimmer-dsl-web/ext/date'
63
+
64
+ # Spiking async logging
65
+ # logger = Glimmer::Config.logger
66
+ # original_add_method = logger.class.instance_method(:add)
67
+ # logger.define_singleton_method("__original_add", original_add_method)
68
+ # logger.singleton_class.send(:define_method, :add) do |*args|
69
+ # Async::Timeout.new 10000 do
70
+ # __original_add(*args)
71
+ # end
72
+ # end
73
+
74
+ require 'glimmer/dsl/web/dsl'
75
+ require 'glimmer/config/opal_logger'
76
+ require 'glimmer-dsl-xml'
77
+ require 'glimmer-dsl-css'
78
+
79
+ # TODO double check if alias native calls below have been added to jQuery-Opal (remove if so)
80
+ Element.alias_native :replace_with, :replaceWith
81
+ Element.alias_native :select
82
+ # Element.alias_native :dialog
83
+
84
+ Glimmer::Config.loop_max_count = 150 # TODO disable
85
+
86
+ original_logger_level = Glimmer::Config.logger.level
87
+ Glimmer::Config.logger = Glimmer::Config::OpalLogger.new(STDOUT)
88
+ Glimmer::Config.logger.level = original_logger_level
89
+ Glimmer::Config.excluded_keyword_checkers << lambda do |method_symbol, *args|
90
+ method = method_symbol.to_s
91
+ result = false
92
+ result ||= method == '<<'
93
+ result ||= method == 'handle'
94
+ end
95
+
96
+ # else # TODO enable when ready to include a Rails engine in the gem
97
+ # require_relative 'glimmer/config'
98
+ # require_relative 'glimmer/engine'
99
+ end
metadata ADDED
@@ -0,0 +1,295 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: glimmer-dsl-web
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: 2023-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: glimmer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.4.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.4.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: glimmer-dsl-xml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.3.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: glimmer-dsl-css
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.2.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.2.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: opal-async
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: to_collection
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.1
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: 3.0.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 2.0.1
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 3.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: pure-struct
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.0.2
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: 2.0.0
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 1.0.2
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: 2.0.0
109
+ - !ruby/object:Gem::Dependency
110
+ name: puts_debuggerer
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: rake
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 10.1.0
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: 14.0.0
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 10.1.0
140
+ - - "<"
141
+ - !ruby/object:Gem::Version
142
+ version: 14.0.0
143
+ - !ruby/object:Gem::Dependency
144
+ name: rake-tui
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ - !ruby/object:Gem::Dependency
158
+ name: jeweler
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: 2.3.9
164
+ - - "<"
165
+ - !ruby/object:Gem::Version
166
+ version: 3.0.0
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 2.3.9
174
+ - - "<"
175
+ - !ruby/object:Gem::Version
176
+ version: 3.0.0
177
+ - !ruby/object:Gem::Dependency
178
+ name: rdoc
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: 6.2.1
184
+ - - "<"
185
+ - !ruby/object:Gem::Version
186
+ version: 7.0.0
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: 6.2.1
194
+ - - "<"
195
+ - !ruby/object:Gem::Version
196
+ version: 7.0.0
197
+ - !ruby/object:Gem::Dependency
198
+ name: opal-rspec
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: 0.8.0.alpha2
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: 0.8.0.alpha2
211
+ - !ruby/object:Gem::Dependency
212
+ name: opal-rails
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - "~>"
216
+ - !ruby/object:Gem::Version
217
+ version: 1.1.2
218
+ type: :development
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - "~>"
223
+ - !ruby/object:Gem::Version
224
+ version: 1.1.2
225
+ - !ruby/object:Gem::Dependency
226
+ name: opal-jquery
227
+ requirement: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: 0.4.4
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: 0.4.4
239
+ description: Glimmer DSL for Web (Ruby in the Browser Web GUI Library) - Enables frontend
240
+ GUI development with Ruby by adopting a DSL that follows web-like HTML syntax, enabling
241
+ the transfer of HTML/CSS/JS skills to Ruby frontend development. This library relies
242
+ on Opal Ruby.
243
+ email: andy.am@gmail.com
244
+ executables: []
245
+ extensions: []
246
+ extra_rdoc_files:
247
+ - CHANGELOG.md
248
+ - LICENSE.txt
249
+ - README.md
250
+ files:
251
+ - CHANGELOG.md
252
+ - LICENSE.txt
253
+ - README.md
254
+ - VERSION
255
+ - app/assets/stylesheets/glimmer/glimmer.css
256
+ - glimmer-dsl-web.gemspec
257
+ - lib/glimmer-dsl-web.rb
258
+ - lib/glimmer-dsl-web/ext/class.rb
259
+ - lib/glimmer-dsl-web/ext/date.rb
260
+ - lib/glimmer-dsl-web/ext/exception.rb
261
+ - lib/glimmer-dsl-web/samples/hello/hello_world.rb
262
+ - lib/glimmer-dsl-web/vendor/jquery.js
263
+ - lib/glimmer/config/opal_logger.rb
264
+ - lib/glimmer/data_binding/element_binding.rb
265
+ - lib/glimmer/data_binding/observable_element.rb
266
+ - lib/glimmer/dsl/web/dsl.rb
267
+ - lib/glimmer/dsl/web/element_expression.rb
268
+ - lib/glimmer/util/proc_tracker.rb
269
+ - lib/glimmer/web.rb
270
+ - lib/glimmer/web/element_proxy.rb
271
+ - lib/glimmer/web/property_owner.rb
272
+ homepage: http://github.com/AndyObtiva/glimmer-dsl-web
273
+ licenses:
274
+ - MIT
275
+ metadata: {}
276
+ post_install_message:
277
+ rdoc_options: []
278
+ require_paths:
279
+ - lib
280
+ required_ruby_version: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - ">="
283
+ - !ruby/object:Gem::Version
284
+ version: '0'
285
+ required_rubygems_version: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - ">="
288
+ - !ruby/object:Gem::Version
289
+ version: '0'
290
+ requirements: []
291
+ rubygems_version: 3.5.3
292
+ signing_key:
293
+ specification_version: 4
294
+ summary: Glimmer DSL for Web
295
+ test_files: []