atome 0.4.7.0 → 0.5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) 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_meta_engine.rb +132 -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 +13 -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 +5 -0
  16. data/lib/atome/genesis/generators/geometry.rb +6 -0
  17. data/lib/atome/genesis/generators/identity.rb +15 -0
  18. data/lib/atome/genesis/generators/material.rb +10 -0
  19. data/lib/atome/genesis/generators/spatial.rb +12 -0
  20. data/lib/atome/genesis/generators/utility.rb +14 -0
  21. data/lib/atome/genesis/genesis.rb +51 -0
  22. data/lib/atome/genesis/sparkle.rb +58 -0
  23. data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
  24. data/lib/atome/helpers/color_helper/color/css.rb +7 -0
  25. data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
  26. data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
  27. data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
  28. data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
  29. data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
  30. data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
  31. data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
  32. data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
  33. data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
  34. data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
  35. data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
  36. data/lib/atome/helpers/color_helper/color.rb +196 -0
  37. data/lib/atome/helpers/essentials.rb +42 -0
  38. data/lib/atome/helpers/sanitizer.rb +42 -0
  39. data/lib/atome/helpers/utilities.rb +57 -0
  40. data/lib/atome/kernel/essentials.rb +30 -0
  41. data/lib/atome/kernel/universe.rb +75 -26
  42. data/lib/atome/presets/atome.rb +66 -0
  43. data/lib/atome/processors/utilities.rb +10 -0
  44. data/lib/atome/renderers/browser/atome.rb +95 -0
  45. data/lib/atome/renderers/browser/browser.rb +158 -0
  46. data/lib/atome/renderers/browser/effect.rb +23 -0
  47. data/lib/atome/renderers/browser/event.rb +9 -0
  48. data/lib/atome/renderers/browser/geometry.rb +11 -0
  49. data/lib/atome/renderers/browser/identity.rb +20 -0
  50. data/lib/atome/renderers/browser/material.rb +43 -0
  51. data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
  52. data/lib/atome/renderers/browser/spatial.rb +22 -0
  53. data/lib/atome/renderers/browser/utility.rb +26 -0
  54. data/lib/atome/renderers/html/atome.rb +47 -0
  55. data/lib/atome/renderers/html/effect.rb +19 -0
  56. data/lib/atome/renderers/html/event.rb +9 -0
  57. data/lib/atome/renderers/html/geometry.rb +11 -0
  58. data/lib/atome/renderers/html/html.rb +42 -0
  59. data/lib/atome/renderers/html/identity.rb +14 -0
  60. data/lib/atome/renderers/html/opal_browser.rb +6 -0
  61. data/lib/atome/renderers/html/spatial.rb +28 -0
  62. data/lib/atome/renderers/html/utility.rb +15 -0
  63. data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
  64. data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
  65. data/lib/atome/renderers/opal/opal.rb +4 -0
  66. data/lib/atome/version.rb +1 -2
  67. data/lib/atome.rb +22 -45
  68. data/vendor/assets/application/index.rb +3 -1
  69. data/vendor/assets/application/required_example.rb +1 -0
  70. data/{lib/atome/renderers/headless/headless.rb → vendor/assets/aui.rb} +0 -0
  71. data/vendor/assets/build/css/style.css +51 -0
  72. data/vendor/assets/build/index.html +10 -7
  73. data/vendor/assets/build/js/atome/atome.js +61 -61
  74. data/{lib/atome/renderers/server/server.rb → vendor/assets/build/medias/rubies/examples/_animation.rb} +0 -0
  75. data/vendor/assets/build/medias/rubies/examples/_code.rb +12 -0
  76. data/vendor/assets/build/medias/rubies/examples/_id.rb +14 -0
  77. data/vendor/assets/build/medias/rubies/examples/_link.rb +17 -0
  78. data/vendor/assets/build/medias/rubies/examples/{on.rb → _on.rb} +3 -1
  79. data/vendor/assets/build/medias/rubies/examples/{read.rb → _read.rb} +2 -0
  80. data/vendor/assets/build/medias/rubies/examples/_refresh.rb +9 -0
  81. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
  82. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
  83. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  84. data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
  85. data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
  86. data/vendor/assets/build/medias/rubies/examples/box.rb +15 -8
  87. data/vendor/assets/build/medias/rubies/examples/circle.rb +2 -0
  88. data/vendor/assets/build/medias/rubies/examples/clear.rb +2 -1
  89. data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
  90. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
  91. data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
  92. data/vendor/assets/build/medias/rubies/examples/drag.rb +1 -0
  93. data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
  94. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
  95. data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
  96. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  97. data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
  98. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  99. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +20 -0
  100. data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
  101. data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
  102. data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
  103. data/vendor/assets/build/medias/rubies/examples/schedule.rb +0 -4
  104. data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
  105. data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
  106. data/vendor/assets/build/medias/rubies/examples/touch.rb +2 -0
  107. data/vendor/assets/build/medias/rubies/examples/video.rb +2 -2
  108. data/vendor/assets/build/medias/rubies/examples/web.rb +2 -2
  109. data/vendor/assets/server/atome_server.rb +3 -5
  110. metadata +74 -174
  111. data/lib/atome/atome_native_extensions.rb +0 -5
  112. data/lib/atome/extensions/helper.rb +0 -112
  113. data/lib/atome/kernel/atome.rb +0 -99
  114. data/lib/atome/kernel/generators/generator.rb +0 -517
  115. data/lib/atome/kernel/generators/genesis.rb +0 -277
  116. data/lib/atome/kernel/generators/sanitizer.rb +0 -73
  117. data/lib/atome/kernel/generators/shapes.rb +0 -55
  118. data/lib/atome/kernel/helpers/internal_methods.rb +0 -173
  119. data/lib/atome/kernel/helpers/utilities.rb +0 -39
  120. data/lib/atome/kernel/properties/essential.rb +0 -77
  121. data/lib/atome/kernel/sparkle.rb +0 -38
  122. data/lib/atome/renderers/opal/properties/generator.rb +0 -1
  123. data/lib/atome/renderers/renderer.rb +0 -13
  124. data/lib/atome/renderers/server/properties/generator.rb +0 -9
  125. data/vendor/assets/build/js/application.js +0 -0
  126. data/vendor/assets/build/medias/audios/guitar.wav +0 -0
  127. data/vendor/assets/build/medias/images/beach.jpg +0 -0
  128. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
  129. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
  130. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
  131. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
  132. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
  133. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
  134. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
  135. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
  136. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
  137. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
  138. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
  139. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
  140. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
  141. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
  142. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
  143. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
  144. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
  145. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
  146. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
  147. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
  148. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
  149. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
  150. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
  151. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
  152. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
  153. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
  154. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
  155. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
  156. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
  157. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
  158. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
  159. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
  160. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
  161. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
  162. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
  163. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
  164. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
  165. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
  166. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
  167. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
  168. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
  169. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
  170. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
  171. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
  172. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
  173. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
  174. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
  175. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
  176. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
  177. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
  178. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
  179. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
  180. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
  181. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
  182. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
  183. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
  184. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
  185. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
  251. data/vendor/assets/build/medias/rubies/examples/animation.rb +0 -0
  252. data/vendor/assets/build/medias/rubies/examples/code.rb +0 -5
  253. data/vendor/assets/build/medias/rubies/examples/link.rb +0 -11
  254. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  255. data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
  256. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  257. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  258. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
@@ -1,517 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # generators
4
-
5
- Genesis.particle_creator(:html_type)
6
-
7
- Genesis.particle_creator(:html_object)
8
-
9
- Genesis.atome_creator(:shape)
10
-
11
- Genesis.atome_creator(:shadow)
12
- # Genesis.atome_creator(:additional)
13
- Genesis.atome_creator(:content)
14
-
15
- Genesis.atome_creator(:color)
16
-
17
- Genesis.atome_creator_option(:color_sanitizer_proc) do |params, atome|
18
- unless params.instance_of? Hash
19
- if RUBY_ENGINE.downcase == 'opal'
20
- rgb_color = `d = document.createElement("div");
21
- d.style.color = #{params};
22
- document.body.appendChild(d)
23
- rgb_color=(window.getComputedStyle(d).color);
24
- d.remove();
25
- `
26
- color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
27
- rgb_color.gsub("rgb(", "").gsub(")", "").split(",").each_with_index do |component, index|
28
- color_converted[color_converted.keys[index]] = component.to_i / 255
29
- end
30
- else
31
- rgb_color = Color::CSS["red"].css_rgb
32
- color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
33
- rgb_color.gsub("rgb(", "").gsub(")", "").gsub("%", "").split(",").each_with_index do |component, index|
34
- component = component.to_i / 100
35
- color_converted[color_converted.keys[index]] = component
36
- end
37
- end
38
- params = { render: [:html], id: "color_#{atome.id}", type: :color }.merge(color_converted)
39
- end
40
- params
41
- end
42
-
43
- Genesis.atome_creator(:shadow)
44
-
45
- Genesis.atome_creator(:video) do |params, &proc|
46
- # todo: factorise code below
47
- if params
48
- default_renderer = Sanitizer.default_params[:render]
49
- generated_id = params[:id] || "video_#{Universe.atomes.length}"
50
- generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
51
- generated_parent = params[:parent] || id
52
- default_params = { render: [generated_render], id: generated_id, type: :video, parent: [generated_parent],
53
- path: './medias/videos/video_missing.mp4', left: 139, top: 333, width: 199, height: 199 }
54
- params = default_params.merge(params)
55
- end
56
- params
57
- end
58
-
59
- # Example below
60
-
61
- # Genesis.atome_creator(:color) do |params|
62
- # # puts "extra color code executed!! : #{params}"
63
- # end
64
- # Genesis.atome_creator_option(:color_pre_save_proc) do |params|
65
- # puts "1- optional color_pre_save_proc: #{params}\n"
66
- # end
67
- #
68
- # Genesis.atome_creator_option(:color_post_save_proc) do |params|
69
- # puts "2- optional color_post_save_proc: #{params}\n"
70
- # end
71
- # #
72
- # Genesis.atome_creator_option(:left_pre_render_proc) do
73
- # puts "3 - optional color_pre_render_proc\n"
74
- # end
75
- # Genesis.atome_creator_option(:left_post_render_proc) do
76
- # puts "4 - optional color_post_render_proc\n"
77
- # end
78
- #
79
- # Genesis.atome_creator_option(:color_post_render_proc) do
80
- # # puts "optional color_post_render_proc\n"
81
- # end
82
- #
83
- # Genesis.atome_creator_option(:color_getter_pre_proc) do
84
- # # puts "optional color_getter_pre_proc\n"
85
- # end
86
-
87
- Genesis.particle_creator(:id)
88
- Genesis.particle_creator(:left)
89
- Genesis.particle_creator(:right)
90
- Genesis.particle_creator(:top)
91
- Genesis.particle_creator(:bottom)
92
- Genesis.particle_creator(:width)
93
- Genesis.particle_creator(:height)
94
- Genesis.particle_creator(:red)
95
- Genesis.particle_creator(:green)
96
- Genesis.particle_creator(:blue)
97
- Genesis.particle_creator(:alpha)
98
- Genesis.particle_creator(:type)
99
- Genesis.particle_creator(:smooth)
100
- Genesis.particle_creator(:blur)
101
- Genesis.particle_creator(:touch)
102
- Genesis.particle_creator(:play)
103
- Genesis.particle_creator(:pause)
104
- Genesis.particle_creator(:time)
105
-
106
- # Genesis.atome_creator_option(:type_pre_render_proc) do |params|
107
- # # "it works and get #{params}"
108
- # params[:value]
109
- # end
110
-
111
- # important exemple below how to prevent rendering
112
- # Genesis.atome_creator_option(:top_render_proc) do |params|
113
- # puts "====---> Hurrey no rendering : #{params}"
114
- # end
115
-
116
- Genesis.particle_creator(:render)
117
- Genesis.particle_creator(:drm)
118
-
119
- Genesis.particle_creator(:child)
120
-
121
- Genesis.particle_creator(:parent) do |parents|
122
- parents.each do |parent|
123
- #TODO : create a root atome instead of using the condition below
124
- if parent != :user_view
125
- grab(parent).child << id
126
- end
127
- end
128
- parents
129
- end
130
-
131
- Genesis.atome_creator_option(:parent_pre_render_proc) do |params|
132
- current_atome = params[:atome]
133
- unless params[:value].instance_of? Array
134
- params[:value] = [params[:value]]
135
- end
136
- current_atome.instance_variable_set("@parent", params[:value])
137
- end
138
-
139
- Genesis.particle_creator(:date)
140
- Genesis.particle_creator(:location)
141
-
142
- Genesis.atome_creator_option(:id_pre_render_proc) do |params|
143
- new_id = params[:value]
144
- current_atome = params[:atome]
145
- old_id = current_atome.id
146
- current_atome.instance_variable_set('@id', new_id)
147
- # we change id id the atomes hash
148
- Universe.change_atome_id(old_id, new_id)
149
- current_atome.html_object.id = new_id if current_atome.html_object
150
-
151
- end
152
-
153
-
154
- # generate renderers
155
-
156
- Genesis.generate_html_renderer(:type) do |value, atome, proc|
157
- send("#{value}_html", value, atome, proc)
158
- value
159
- end
160
-
161
- Genesis.generate_html_renderer(:shape) do |value, atome, proc|
162
- id_found = id
163
- instance_exec(&proc) if proc.is_a?(Proc)
164
- DOM do
165
- div(id: id_found).atome
166
- end.append_to($document[:user_view])
167
- @html_object = $document[id_found]
168
- @html_type = :div
169
- end
170
-
171
- Genesis.generate_html_renderer(:color) do |value, atome, proc|
172
- instance_exec(&proc) if proc.is_a?(Proc)
173
- @html_type = :style
174
- # we remove previous unused style tag
175
- $document[id].remove if $document[id]
176
- $document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
177
- end
178
-
179
- Genesis.generate_html_renderer(:red) do |value, atome, proc|
180
- green_found = green
181
- green_found ||= 0
182
- blue_found = blue
183
- blue_found ||= 0
184
- alpha_found = alpha
185
- alpha_found ||= 0
186
- $document[id].inner_html = "\n.#{id}{background-color: rgba(#{value * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found})}\n"
187
-
188
- end
189
- Genesis.generate_html_renderer(:green) do |value, atome, proc|
190
- red_found = red
191
- red_found ||= 0
192
- blue_found = blue
193
- blue_found ||= 0
194
- alpha_found = alpha
195
- alpha_found ||= 0
196
- $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{value * 255},#{blue_found * 255},#{alpha_found})}\n"
197
-
198
- end
199
-
200
- Genesis.generate_html_renderer(:blue) do |value, atome, proc|
201
- red_found = red
202
- red_found ||= 0
203
- green_found = green
204
- green_found ||= 0
205
- alpha_found = alpha
206
- alpha_found ||= 0
207
- $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{value * 255},#{alpha_found})}\n"
208
-
209
- end
210
-
211
- Genesis.generate_html_renderer(:alpha) do |value, atome, proc|
212
- red_found = red
213
- red_found ||= 0
214
- green_found = green
215
- green_found ||= 0
216
- blue_found = blue
217
- blue_found ||= 0
218
- $document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{value})}\n"
219
- end
220
-
221
- Genesis.generate_html_renderer(:drm)
222
-
223
- Genesis.generate_html_renderer(:parent) do |values, atome, proc|
224
- instance_exec(&proc) if proc.is_a?(Proc)
225
- values.each do |value|
226
- atome.html_decision(@html_type, value, id)
227
- end
228
- end
229
-
230
-
231
-
232
- Genesis.generate_html_renderer(:id) do |value, atome, proc|
233
- # send("#{value}_html", value, atome, proc)
234
- end
235
-
236
- Genesis.generate_html_renderer(:left) do |value, atome, proc|
237
- @html_object.style[:left] = "#{value}px" unless @html_type == :style
238
- end
239
-
240
- Genesis.generate_html_renderer(:right) do |value, atome, proc|
241
- @html_object.style[:right] = "#{value}px" unless @html_type == :style
242
- end
243
-
244
- Genesis.generate_html_renderer(:top) do |value, atome, proc|
245
- @html_object.style[:top] = "#{value}px" unless @html_type == :style
246
- end
247
-
248
- Genesis.generate_html_renderer(:bottom) do |value, atome, proc|
249
- @html_object.style[:bottom] = "#{value}px" unless @html_type == :style
250
- end
251
-
252
- Genesis.generate_html_renderer(:width) do |value, atome, proc|
253
- @html_object.style[:width] = "#{value}px" unless @html_type == :style
254
- end
255
-
256
- Genesis.generate_html_renderer(:height) do |value, atome, proc|
257
- @html_object.style[:height] = "#{value}px" unless @html_type == :style
258
- end
259
-
260
- Genesis.particle_creator(:rotate)
261
-
262
- Genesis.generate_html_renderer(:rotate) do |value, atome, proc|
263
- @html_object.style[:transform] = "rotate(#{value}deg)" unless @html_type == :style
264
- end
265
-
266
- Genesis.generate_html_renderer(:smooth) do |value, atome, proc|
267
- formated_params = case value
268
- when Array
269
- properties = []
270
- value.each do |param|
271
- properties << "#{param}px"
272
- end
273
- properties.join(' ').to_s
274
- when Integer
275
- "#{value}px"
276
- else
277
- value
278
- end
279
- @html_object.style['border-radius'] = formated_params unless @html_type == :style
280
- end
281
-
282
- Genesis.generate_html_renderer(:touch) do |value, atome, proc|
283
- @html_object.on :click do |e|
284
- instance_exec(&proc) if proc.is_a?(Proc)
285
- end
286
- end
287
-
288
- Genesis.generate_html_renderer(:video) do |value, atome, proc|
289
- id_found = id
290
- instance_exec(&proc) if proc.is_a?(Proc)
291
- DOM do
292
- video({ id: id_found, autoplay: false }).atome
293
- end.append_to($document[:user_view])
294
- @html_object = $document[id_found]
295
- @html_type = :video
296
- end
297
-
298
- # overflow
299
- Genesis.particle_creator(:overflow)
300
- Genesis.generate_html_renderer(:overflow) do |value, atome, proc|
301
- @html_object.style[:overflow] = value unless @html_type == :style
302
- end
303
-
304
- Genesis.particle_creator(:bloc)
305
-
306
- # image
307
-
308
- Genesis.atome_creator(:image)
309
-
310
- Genesis.generate_html_renderer(:image) do |value, atome, proc|
311
- id_found = id
312
- instance_exec(&proc) if proc.is_a?(Proc)
313
- DOM do
314
- img({ id: id_found }).atome
315
- end.append_to($document[:user_view])
316
- @html_object = $document[id_found]
317
- @html_type = :image
318
- end
319
-
320
- # text
321
-
322
- Genesis.atome_creator(:text) do |params|
323
- # TODO: factorise code below
324
- if params
325
- default_renderer = Sanitizer.default_params[:render]
326
- generated_id = params[:id] || "text_#{Universe.atomes.length}"
327
- generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
328
- generated_parent = params[:parent] || id
329
-
330
- default_params = { render: [generated_render], id: generated_id, type: :text, parent: [generated_parent],
331
- visual: { size: 33 }, data: "hello world", left: 39, top: 33,
332
- color: { render: [generated_render], id: "color_#{generated_id}", type: :color,
333
- red: 0.09, green: 1, blue: 0.12, alpha: 1 }
334
- }
335
- params = default_params.merge(params)
336
- params
337
- end
338
- # params
339
- end
340
- Genesis.particle_creator(:string)
341
-
342
- Genesis.particle_creator(:visual)
343
- Genesis.generate_html_renderer(:visual) do |value, atome, proc|
344
- @html_object.style['font-size'] = "#{value[:size]}px"
345
- end
346
-
347
- Genesis.generate_html_renderer(:text) do |value, atome, proc|
348
- id_found = id
349
- instance_exec(&proc) if proc.is_a?(Proc)
350
- DOM do
351
- div(id: id_found).atome.text
352
- end.append_to($document[:user_view])
353
- @html_object = $document[id_found]
354
- @html_type = :text
355
- end
356
-
357
- # particles method below to allow to retrieve all particles for an atome
358
- Genesis.particle_creator(:particles)
359
- Genesis.atome_creator_option(:particles_getter_pre_proc) do |params|
360
- atome_found = params[:atome]
361
- particles_hash = {}
362
- atome_found.instance_variables.each do |particle_found|
363
- particle_content = atome_found.instance_variable_get(particle_found)
364
- particles_hash[particle_found.sub('@', '')] = particle_content
365
- end
366
- particles_hash
367
- end
368
-
369
- # link
370
- Genesis.particle_creator(:link)
371
- Genesis.atome_creator_option(:link_pre_render_proc) do |params|
372
- atome_found = params[:atome]
373
- atome_to_link = grab(params[:value])
374
- particles_found = atome_to_link.particles
375
- atome_type = particles_found.delete(:type)
376
- sanitized_particles = {}
377
- particles_found.each do |particle_name, value|
378
- particle_name = particle_name.gsub('@', '')
379
- sanitized_particles[particle_name] = value
380
- end
381
- sanitized_particles[:parent] = [atome_found.id]
382
- atome_found.send(atome_type, sanitized_particles)
383
- params[:value]
384
- end
385
- Genesis.atome_creator(:web)
386
- Genesis.particle_creator(:path)
387
- Genesis.generate_html_renderer(:path) do |value, atome, proc|
388
- @html_object[:src] = value
389
- end
390
-
391
- Genesis.generate_html_renderer(:web) do |value, atome, proc|
392
- id_found = id
393
- instance_exec(&proc) if proc.is_a?(Proc)
394
- DOM do
395
- iframe({ id: id_found }).atome
396
- end.append_to($document[:user_view])
397
- @html_object = $document[id_found]
398
- @html_object.attributes[:allow] = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
399
- @html_object.attributes[:allowfullscreen] = true
400
- @html_type = :web
401
- end
402
-
403
- Genesis.particle_creator(:data)
404
-
405
- Genesis.generate_html_renderer(:data) do |value, atome, proc|
406
- # TODO: create a method for each type
407
- send("#{type}_data", value)
408
- end
409
-
410
- Genesis.particle_creator(:code)
411
- Genesis.atome_creator_option(:code_pre_render_proc) do |params|
412
- def get_binding
413
- binding
414
- end
415
-
416
- str = params[:value][:code]
417
- eval str, get_binding, __FILE__, __LINE__
418
- params[:value]
419
- end
420
- Genesis.particle_creator(:on)
421
-
422
- Genesis.generate_html_renderer(:on) do |value, atome, proc|
423
- @html_object.on(value) do |e|
424
- instance_exec(e, &proc) if proc.is_a?(Proc)
425
- end
426
- end
427
-
428
- Genesis.atome_creator_option(:shape_post_save_proc) do |params|
429
- current_atome = params[:atome]
430
- #FIXME: look why we have to look in [:value][:value] this looks suspect
431
- bloc_found = params[:value][:value][:bloc]
432
- current_atome.instance_exec(params, &bloc_found) if bloc_found.is_a?(Proc)
433
- params
434
- end
435
-
436
- Genesis.atome_creator_option(:text_post_save_proc) do |params|
437
- current_atome = params[:atome]
438
- #FIXME: look why we have to look in [:value][:value] this looks suspect
439
- bloc_found = params[:value][:value][:bloc]
440
- current_atome.instance_exec(params, &bloc_found) if bloc_found.is_a?(Proc)
441
- params
442
- end
443
-
444
- Genesis.atome_creator_option(:play_pre_render_proc) do |params|
445
- params[:atome].send("play_#{params[:atome].type}", params)
446
- end
447
-
448
- Genesis.atome_creator_option(:pause_pre_render_proc) do |params|
449
- params[:atome].send("pause_#{params[:atome].type}", params)
450
- proc_found = params[:proc]
451
- params[:atome].instance_exec('::call back from pause render', &proc_found) if proc_found.is_a?(Proc)
452
- end
453
-
454
- Genesis.generate_html_renderer(:time) do |value, atome, proc|
455
- # params[:atome].html_object.currentTime= 33
456
- @html_object.currentTime = value
457
- end
458
-
459
- #drag
460
- Genesis.generate_html_renderer(:drag) do |value, atome, proc|
461
- alert ("this is very strange that I had a style tag please check")
462
- instance_exec(&proc) if proc.is_a?(Proc)
463
- @html_type = :style
464
- $document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
465
- end
466
- Genesis.particle_creator(:lock)
467
- Genesis.particle_creator(:target)
468
- Genesis.atome_creator(:drag) do |params|
469
- # TODO: factorise code below
470
- if params
471
- default_renderer = Sanitizer.default_params[:render]
472
- generated_id = params[:id] || "drag_#{Universe.atomes.length}"
473
- generated_render = params[:render] || default_renderer unless params[:render].instance_of? Hash
474
- generated_parent = params[:parent] || id
475
- default_params = { render: [generated_render], id: generated_id, type: :drag, parent: [generated_parent], target: [generated_parent]
476
- }
477
- params = default_params.merge(params)
478
- params
479
- end
480
- params
481
- end
482
- Genesis.particle_creator(:remove)
483
- Genesis.particle_creator(:fixed)
484
- Genesis.particle_creator(:max)
485
- Genesis.particle_creator(:inside)
486
- Genesis.atome_creator_option(:remove_pre_render_proc) do |params|
487
- type_found = params[:atome].type
488
- current_atome = params[:atome]
489
- particle_to_remove = params[:value]
490
- current_atome.send("#{type_found}_remove_#{particle_to_remove}", current_atome)
491
- end
492
- Genesis.atome_creator_option(:max_pre_render_proc) do |params|
493
- current_atome = params[:atome]
494
- current_atome.constraint_helper(params, current_atome, :max)
495
- end
496
- Genesis.atome_creator_option(:inside_pre_render_proc) do |params|
497
- current_atome = params[:atome]
498
- params[:value] = grab(params[:value]).html_object
499
- current_atome.constraint_helper(params, current_atome, :max)
500
- end
501
- Genesis.atome_creator_option(:lock_pre_render_proc) do |params|
502
- current_atome = params[:atome]
503
- current_atome.constraint_helper(params, current_atome, :lock)
504
- end
505
- Genesis.atome_creator_option(:fixed_pre_render_proc) do |params|
506
- current_atome = params[:atome]
507
- current_atome.constraint_helper(params, current_atome, :fixed)
508
- end
509
- Genesis.generate_html_renderer(:target) do |targets, atome, proc|
510
- targets.each do |value|
511
- atome_found = grab(value)
512
- # we get the id of the drag and ad add it as a html class to all children so they become draggable
513
- atome_found.html_object.add_class(id)
514
- end
515
- html_drag_helper(atome, {})
516
- end
517
-