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.
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 })