glimmer-dsl-web 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,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: []