atome 0.4.7.0 → 0.5.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +7 -4
  4. data/Rakefile +22 -13
  5. data/app_builder_helpers/Rakefile +63 -21
  6. data/exe/atome +91 -45
  7. data/lib/atome/atome.rb +129 -0
  8. data/lib/atome/extensions/atome.rb +41 -0
  9. data/lib/atome/{kernel/helpers → extensions}/geolocation.rb +0 -0
  10. data/lib/atome/{kernel/helpers → extensions}/ping.rb +0 -0
  11. data/lib/atome/{kernel/helpers → extensions}/sha.rb +3 -1
  12. data/lib/atome/genesis/generators/atome.rb +38 -0
  13. data/lib/atome/{renderers/headless/properties/generator.rb → genesis/generators/communication.rb} +2 -0
  14. data/lib/atome/genesis/generators/effect.rb +6 -0
  15. data/lib/atome/genesis/generators/event.rb +10 -0
  16. data/lib/atome/genesis/generators/geometry.rb +6 -0
  17. data/lib/atome/genesis/generators/identity.rb +29 -0
  18. data/lib/atome/genesis/generators/material.rb +10 -0
  19. data/lib/atome/genesis/generators/spatial.rb +13 -0
  20. data/lib/atome/genesis/generators/utility.rb +31 -0
  21. data/lib/atome/genesis/genesis.rb +46 -0
  22. data/lib/atome/genesis/sparkle.rb +58 -0
  23. data/lib/atome/helpers/callbacks.rb +12 -0
  24. data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
  25. data/lib/atome/helpers/color_helper/color/css.rb +7 -0
  26. data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
  27. data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
  28. data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
  29. data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
  30. data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
  31. data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
  32. data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
  33. data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
  34. data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
  35. data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
  36. data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
  37. data/lib/atome/helpers/color_helper/color.rb +196 -0
  38. data/lib/atome/helpers/essentials.rb +42 -0
  39. data/lib/atome/helpers/sanitizer.rb +23 -0
  40. data/lib/atome/helpers/utilities.rb +54 -0
  41. data/lib/atome/kernel/essentials.rb +23 -0
  42. data/lib/atome/kernel/universe.rb +92 -26
  43. data/lib/atome/presets/atome.rb +88 -0
  44. data/lib/atome/processors/utilities.rb +10 -0
  45. data/lib/atome/renderers/browser/atome.rb +108 -0
  46. data/lib/atome/renderers/browser/browser.rb +225 -0
  47. data/lib/atome/renderers/browser/effect.rb +23 -0
  48. data/lib/atome/renderers/browser/event.rb +37 -0
  49. data/lib/atome/renderers/browser/geometry.rb +11 -0
  50. data/lib/atome/renderers/browser/identity.rb +24 -0
  51. data/lib/atome/renderers/browser/material.rb +43 -0
  52. data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
  53. data/lib/atome/renderers/browser/spatial.rb +23 -0
  54. data/lib/atome/renderers/browser/utility.rb +39 -0
  55. data/lib/atome/renderers/headless/headless.rb +10 -0
  56. data/lib/atome/renderers/headless/utility.rb +6 -0
  57. data/lib/atome/renderers/html/atome.rb +47 -0
  58. data/lib/atome/renderers/html/effect.rb +19 -0
  59. data/lib/atome/renderers/html/event.rb +9 -0
  60. data/lib/atome/renderers/html/geometry.rb +11 -0
  61. data/lib/atome/renderers/html/html.rb +42 -0
  62. data/lib/atome/renderers/html/identity.rb +14 -0
  63. data/lib/atome/renderers/html/opal_browser.rb +6 -0
  64. data/lib/atome/renderers/html/spatial.rb +28 -0
  65. data/lib/atome/renderers/html/utility.rb +17 -0
  66. data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
  67. data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
  68. data/lib/atome/renderers/opal/opal.rb +4 -0
  69. data/lib/atome/renderers/renderer.rb +7 -7
  70. data/lib/atome/renderers/server/server.rb +10 -0
  71. data/lib/atome/renderers/server/utility.rb +6 -0
  72. data/lib/atome/version.rb +1 -2
  73. data/lib/atome.rb +25 -44
  74. data/vendor/assets/application/index.rb +3 -1
  75. data/vendor/assets/application/required_example.rb +1 -0
  76. data/vendor/assets/{build/js/application.js → aui.rb} +0 -0
  77. data/vendor/assets/build/css/style.css +51 -0
  78. data/vendor/assets/build/index.html +7 -8
  79. data/vendor/assets/build/js/atome/atome.js +141 -68
  80. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
  81. data/vendor/assets/build/medias/rubies/examples/{animation.rb → _animation.rb} +0 -0
  82. data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +1 -0
  83. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
  84. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
  85. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  86. data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
  87. data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
  88. data/vendor/assets/build/medias/rubies/examples/box.rb +12 -8
  89. data/vendor/assets/build/medias/rubies/examples/circle.rb +2 -0
  90. data/vendor/assets/build/medias/rubies/examples/clear.rb +2 -1
  91. data/vendor/assets/build/medias/rubies/examples/code.rb +10 -4
  92. data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
  93. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
  94. data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
  95. data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
  96. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  97. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
  98. data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
  99. data/vendor/assets/build/medias/rubies/examples/height.rb +7 -2
  100. data/vendor/assets/build/medias/rubies/examples/id.rb +14 -0
  101. data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
  102. data/vendor/assets/build/medias/rubies/examples/left.rb +7 -2
  103. data/vendor/assets/build/medias/rubies/examples/link.rb +12 -3
  104. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +33 -0
  105. data/vendor/assets/build/medias/rubies/examples/on.rb +11 -7
  106. data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
  107. data/vendor/assets/build/medias/rubies/examples/read.rb +6 -2
  108. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  109. data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
  110. data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
  111. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  112. data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -11
  113. data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
  114. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  115. data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
  116. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  117. data/vendor/assets/build/medias/rubies/examples/touch.rb +7 -0
  118. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  119. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  120. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  121. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  122. data/vendor/assets/server/atome_server.rb +3 -5
  123. metadata +76 -164
  124. data/lib/atome/atome_native_extensions.rb +0 -5
  125. data/lib/atome/extensions/helper.rb +0 -112
  126. data/lib/atome/kernel/atome.rb +0 -99
  127. data/lib/atome/kernel/generators/generator.rb +0 -517
  128. data/lib/atome/kernel/generators/genesis.rb +0 -277
  129. data/lib/atome/kernel/generators/sanitizer.rb +0 -73
  130. data/lib/atome/kernel/generators/shapes.rb +0 -55
  131. data/lib/atome/kernel/helpers/internal_methods.rb +0 -173
  132. data/lib/atome/kernel/helpers/utilities.rb +0 -39
  133. data/lib/atome/kernel/properties/essential.rb +0 -77
  134. data/lib/atome/kernel/sparkle.rb +0 -38
  135. data/lib/atome/renderers/opal/properties/generator.rb +0 -1
  136. data/lib/atome/renderers/server/properties/generator.rb +0 -9
  137. data/vendor/assets/build/medias/audios/guitar.wav +0 -0
  138. data/vendor/assets/build/medias/images/beach.jpg +0 -0
  139. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
  140. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
  141. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
  142. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
  143. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
  144. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
  145. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
  146. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
  147. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
  148. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
  149. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
  150. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
  151. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
  152. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
  153. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
  154. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
  155. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
  156. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
  157. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
  158. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
  159. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
  160. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
  161. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
  162. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
  163. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
  164. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
  165. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
  166. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
  167. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
  168. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
  169. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
  170. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
  171. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
  172. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
  173. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
  174. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
  175. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
  176. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
  177. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
  178. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
  179. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
  180. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
  181. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
  182. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
  183. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
  184. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
  185. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
  262. data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'atome/renderers/html/effect'
4
+ require 'atome/renderers/html/event'
5
+ require 'atome/renderers/html/geometry'
6
+ require 'atome/renderers/html/identity'
7
+ require 'atome/renderers/html/spatial'
8
+ require 'atome/renderers/html/atome'
9
+ require 'atome/renderers/html/utility'
10
+
11
+ # #html object
12
+ class Html
13
+ def initialize
14
+ html = `document.createElement("div")`
15
+ `document.body.appendChild(#{html})`
16
+ `document.body.appendChild(#{html})`
17
+ @html = html
18
+ end
19
+
20
+ def add_class(class_to_add)
21
+ `#{@html}.classList.add(#{class_to_add})`
22
+ end
23
+
24
+ def attr(attribute, value)
25
+ `#{@html}.setAttribute(#{attribute}, #{value})`
26
+ end
27
+
28
+ def style
29
+ # `#{@html}.style`
30
+ end
31
+ def append_shape(parent)
32
+ parent_found = `document.getElementById(#{parent})`
33
+ parent_found
34
+ `#{parent_found}.appendChild(#{@html})`
35
+ end
36
+ def append_color(parent)
37
+ alert "color : #{parent.class}"
38
+ end
39
+ def append_to(_node)
40
+
41
+ end
42
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ generator.build_render_method(:html_type) do |params|
6
+ send("html_#{params}", user_proc)
7
+ end
8
+
9
+ generator.build_render_method(:html_parents) do |parents_found|
10
+ type_found = @atome[:type]
11
+ parents_found.each do |parent_found|
12
+ @html_object.send("append_#{type_found}", parent_found)
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # render methods
4
+ require 'native'
5
+ require 'promise'
6
+ require 'browser/setup/full'
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ # generator.build_render_method(:html_left) do |_value, user_proc|
6
+ # instance_exec(&user_proc) if user_proc.is_a?(Proc)
7
+ # end
8
+ #
9
+ # generator.build_option(:pre_get_left) do
10
+ # user_proc = @user_proc
11
+ # instance_exec(&user_proc) if user_proc.is_a?(Proc)
12
+ # end
13
+
14
+ generator.build_render_method(:html_left) do |value, _user_proc|
15
+ @html_object.style[:left] = "#{value}px" unless @html_type == :style
16
+ end
17
+
18
+ generator.build_render_method(:html_right) do |value, _user_proc|
19
+ @html_object.style[:right] = "#{value}px" unless @html_type == :style
20
+ end
21
+
22
+ generator.build_render_method(:html_top) do |value, _user_proc|
23
+ @html_object.style[:top] = "#{value}px" unless @html_type == :style
24
+ end
25
+
26
+ generator.build_render_method(:html_bottom) do |value, _user_proc|
27
+ @html_object.style[:bottom] = "#{value}px" unless @html_type == :style
28
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+ generator.build_render_method(:html_bloc)
5
+ generator.build_render_method(:html_id)
6
+ generator.build_render_method(:html_render)
7
+ generator.build_render_method(:html_delete) do
8
+ html_object&.remove
9
+ end
10
+ generator.build_render_method(:html_clear) do
11
+ @atome[:children].each do |child_found|
12
+ grab(child_found).html_object&.remove
13
+ end
14
+ children([])
15
+ end
16
+ generator.build_render_method(:html_schedule)
17
+ generator.build_render_method(:html_reader)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'extensions/atome'
3
4
  require 'extensions/geolocation'
4
5
  require 'extensions/ping'
5
6
  require 'extensions/sha'
6
7
  require 'extensions/color'
7
- require 'properties/generator'
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ def wait(seconds, &proc)
4
+ if seconds == :kill
5
+ abort
6
+ else
7
+ seconds = seconds.to_f
8
+ after seconds, &proc if proc.instance_of?(Proc)
9
+ end
10
+
11
+ end
12
+
13
+ def repeater(counter, proc)
14
+ instance_exec(counter, &proc) if proc.is_a?(Proc)
15
+ end
16
+
17
+ def repeat(delay = 1, repeat = 0, &proc)
18
+ # below we exec the call a first time
19
+ instance_exec(0, &proc) if proc.is_a?(Proc)
20
+ # as we exec one time above we subtract one below
21
+ `
22
+ var x = 1
23
+ var intervalID = window.setInterval(function(){ Opal.Object.$repeater(x,#{proc})
24
+ if (++x ===#{repeat} ) {
25
+ window.clearInterval(intervalID);
26
+ }}, #{delay * 1000})
27
+ `
28
+ end
29
+
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ # render methods
4
+ require 'opal'
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Main render engine
4
- module Render
5
- def render_engine(property, value, atome, &proc)
3
+ # Rendering method here
4
+ class Atome
5
+ private
6
6
 
7
- renderer_found = atome.render
8
- renderer_found.each do |renderer|
9
- renderer_name = "#{property}_#{renderer}"
10
- send(renderer_name, value,atome, &proc)
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
11
  end
12
12
  end
13
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,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.4.7.0'
4
+ VERSION = '0.5.1.4'
5
5
  end
6
- puts "atome version : #{Atome::VERSION}"
data/lib/atome.rb CHANGED
@@ -2,49 +2,30 @@
2
2
 
3
3
  require 'fileutils'
4
4
  require 'atome/version'
5
- @atome_client_ready = false
6
-
7
- def eval_protection
8
- binding
9
- end
10
-
11
- # FIXME: atome run doesnt run the code
12
- if RUBY_ENGINE.downcase != 'opal'
13
- # FIXME: find a better and more elegant solution to avoid opal to treat require
14
- # FIXME: replace eval with a safer option
15
- eval "require 'atome/atome_native_extensions'", eval_protection, __FILE__, __LINE__
16
- eval "require 'color'", eval_protection, __FILE__, __LINE__
17
- end
18
-
5
+ require 'atome/genesis/genesis'
6
+ require 'atome/kernel/essentials'
19
7
  require 'atome/kernel/universe'
20
- require 'atome/kernel/generators/genesis'
21
- require 'atome/kernel/helpers/internal_methods'
22
- require 'atome/kernel/helpers/utilities'
8
+ require 'atome/helpers/essentials'
23
9
  require 'atome/renderers/renderer'
24
- require 'atome/kernel/generators/sanitizer'
25
- require 'atome/kernel/generators/generator'
26
- require 'atome/renderers/opal/properties/generator'
27
- require 'atome/renderers/server/properties/generator'
28
- require 'atome/renderers/headless/properties/generator'
29
- require 'atome/kernel/generators/shapes'
30
- require 'atome/kernel/atome'
31
- require 'atome/kernel/properties/essential'
32
- require 'atome/extensions/helper'
33
-
34
- Universe.send(:initialize)
35
- # puts "@atome_client_ready is : #{@atome_client_ready}"
36
-
37
- # puts "app_identity is : #{Universe.app_identity}"
38
-
39
- Atome.current_user = :jeezs
40
-
41
- require 'atome/kernel/sparkle'
42
-
43
- # TODO: create a system to secure and validate generated renderer methods , optional methods and atome's methods
44
- # TODO: int8! : language
45
- # TODO: record user actions
46
- # TODO: separate the audio in the video
47
- # TODO: add mute to video
48
-
49
-
50
-
10
+ require 'atome/helpers/color_helper/color'
11
+ require 'atome/atome'
12
+ require 'atome/processors/utilities'
13
+ require 'atome/helpers/utilities'
14
+ require 'atome/helpers/callbacks'
15
+ require 'atome/genesis/generators/atome'
16
+ require 'atome/presets/atome'
17
+ require 'atome/genesis/generators/communication'
18
+ require 'atome/genesis/generators/effect'
19
+ require 'atome/genesis/generators/event'
20
+ require 'atome/genesis/generators/geometry'
21
+ require 'atome/genesis/generators/identity'
22
+ require 'atome/genesis/generators/material'
23
+ require 'atome/genesis/generators/spatial'
24
+ require 'atome/genesis/generators/utility'
25
+ require 'atome/renderers/browser/browser'
26
+ require 'atome/renderers/html/html'
27
+ require 'atome/renderers/headless/headless'
28
+ require 'atome/renderers/server/server'
29
+ require 'atome/extensions/atome'
30
+ require 'atome/helpers/sanitizer'
31
+ require 'atome/genesis/sparkle'
@@ -1,4 +1,6 @@
1
1
  # my code here ..
2
2
 
3
3
  # open the console in your browser ou your native app and should see the text below
4
- puts "hello world"
4
+ puts "hello world"
5
+
6
+ require 'application/required_example'
@@ -0,0 +1 @@
1
+ puts "required file is run"
File without changes
@@ -68,3 +68,54 @@ html, body {
68
68
  -webkit-background-clip: text;
69
69
  }
70
70
 
71
+ .vertical-center {
72
+ /*font-size: 18px;*/
73
+ position: absolute;
74
+ top: 50%;
75
+ -ms-transform: translateY(-50%);
76
+ /*transform: translateY(calc(50% - 200px));*/
77
+ }
78
+
79
+ .center {
80
+ /*font-size: 18px;*/
81
+ position: absolute;
82
+ top: 50%;
83
+ left: 50%;
84
+ -ms-transform: translateY(-50%);
85
+ /* #calc is width -border*2 */
86
+ /*transform: translateX(calc(50% - 200px)) translateY(calc(50% - 200px));*/
87
+ }
88
+
89
+ .horizontal-center {
90
+ position: absolute;
91
+ left: 50%;
92
+ -ms-transform: translateY(-50%);
93
+ /*transform: translateX(calc(50% - 200px));*/
94
+ }
95
+
96
+ .e_align_h_left {
97
+ text-align: left;
98
+ }
99
+
100
+ .e_align_h_right {
101
+ text-align: right;
102
+ }
103
+
104
+ .e_align_h_center {
105
+ text-align: center;
106
+ }
107
+
108
+ .el_align_h {
109
+ text-align: justify;
110
+ }
111
+
112
+ .el_align_v {
113
+ display: flex;
114
+ align-items: center;
115
+ }
116
+
117
+
118
+ .el_align_v_bottom {
119
+ display: flex;
120
+ align-items: flex-end;
121
+ }
@@ -3,29 +3,28 @@
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
- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>
13
- <script type="text/javascript" src="js/third_parties/three.min.js"></script>
14
9
  <script type="text/javascript" src="js/third_parties/interact.min.js"></script>
15
10
  <script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
16
11
  <script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
17
12
  <script type="text/javascript" src="js/third_parties/ping.min.js"></script>
18
13
  <script src='js/third_parties/w3color.js'></script>
14
+ <script src='js/opal/opal.js'></script>
19
15
  <script src='js/opal/opal_browser.js'></script>
20
- <script src='js/opal/opal_parser.js'></script>
16
+ <!-- TODO: we line below is commented when using stand alone mode and loaded on demand when using server mode-->
17
+ <!-- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>-->
18
+ <!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
19
+ <!-- <script src='js/opal/opal_parser.js'></script>-->
21
20
  <script src='js/aui.js'></script>
22
21
  <script src='js/atome/atome.js' defer></script>
23
22
  <script src='js/atome/kernel.js' defer></script>
24
23
  <script src='js/opal/atome_opal_extensions.js'></script>
25
24
  <title>atome</title>
26
- <link rel="icon" type="image/x-icon" href="favicon.ico">
25
+ <link rel="icon" type="image/x-icon" href="./favicon.ico">
27
26
  </head>
28
- <body id='user_view' class='atome' oncontextmenu="return false;" >
27
+ <body id='user_view' class='atome' oncontextmenu="return false;">
29
28
  </body>
30
29
  <script src='js/application.js' defer></script>
31
30
  </html>
@@ -1,82 +1,155 @@
1
- class AtomeDrag {
2
- constructor() {
3
- }
4
-
5
- drag(atome_drag_id) {
6
- // target elements with the "draggable" class
7
- self.current_obj = Opal.Utilities.$grab(atome_drag_id)
8
- interact('.'+atome_drag_id)
9
- .draggable({
10
- // enable inertial throwing
11
- startAxis: 'x',
12
- lockAxis: 'x',
13
- // lockAxis: ''+lock_axis,
14
- inertia: true,
15
- // keep the element within the area of it's parent
16
- modifiers: [
17
- interact.modifiers.restrictRect({
18
- restriction: 'parent',
19
- endOnly: true
20
- })
21
- ],
22
- // enable autoScroll
23
- autoScroll: true,
24
-
25
- listeners: {
26
- // call this function on every dragmove event
27
-
28
- move: dragMoveListener,
29
- start(event) {
30
- //TODO: optimise this passing the proc to the drag callback
31
- // lets get the current atome Object
32
- // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
33
- // now get the grab proc
34
- self.proc_meth = current_obj.bloc
35
- },
36
- // call this function on every dragend event
37
- end(event) {
38
-
39
- }
40
- }
41
- })
42
-
43
- function dragMoveListener(event) {
44
- const target = event.target
45
- // the code below can be conditioned to receive the drag event without moving the object
46
- // keep the dragged position in the data-x/data-y attributes
47
- const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
48
- const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
49
- // translate the element
50
- target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
51
- // update the position attributes
52
- target.setAttribute('data-x', x)
53
- target.setAttribute('data-y', y)
54
- // CallBack here
55
- self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
56
- }
57
- }
58
-
59
- }
1
+ // class AtomeDrag {
2
+ // constructor() {
3
+ // }
4
+ //
5
+ // drag(atome_drag_id) {
6
+ // // target elements with the "draggable" class
7
+ // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
8
+ // interact('.'+atome_drag_id)
9
+ // .draggable({
10
+ // // enable inertial throwing
11
+ // startAxis: 'x',
12
+ // lockAxis: 'x',
13
+ // // lockAxis: ''+lock_axis,
14
+ // inertia: true,
15
+ // // keep the element within the area of it's parent
16
+ // modifiers: [
17
+ // interact.modifiers.restrictRect({
18
+ // restriction: 'parent',
19
+ // endOnly: true
20
+ // })
21
+ // ],
22
+ // // enable autoScroll
23
+ // autoScroll: true,
24
+ //
25
+ // listeners: {
26
+ // // call this function on every dragmove event
27
+ //
28
+ // move: dragMoveListener,
29
+ // start(event) {
30
+ // //TODO: optimise this passing the proc to the drag callback
31
+ // // lets get the current atome Object
32
+ // // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
33
+ // // now get the grab proc
34
+ // self.proc_meth = current_obj.bloc
35
+ // },
36
+ // // call this function on every dragend event
37
+ // end(event) {
38
+ // }
39
+ // }
40
+ // })
41
+ //
42
+ // function dragMoveListener(event) {
43
+ // const target = event.target
44
+ // // the code below can be conditioned to receive the drag event without moving the object
45
+ // // keep the dragged position in the data-x/data-y attributes
46
+ // const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
47
+ // const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
48
+ // // translate the element
49
+ // target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
50
+ // // update the position attributes
51
+ // target.setAttribute('data-x', x)
52
+ // target.setAttribute('data-y', y)
53
+ // // CallBack here
54
+ // self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
55
+ // }
56
+ // }
57
+ //
58
+ // }
60
59
 
61
60
  // Usage:
62
61
  // let atomeDrag = new AtomeDrag();
63
62
  // atomeDrag.drag('atome_id', 'options');
63
+ const Atomeanimation = {}
64
64
 
65
65
 
66
- class Atomeanimation {
67
-
68
-
69
- }
70
66
 
71
67
  // TODO: put in a class
72
68
 
69
+
73
70
  const atome = {
74
- jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
71
+ jsSchedule: function (years, months, days, hours, minutes, seconds, atome, proc) {
75
72
  const now = new Date();
76
- const formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
77
- 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);
78
75
  setTimeout(function () {
79
- Opal.Object.$schedule_callback(proc);
76
+ atome.$schedule_callback(proc);
80
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
+
81
94
  }
82
- }
95
+
96
+ }
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,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  box({width: 333, height: 333, id: :the_constraint_box, color: :orange})
3
4