atome 0.5.1.1 → 0.5.1.4

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -5
  3. data/app_builder_helpers/Rakefile +1 -1
  4. data/exe/atome +1 -1
  5. data/lib/atome/{atome_meta_engine.rb → atome.rb} +14 -17
  6. data/lib/atome/extensions/atome.rb +2 -2
  7. data/lib/atome/genesis/generators/atome.rb +25 -0
  8. data/lib/atome/genesis/generators/event.rb +5 -0
  9. data/lib/atome/genesis/generators/identity.rb +15 -1
  10. data/lib/atome/genesis/generators/spatial.rb +1 -0
  11. data/lib/atome/genesis/generators/utility.rb +18 -1
  12. data/lib/atome/genesis/genesis.rb +4 -9
  13. data/lib/atome/helpers/callbacks.rb +12 -0
  14. data/lib/atome/helpers/essentials.rb +2 -2
  15. data/lib/atome/helpers/sanitizer.rb +1 -20
  16. data/lib/atome/helpers/utilities.rb +8 -11
  17. data/lib/atome/kernel/essentials.rb +0 -7
  18. data/lib/atome/kernel/universe.rb +27 -10
  19. data/lib/atome/presets/atome.rb +26 -4
  20. data/lib/atome/renderers/browser/atome.rb +29 -16
  21. data/lib/atome/renderers/browser/browser.rb +158 -91
  22. data/lib/atome/renderers/browser/event.rb +29 -1
  23. data/lib/atome/renderers/browser/identity.rb +5 -1
  24. data/lib/atome/renderers/browser/spatial.rb +4 -3
  25. data/lib/atome/renderers/browser/utility.rb +17 -4
  26. data/lib/atome/renderers/headless/headless.rb +10 -0
  27. data/lib/atome/renderers/headless/utility.rb +6 -0
  28. data/lib/atome/renderers/html/spatial.rb +1 -1
  29. data/lib/atome/renderers/html/utility.rb +2 -0
  30. data/lib/atome/renderers/renderer.rb +13 -0
  31. data/lib/atome/renderers/server/server.rb +10 -0
  32. data/lib/atome/renderers/server/utility.rb +6 -0
  33. data/lib/atome/version.rb +1 -1
  34. data/lib/atome.rb +5 -1
  35. data/vendor/assets/build/index.html +1 -5
  36. data/vendor/assets/build/js/atome/atome.js +81 -8
  37. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
  38. data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +0 -0
  39. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
  40. data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
  41. data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
  42. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  43. data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
  44. data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
  45. data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
  46. data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
  47. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
  48. data/vendor/assets/build/medias/rubies/examples/on.rb +20 -0
  49. data/vendor/assets/build/medias/rubies/examples/{_read.rb → read.rb} +4 -2
  50. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  51. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
  52. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  53. data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -7
  54. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  55. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  56. data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
  57. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  58. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  59. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  60. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  61. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  62. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  63. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  64. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
  65. metadata +22 -10
  66. data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
  67. data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
  68. data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
  69. 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
- class BrowserHelper
17
+ module BrowserHelper
18
18
  def self.browser_document
19
- # Work because of the patched versioo of opal-browser(0.39)
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
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
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
- left = atome[:left]
56
- top = atome[:top]
57
- blur = atome[:blur]
58
- direction = atome[:direction]
59
- shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
60
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
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
- browser_object.style[:left] = "#{value}px"
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
- browser_object.style[:right] = "#{value}px"
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
- browser_object.style[:top] = "#{value}px"
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
- browser_object.style[:bottom] = "#{value}px"
77
- end
78
+ def self.browser_bottom_shape(value, browser_object, _atome)
79
+ browser_object.style[:bottom] = "#{value}px"
80
+ end
78
81
 
79
- def browser_left_image(value, browser_object, _atome)
80
- browser_object.style[:left] = "#{value}px"
81
- end
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
- browser_object.style[:right] = "#{value}px"
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
- browser_object.style[:top] = "#{value}px"
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
- browser_object.style[:bottom] = "#{value}px"
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 browser_left_shadow(value, _browser_object, atome)
96
- ls_left = "#{atome[:left] = value}px"
97
- ls_top = "#{atome[:top]}px"
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
- def browser_top_shadow(value, _browser_object, atome)
110
- rs_left = "#{atome[:left]}px"
111
- rs_top = "#{atome[:top] = value}px"
112
- rs_blur = "#{atome[:blur]}px"
113
- red = atome[:red] * 255
114
- green = atome[:green] * 255
115
- blue = (atome[:blue]) * 255
116
- direction = atome[:direction]
117
- alpha = atome[:alpha]
118
-
119
- shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
120
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
121
- end
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 browser_left_color(_value, _browser_object, _atome)
124
- puts 'code to write when implementing gradient'
125
- end
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 browser_right_color(_value, _browser_object, _atome)
128
- puts 'code to write when implementing gradient'
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 browser_top_color(_value, _browser_object, _atome)
132
- puts 'code to write when implementing gradient'
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 browser_bottom_color(_value, _browser_object, _atome)
136
- puts 'code to write when implementing gradient'
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
- # text
140
- def browser_left_text(value, browser_object, _atome)
141
- browser_object.style[:left] = "#{value}px"
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
- def browser_right_text(value, browser_object, _atome)
145
- browser_object.style[:right] = "#{value}px"
146
- end
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 browser_top_text(value, browser_object, _atome)
149
- browser_object.style[:top] = "#{value}px"
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 browser_bottom_text(value, browser_object, _atome)
153
- browser_object.style[:bottom] = "#{value}px"
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 browser_data_text(value)
157
- browser_object.text = value
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.build_optional_methods(:pre_save_children) do |children_pass|
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
- # @browser_object.style[:bottom] = "#{value}px"
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(:path) do |value|
19
- @browser_object[:src] = value
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(:data) do |data|
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'
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ generator.build_render_method(:headless_schedule)
6
+ generator.build_render_method(:headless_reader)
@@ -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.build_optional_methods(:pre_get_left) do
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
@@ -13,3 +13,5 @@ generator.build_render_method(:html_clear) do
13
13
  end
14
14
  children([])
15
15
  end
16
+ generator.build_render_method(:html_schedule)
17
+ generator.build_render_method(:html_reader)
@@ -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'
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ generator.build_render_method(:server_schedule)
6
+ generator.build_render_method(:server_reader)
data/lib/atome/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.5.1.1'
4
+ VERSION = '0.5.1.4'
5
5
  end
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/atome_meta_engine'
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 will be uncomment when using stand alone app
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 formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
76
- const diffTime = Math.abs(formatedDate - now);
73
+ const formatDate = new Date(years, months - 1, days, hours, minutes, seconds);
74
+ const diffTime = Math.abs(formatDate - now);
77
75
  setTimeout(function () {
78
- Opal.Object.$schedule_callback(proc);
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')
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- box({ bottom: 12 })
3
+ box({bottom: 12 })