atome 0.5.1.1 → 0.5.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +5 -5
- data/app_builder_helpers/Rakefile +1 -1
- data/exe/atome +1 -1
- data/lib/atome/{atome_meta_engine.rb → atome.rb} +14 -17
- data/lib/atome/extensions/atome.rb +2 -2
- data/lib/atome/genesis/generators/atome.rb +25 -0
- data/lib/atome/genesis/generators/event.rb +5 -0
- data/lib/atome/genesis/generators/identity.rb +15 -1
- data/lib/atome/genesis/generators/spatial.rb +1 -0
- data/lib/atome/genesis/generators/utility.rb +18 -1
- data/lib/atome/genesis/genesis.rb +4 -9
- data/lib/atome/helpers/callbacks.rb +12 -0
- data/lib/atome/helpers/essentials.rb +2 -2
- data/lib/atome/helpers/sanitizer.rb +1 -20
- data/lib/atome/helpers/utilities.rb +8 -11
- data/lib/atome/kernel/essentials.rb +0 -7
- data/lib/atome/kernel/universe.rb +27 -10
- data/lib/atome/presets/atome.rb +26 -4
- data/lib/atome/renderers/browser/atome.rb +29 -16
- data/lib/atome/renderers/browser/browser.rb +158 -91
- data/lib/atome/renderers/browser/event.rb +29 -1
- data/lib/atome/renderers/browser/identity.rb +5 -1
- data/lib/atome/renderers/browser/spatial.rb +4 -3
- data/lib/atome/renderers/browser/utility.rb +17 -4
- data/lib/atome/renderers/headless/headless.rb +10 -0
- data/lib/atome/renderers/headless/utility.rb +6 -0
- data/lib/atome/renderers/html/spatial.rb +1 -1
- data/lib/atome/renderers/html/utility.rb +2 -0
- data/lib/atome/renderers/renderer.rb +13 -0
- data/lib/atome/renderers/server/server.rb +10 -0
- data/lib/atome/renderers/server/utility.rb +6 -0
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +5 -1
- data/vendor/assets/build/index.html +1 -5
- data/vendor/assets/build/js/atome/atome.js +81 -8
- data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
- data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
- data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
- data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
- data/vendor/assets/build/medias/rubies/examples/on.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/{_read.rb → read.rb} +4 -2
- data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -7
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
- data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
- data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
- data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
- data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
- data/vendor/assets/build/medias/videos/starwars.mov +0 -0
- data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
- metadata +22 -10
- data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/_refresh.rb +0 -9
@@ -14,9 +14,9 @@ class Atome
|
|
14
14
|
end
|
15
15
|
|
16
16
|
# for opal rendering
|
17
|
-
|
17
|
+
module BrowserHelper
|
18
18
|
def self.browser_document
|
19
|
-
# Work because of the patched
|
19
|
+
# Work because of the patched version of opal-browser(0.39)
|
20
20
|
Browser.window
|
21
21
|
end
|
22
22
|
|
@@ -24,6 +24,10 @@ class BrowserHelper
|
|
24
24
|
html_object.append_to(browser_document[parents])
|
25
25
|
end
|
26
26
|
|
27
|
+
def self.browser_attach_web(parents, html_object, _atome)
|
28
|
+
html_object.append_to(browser_document[parents])
|
29
|
+
end
|
30
|
+
|
27
31
|
def self.browser_attach_style(parents, _html_object, atome)
|
28
32
|
browser_document[parents].add_class(atome[:id])
|
29
33
|
end
|
@@ -45,114 +49,177 @@ class BrowserHelper
|
|
45
49
|
def self.browser_blur_div(browser_object, value, _atome)
|
46
50
|
browser_object.style[:filter] = "blur(#{value}px)"
|
47
51
|
end
|
48
|
-
end
|
49
52
|
|
50
|
-
def browser_colorize_color(color_updated, atome)
|
51
|
-
|
52
|
-
end
|
53
|
+
def self.browser_colorize_color(color_updated, atome)
|
54
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
|
55
|
+
end
|
53
56
|
|
54
|
-
def browser_colorize_shadow(color_updated, atome)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
57
|
+
def self.browser_colorize_shadow(color_updated, atome)
|
58
|
+
left = atome[:left]
|
59
|
+
top = atome[:top]
|
60
|
+
blur = atome[:blur]
|
61
|
+
direction = atome[:direction]
|
62
|
+
shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
|
63
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
64
|
+
end
|
62
65
|
|
63
|
-
def browser_left_shape(value, browser_object, _atome)
|
64
|
-
|
65
|
-
end
|
66
|
+
def self.browser_left_shape(value, browser_object, _atome)
|
67
|
+
browser_object.style[:left] = "#{value}px"
|
68
|
+
end
|
66
69
|
|
67
|
-
def browser_right_shape(value, browser_object, _atome)
|
68
|
-
|
69
|
-
end
|
70
|
+
def self.browser_right_shape(value, browser_object, _atome)
|
71
|
+
browser_object.style[:right] = "#{value}px"
|
72
|
+
end
|
70
73
|
|
71
|
-
def browser_top_shape(value, browser_object, _atome)
|
72
|
-
|
73
|
-
end
|
74
|
+
def self.browser_top_shape(value, browser_object, _atome)
|
75
|
+
browser_object.style[:top] = "#{value}px"
|
76
|
+
end
|
74
77
|
|
75
|
-
def browser_bottom_shape(value, browser_object, _atome)
|
76
|
-
|
77
|
-
end
|
78
|
+
def self.browser_bottom_shape(value, browser_object, _atome)
|
79
|
+
browser_object.style[:bottom] = "#{value}px"
|
80
|
+
end
|
78
81
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
# image
|
83
|
+
def self.browser_left_image(value, browser_object, _atome)
|
84
|
+
browser_object.style[:left] = "#{value}px"
|
85
|
+
end
|
82
86
|
|
83
|
-
def browser_right_image(value, browser_object, _atome)
|
84
|
-
|
85
|
-
end
|
87
|
+
def self.browser_right_image(value, browser_object, _atome)
|
88
|
+
browser_object.style[:right] = "#{value}px"
|
89
|
+
end
|
86
90
|
|
87
|
-
def browser_top_image(value, browser_object, _atome)
|
88
|
-
|
89
|
-
end
|
91
|
+
def self.browser_top_image(value, browser_object, _atome)
|
92
|
+
browser_object.style[:top] = "#{value}px"
|
93
|
+
end
|
90
94
|
|
91
|
-
def browser_bottom_image(value, browser_object, _atome)
|
92
|
-
|
93
|
-
end
|
95
|
+
def self.browser_bottom_image(value, browser_object, _atome)
|
96
|
+
browser_object.style[:bottom] = "#{value}px"
|
97
|
+
end
|
94
98
|
|
95
|
-
def
|
96
|
-
|
97
|
-
|
98
|
-
ls_blur = "#{atome[:blur]}px"
|
99
|
-
red = atome[:red] * 255
|
100
|
-
green = atome[:green] * 255
|
101
|
-
blue = (atome[:blue]) * 255
|
102
|
-
direction = atome[:direction]
|
103
|
-
alpha = atome[:alpha]
|
104
|
-
|
105
|
-
shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
106
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
107
|
-
end
|
99
|
+
def self.browser_path_image(value, browser_object, _atome)
|
100
|
+
browser_object[:src] = value
|
101
|
+
end
|
108
102
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
103
|
+
# shadow
|
104
|
+
def self.browser_left_shadow(value, _browser_object, atome)
|
105
|
+
ls_left = "#{atome[:left] = value}px"
|
106
|
+
ls_top = "#{atome[:top]}px"
|
107
|
+
ls_blur = "#{atome[:blur]}px"
|
108
|
+
red = atome[:red] * 255
|
109
|
+
green = atome[:green] * 255
|
110
|
+
blue = (atome[:blue]) * 255
|
111
|
+
direction = atome[:direction]
|
112
|
+
alpha = atome[:alpha]
|
113
|
+
|
114
|
+
shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
115
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
116
|
+
end
|
122
117
|
|
123
|
-
def
|
124
|
-
|
125
|
-
|
118
|
+
def self.browser_top_shadow(value, _browser_object, atome)
|
119
|
+
rs_left = "#{atome[:left]}px"
|
120
|
+
rs_top = "#{atome[:top] = value}px"
|
121
|
+
rs_blur = "#{atome[:blur]}px"
|
122
|
+
red = atome[:red] * 255
|
123
|
+
green = atome[:green] * 255
|
124
|
+
blue = (atome[:blue]) * 255
|
125
|
+
direction = atome[:direction]
|
126
|
+
alpha = atome[:alpha]
|
127
|
+
|
128
|
+
shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
129
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
130
|
+
end
|
126
131
|
|
127
|
-
def
|
128
|
-
|
129
|
-
end
|
132
|
+
def self.browser_left_color(_value, _browser_object, _atome)
|
133
|
+
puts 'code to write when implementing gradient'
|
134
|
+
end
|
130
135
|
|
131
|
-
def
|
132
|
-
|
133
|
-
end
|
136
|
+
def self.browser_right_color(_value, _browser_object, _atome)
|
137
|
+
puts 'code to write when implementing gradient'
|
138
|
+
end
|
134
139
|
|
135
|
-
def
|
136
|
-
|
137
|
-
end
|
140
|
+
def self.browser_top_color(_value, _browser_object, _atome)
|
141
|
+
puts 'code to write when implementing gradient'
|
142
|
+
end
|
138
143
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
end
|
144
|
+
def self.browser_bottom_color(_value, _browser_object, _atome)
|
145
|
+
puts 'code to write when implementing gradient'
|
146
|
+
end
|
143
147
|
|
144
|
-
|
145
|
-
|
146
|
-
|
148
|
+
# text
|
149
|
+
def self.browser_left_text(value, browser_object, _atome)
|
150
|
+
browser_object.style[:left] = "#{value}px"
|
151
|
+
end
|
147
152
|
|
148
|
-
def
|
149
|
-
|
150
|
-
end
|
153
|
+
def self.browser_right_text(value, browser_object, _atome)
|
154
|
+
browser_object.style[:right] = "#{value}px"
|
155
|
+
end
|
151
156
|
|
152
|
-
def
|
153
|
-
|
154
|
-
end
|
157
|
+
def self.browser_top_text(value, browser_object, _atome)
|
158
|
+
browser_object.style[:top] = "#{value}px"
|
159
|
+
end
|
160
|
+
|
161
|
+
def self.browser_bottom_text(value, browser_object, _atome)
|
162
|
+
browser_object.style[:bottom] = "#{value}px"
|
163
|
+
end
|
164
|
+
|
165
|
+
def self.browser_data_text(value)
|
166
|
+
browser_object.text = value
|
167
|
+
end
|
168
|
+
|
169
|
+
# web
|
170
|
+
def self.browser_left_web(value, browser_object, _atome)
|
171
|
+
browser_object.style[:left] = "#{value}px"
|
172
|
+
end
|
173
|
+
|
174
|
+
def self.browser_right_web(value, browser_object, _atome)
|
175
|
+
browser_object.style[:right] = "#{value}px"
|
176
|
+
end
|
177
|
+
|
178
|
+
def self.browser_top_web(value, browser_object, _atome)
|
179
|
+
browser_object.style[:top] = "#{value}px"
|
180
|
+
end
|
181
|
+
|
182
|
+
def self.browser_bottom_web(value, browser_object, _atome)
|
183
|
+
browser_object.style[:bottom] = "#{value}px"
|
184
|
+
end
|
185
|
+
|
186
|
+
def self.browser_path_web(value, browser_object, _atome)
|
187
|
+
browser_object[:src] = value
|
188
|
+
end
|
189
|
+
|
190
|
+
# video
|
191
|
+
def self.browser_left_video(value, browser_object, _atome)
|
192
|
+
browser_object.style[:left] = "#{value}px"
|
193
|
+
end
|
155
194
|
|
156
|
-
def
|
157
|
-
|
195
|
+
def self.browser_right_videob(value, browser_object, _atome)
|
196
|
+
browser_object.style[:right] = "#{value}px"
|
197
|
+
end
|
198
|
+
|
199
|
+
def self.browser_top_video(value, browser_object, _atome)
|
200
|
+
browser_object.style[:top] = "#{value}px"
|
201
|
+
end
|
202
|
+
|
203
|
+
def self.browser_bottom_video(value, browser_object, _atome)
|
204
|
+
browser_object.style[:bottom] = "#{value}px"
|
205
|
+
end
|
206
|
+
|
207
|
+
def self.browser_path_video(value, browser_object, _atome)
|
208
|
+
browser_object[:src] = value
|
209
|
+
end
|
210
|
+
|
211
|
+
def self.browser_play_video(_value, browser_object_found, atome_found, atome_object, proc)
|
212
|
+
browser_object_found.play
|
213
|
+
# TODO : change timeupdate for when possible requestVideoFrameCallback
|
214
|
+
# (opal-browser/opal/browser/event.rb line 36)
|
215
|
+
video_callback = atome_found[:code] # this is the video callback not the play callback
|
216
|
+
play_callback = proc # this is the video callback not the play callback
|
217
|
+
browser_object_found.on(:timeupdate) do |e|
|
218
|
+
e.prevent # Prevent the default action (eg. form submission)
|
219
|
+
# You can also use `e.stop` to stop propagating the event to other handlers.
|
220
|
+
current_time = browser_object_found.currentTime
|
221
|
+
atome_object.instance_exec(current_time, &video_callback) if video_callback.is_a?(Proc)
|
222
|
+
atome_object.instance_exec(current_time, &play_callback) if play_callback.is_a?(Proc)
|
223
|
+
end
|
224
|
+
end
|
158
225
|
end
|
@@ -4,6 +4,34 @@ generator = Genesis.generator
|
|
4
4
|
|
5
5
|
generator.build_render_method(:browser_touch) do |_value, proc|
|
6
6
|
@browser_object.on :click do |e|
|
7
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
7
|
+
instance_exec(e, &proc) if proc.is_a?(Proc)
|
8
8
|
end
|
9
9
|
end
|
10
|
+
|
11
|
+
generator.build_render_method(:browser_play) do |value, proc|
|
12
|
+
BrowserHelper.send("browser_play_#{@atome[:type]}", value, @browser_object, @atome, self, proc)
|
13
|
+
end
|
14
|
+
|
15
|
+
generator.build_render_method(:browser_time) do |value = nil, _proc|
|
16
|
+
if value
|
17
|
+
@browser_object.currentTime = value
|
18
|
+
else
|
19
|
+
@browser_object.currentTime
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
generator.build_render_method(:browser_pause) do |_value, proc|
|
24
|
+
instance_exec(@browser_object.currentTime, &proc) if proc.is_a?(Proc)
|
25
|
+
@browser_object.pause
|
26
|
+
end
|
27
|
+
|
28
|
+
generator.build_render_method(:on) do |value, proc|
|
29
|
+
@browser_object.on(value) do |e|
|
30
|
+
instance_exec(e, &proc) if proc.is_a?(Proc)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
generator.build_render_method(:fullscreen) do |value, proc|
|
35
|
+
atome_id=atome[:id]
|
36
|
+
`atome.js_Fullscreen(#{atome_id})`
|
37
|
+
end
|
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
generator = Genesis.generator
|
4
4
|
|
5
|
+
generator.build_render_method(:browser_id) do |params|
|
6
|
+
browser_object.id = params if @atome[:id] != params
|
7
|
+
end
|
8
|
+
|
5
9
|
generator.build_render_method(:browser_type) do |params|
|
6
10
|
send("browser_#{params}", user_proc)
|
7
11
|
end
|
@@ -12,7 +16,7 @@ generator.build_render_method(:browser_parents) do |parents_found|
|
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
15
|
-
generator.
|
19
|
+
generator.build_option(:pre_render_children) do |children_pass|
|
16
20
|
children_pass.each do |child_found|
|
17
21
|
atome_found = grab(child_found)
|
18
22
|
atome_found.parents([@atome[:id]])
|
@@ -8,15 +8,16 @@ end
|
|
8
8
|
|
9
9
|
generator.build_render_method(:browser_right) do |value, _user_proc|
|
10
10
|
BrowserHelper.send("browser_right_#{@atome[:type]}", value, @browser_object, @atome)
|
11
|
-
# @browser_object.style[:right] = "#{value}px"
|
12
11
|
end
|
13
12
|
|
14
13
|
generator.build_render_method(:browser_top) do |value, _user_proc|
|
15
14
|
BrowserHelper.send("browser_top_#{@atome[:type]}", value, @browser_object, @atome)
|
16
|
-
# @browser_object.style[:top] = "#{value}px"
|
17
15
|
end
|
18
16
|
|
19
17
|
generator.build_render_method(:browser_bottom) do |value, _user_proc|
|
20
18
|
BrowserHelper.send("browser_bottom_#{@atome[:type]}", value, @browser_object, @atome)
|
21
|
-
|
19
|
+
end
|
20
|
+
|
21
|
+
generator.build_render_method(:browser_rotate) do |value, _user_proc|
|
22
|
+
@browser_object.style[:transform] = "rotate(#{value}deg)" unless @browser_type == :style
|
22
23
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
generator = Genesis.generator
|
4
4
|
generator.build_render_method(:browser_bloc)
|
5
|
-
generator.build_render_method(:browser_id)
|
6
5
|
generator.build_render_method(:browser_render)
|
7
6
|
generator.build_render_method(:browser_delete) do
|
8
7
|
browser_object&.remove
|
@@ -15,12 +14,26 @@ generator.build_render_method(:browser_clear) do
|
|
15
14
|
children([])
|
16
15
|
end
|
17
16
|
|
18
|
-
generator.build_render_method(:
|
19
|
-
@
|
17
|
+
generator.build_render_method(:browser_path) do |value|
|
18
|
+
BrowserHelper.send("browser_path_#{@atome[:type]}", value, @browser_object, @atome)
|
20
19
|
end
|
21
20
|
|
22
|
-
generator.build_render_method(:
|
21
|
+
generator.build_render_method(:browser_data) do |data|
|
23
22
|
# according to the type we send the data to different operator
|
24
23
|
type_found = @atome[:type]
|
25
24
|
send("browser_data_#{type_found}", data)
|
26
25
|
end
|
26
|
+
|
27
|
+
generator.build_render_method(:browser_schedule) do |format_date, proc|
|
28
|
+
years = format_date[0]
|
29
|
+
months = format_date[1]
|
30
|
+
days = format_date[2]
|
31
|
+
hours = format_date[3]
|
32
|
+
minutes = format_date[4]
|
33
|
+
seconds = format_date[5]
|
34
|
+
`atome.jsSchedule(#{years},#{months},#{days},#{hours},#{minutes},#{seconds},#{self},#{proc})`
|
35
|
+
end
|
36
|
+
|
37
|
+
generator.build_render_method(:browser_reader) do |file, proc|
|
38
|
+
`atome.jsReader(#{file},#{self},#{proc})`
|
39
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'atome/renderers/headless/effect'
|
4
|
+
# require 'atome/renderers/headless/event'
|
5
|
+
# require 'atome/renderers/headless/geometry'
|
6
|
+
# require 'atome/renderers/headless/identity'
|
7
|
+
# require 'atome/renderers/headless/material'
|
8
|
+
# require 'atome/renderers/headless/spatial'
|
9
|
+
# require 'atome/renderers/headless/atome'
|
10
|
+
require 'atome/renderers/headless/utility'
|
@@ -6,7 +6,7 @@ generator = Genesis.generator
|
|
6
6
|
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
7
7
|
# end
|
8
8
|
#
|
9
|
-
# generator.
|
9
|
+
# generator.build_option(:pre_get_left) do
|
10
10
|
# user_proc = @user_proc
|
11
11
|
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
12
12
|
# end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Rendering method here
|
4
|
+
class Atome
|
5
|
+
private
|
6
|
+
|
7
|
+
def rendering(element_to_render, content, &user_proc)
|
8
|
+
render_engines = @atome[:renderers]
|
9
|
+
render_engines.each do |render_engine|
|
10
|
+
send("#{render_engine}_#{element_to_render}", content, &user_proc)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'atome/renderers/server/effect'
|
4
|
+
# require 'atome/renderers/server/event'
|
5
|
+
# require 'atome/renderers/server/geometry'
|
6
|
+
# require 'atome/renderers/server/identity'
|
7
|
+
# require 'atome/renderers/server/material'
|
8
|
+
# require 'atome/renderers/server/spatial'
|
9
|
+
# require 'atome/renderers/server/atome'
|
10
|
+
require 'atome/renderers/server/utility'
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -6,10 +6,12 @@ require 'atome/genesis/genesis'
|
|
6
6
|
require 'atome/kernel/essentials'
|
7
7
|
require 'atome/kernel/universe'
|
8
8
|
require 'atome/helpers/essentials'
|
9
|
+
require 'atome/renderers/renderer'
|
9
10
|
require 'atome/helpers/color_helper/color'
|
10
|
-
require 'atome/
|
11
|
+
require 'atome/atome'
|
11
12
|
require 'atome/processors/utilities'
|
12
13
|
require 'atome/helpers/utilities'
|
14
|
+
require 'atome/helpers/callbacks'
|
13
15
|
require 'atome/genesis/generators/atome'
|
14
16
|
require 'atome/presets/atome'
|
15
17
|
require 'atome/genesis/generators/communication'
|
@@ -22,6 +24,8 @@ require 'atome/genesis/generators/spatial'
|
|
22
24
|
require 'atome/genesis/generators/utility'
|
23
25
|
require 'atome/renderers/browser/browser'
|
24
26
|
require 'atome/renderers/html/html'
|
27
|
+
require 'atome/renderers/headless/headless'
|
28
|
+
require 'atome/renderers/server/server'
|
25
29
|
require 'atome/extensions/atome'
|
26
30
|
require 'atome/helpers/sanitizer'
|
27
31
|
require 'atome/genesis/sparkle'
|
@@ -3,11 +3,8 @@
|
|
3
3
|
<head>
|
4
4
|
<meta name='viewport' content='initial-scale=1, width=device-width, viewport-fit=cover'>
|
5
5
|
<meta charset='UTF-8'/>
|
6
|
-
<!-- <meta Cross-Origin-Opener-Policy="same-origin"/>-->
|
7
|
-
<!-- <meta Cross-Origin-Embedder-Policy="require-corp"/>-->
|
8
6
|
<meta name="format-detection" content="telephone=no">
|
9
7
|
<meta name="msapplication-tap-highlight" content="no">
|
10
|
-
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
|
11
8
|
<link type="text/css" rel="stylesheet" href="css/style.css">
|
12
9
|
<script type="text/javascript" src="js/third_parties/interact.min.js"></script>
|
13
10
|
<script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
|
@@ -16,8 +13,7 @@
|
|
16
13
|
<script src='js/third_parties/w3color.js'></script>
|
17
14
|
<script src='js/opal/opal.js'></script>
|
18
15
|
<script src='js/opal/opal_browser.js'></script>
|
19
|
-
<!-- TODO: we line below
|
20
|
-
and loaded on the fly when using server mode-->
|
16
|
+
<!-- TODO: we line below is commented when using stand alone mode and loaded on demand when using server mode-->
|
21
17
|
<!-- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>-->
|
22
18
|
<!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
|
23
19
|
<!-- <script src='js/opal/opal_parser.js'></script>-->
|
@@ -60,23 +60,96 @@
|
|
60
60
|
// Usage:
|
61
61
|
// let atomeDrag = new AtomeDrag();
|
62
62
|
// atomeDrag.drag('atome_id', 'options');
|
63
|
+
const Atomeanimation = {}
|
63
64
|
|
64
65
|
|
65
|
-
const Atomeanimation ={
|
66
|
-
|
67
|
-
|
68
|
-
}
|
69
66
|
|
70
67
|
// TODO: put in a class
|
71
68
|
|
69
|
+
|
72
70
|
const atome = {
|
73
|
-
jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
|
71
|
+
jsSchedule: function (years, months, days, hours, minutes, seconds, atome, proc) {
|
74
72
|
const now = new Date();
|
75
|
-
const
|
76
|
-
const diffTime = Math.abs(
|
73
|
+
const formatDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
74
|
+
const diffTime = Math.abs(formatDate - now);
|
77
75
|
setTimeout(function () {
|
78
|
-
|
76
|
+
atome.$schedule_callback(proc);
|
79
77
|
}, diffTime);
|
78
|
+
},
|
79
|
+
jsReader: function (file, atome, proc) {
|
80
|
+
fetch('medias/' + file)
|
81
|
+
.then(response => response.text())
|
82
|
+
.then(text => atome.$read_callback(text, proc))
|
83
|
+
},
|
84
|
+
js_Fullscreen: function (atome_id){
|
85
|
+
let elem = document.getElementById(atome_id)
|
86
|
+
if (elem.requestFullscreen) {
|
87
|
+
elem.requestFullscreen();
|
88
|
+
} else if (elem.webkitRequestFullscreen) { /* Safari */
|
89
|
+
elem.webkitEnterFullscreen();
|
90
|
+
} else if (elem.msRequestFullscreen) { /* IE11 */
|
91
|
+
elem.msRequestFullscreen();
|
92
|
+
}
|
93
|
+
|
80
94
|
}
|
95
|
+
|
81
96
|
}
|
82
97
|
|
98
|
+
|
99
|
+
// example ruby equivalent in js //
|
100
|
+
Opal.queue(function (Opal) {/* Generated by Opal 1.6.0 */
|
101
|
+
const $klass = Opal.klass, $defs = Opal.defs, $def = Opal.def;
|
102
|
+
// The line below create the AtomicJS cons to simplify access to js object from ruby
|
103
|
+
|
104
|
+
// var $const_set = Opal.const_set, $nesting = [], nil = Opal.nil;
|
105
|
+
// return $const_set($nesting[0], 'AtomicJS', atome)
|
106
|
+
|
107
|
+
(function ($base, $super) {
|
108
|
+
const self = $klass($base, $super, 'Atome_html');
|
109
|
+
$def(self, '$initialize', function $$initialize(val) {
|
110
|
+
// Init code below
|
111
|
+
}, 1);
|
112
|
+
|
113
|
+
$defs(self, '$check_this', function $$check_this(val) {
|
114
|
+
// getter code below
|
115
|
+
return (val);
|
116
|
+
}, 0);
|
117
|
+
|
118
|
+
$def(self, '$way', function $way() {
|
119
|
+
// getter code below
|
120
|
+
return (self.my_var);
|
121
|
+
}, 0);
|
122
|
+
|
123
|
+
return $def(self, '$way=', function $way(val) {
|
124
|
+
//self method example
|
125
|
+
return (self.my_var = val);
|
126
|
+
}, 0);
|
127
|
+
|
128
|
+
|
129
|
+
})();
|
130
|
+
|
131
|
+
// new class below
|
132
|
+
return (function ($base, $super) {
|
133
|
+
const self = $klass($base, $super, 'Atome');
|
134
|
+
|
135
|
+
$defs(self, '$verif', function $$verif(val) {
|
136
|
+
//self method example
|
137
|
+
return (val);
|
138
|
+
}, 0);
|
139
|
+
|
140
|
+
$def(self, '$new_method', function $way() {
|
141
|
+
// getter code below
|
142
|
+
return (self.new_method);
|
143
|
+
}, 0);
|
144
|
+
|
145
|
+
|
146
|
+
return $def(self, '$new_method=', function $way(val) {
|
147
|
+
//setter code below
|
148
|
+
return (self.atome = val);
|
149
|
+
}, 0);
|
150
|
+
|
151
|
+
})();
|
152
|
+
});
|
153
|
+
|
154
|
+
|
155
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Text in object
|
4
|
+
a=Atome.new(code: { type: :code, renderers: [:headless], parents: [], children: [] }) do |params_found|
|
5
|
+
puts "the param is #{params_found}"
|
6
|
+
end
|
7
|
+
a.run(:super)
|
8
|
+
c=element do |params_found|
|
9
|
+
puts "you want me to print: #{params_found}"
|
10
|
+
text({ data: :hello })
|
11
|
+
end
|
12
|
+
|
13
|
+
c.run('it works')
|
File without changes
|