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
data/lib/atome.rb CHANGED
@@ -2,49 +2,26 @@
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'
23
- 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
-
8
+ require 'atome/helpers/essentials'
9
+ require 'atome/helpers/color_helper/color'
10
+ require 'atome/atome_meta_engine'
11
+ require 'atome/processors/utilities'
12
+ require 'atome/helpers/utilities'
13
+ require 'atome/genesis/generators/atome'
14
+ require 'atome/presets/atome'
15
+ require 'atome/genesis/generators/communication'
16
+ require 'atome/genesis/generators/effect'
17
+ require 'atome/genesis/generators/event'
18
+ require 'atome/genesis/generators/geometry'
19
+ require 'atome/genesis/generators/identity'
20
+ require 'atome/genesis/generators/material'
21
+ require 'atome/genesis/generators/spatial'
22
+ require 'atome/genesis/generators/utility'
23
+ require 'atome/renderers/browser/browser'
24
+ require 'atome/renderers/html/html'
25
+ require 'atome/extensions/atome'
26
+ require 'atome/helpers/sanitizer'
27
+ 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"
@@ -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,32 @@
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"/>
6
+ <!-- <meta Cross-Origin-Opener-Policy="same-origin"/>-->
7
+ <!-- <meta Cross-Origin-Embedder-Policy="require-corp"/>-->
8
8
  <meta name="format-detection" content="telephone=no">
9
9
  <meta name="msapplication-tap-highlight" content="no">
10
10
  <meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
11
11
  <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
12
  <script type="text/javascript" src="js/third_parties/interact.min.js"></script>
15
13
  <script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
16
14
  <script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
17
15
  <script type="text/javascript" src="js/third_parties/ping.min.js"></script>
18
16
  <script src='js/third_parties/w3color.js'></script>
17
+ <script src='js/opal/opal.js'></script>
19
18
  <script src='js/opal/opal_browser.js'></script>
20
- <script src='js/opal/opal_parser.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-->
21
+ <!-- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>-->
22
+ <!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
23
+ <!-- <script src='js/opal/opal_parser.js'></script>-->
21
24
  <script src='js/aui.js'></script>
22
25
  <script src='js/atome/atome.js' defer></script>
23
26
  <script src='js/atome/kernel.js' defer></script>
24
27
  <script src='js/opal/atome_opal_extensions.js'></script>
25
28
  <title>atome</title>
26
- <link rel="icon" type="image/x-icon" href="favicon.ico">
29
+ <link rel="icon" type="image/x-icon" href="./favicon.ico">
27
30
  </head>
28
- <body id='user_view' class='atome' oncontextmenu="return false;" >
31
+ <body id='user_view' class='atome' oncontextmenu="return false;">
29
32
  </body>
30
33
  <script src='js/application.js' defer></script>
31
34
  </html>
@@ -1,69 +1,68 @@
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');
64
63
 
65
64
 
66
- class Atomeanimation {
65
+ const Atomeanimation ={
67
66
 
68
67
 
69
68
  }
@@ -79,4 +78,5 @@ const atome = {
79
78
  Opal.Object.$schedule_callback(proc);
80
79
  }, diffTime);
81
80
  }
82
- }
81
+ }
82
+
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ mycode = <<Struct
4
+ #circle({color: :red})
5
+ alert :it_works
6
+ Struct
7
+
8
+ Atome.new(code: { type: :code, data: mycode, renderers: [:browser], parents: [], children: [] })
9
+ cc = Atome.new
10
+ cc.code("alert 'it works too'")
11
+
12
+ code("alert :perfect")
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box({ id: :my_box })
4
+ b.color(:orange)
5
+
6
+ b.id(:the_new_id)
7
+
8
+ wait 1 do
9
+ b.color(:blue)
10
+ end
11
+
12
+ wait 2 do
13
+ grab(:the_new_id).color(:cyan)
14
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ text = Atome.new(
4
+ text: { renderers: [:browser], id: :text1, type: :text, parents: [:view], children: [], visual: { size: 18 },
5
+ data: 'My first text!', left: 300, top: 33, width: 199, height: 33,
6
+ color: { renderers: [:browser], id: :c31, type: :color, parents: [:text1], children: [],
7
+ red: 0.6, green: 0.6, blue: 0.6, alpha: 1 }
8
+ }
9
+ )
10
+
11
+ # now we change the color all the object that share the care modified
12
+ wait 1 do
13
+ text.link(:c315)
14
+ end
15
+ wait 2 do
16
+ grab(:c315).red(0)
17
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  my_video = Atome.new(
2
- video: { render: [:html], data: :dummy, id: :video1, type: :video, parent: [:view], path: './medias/videos/avengers.mp4', left: 333, top: 333, width: 199, height: 99,
4
+ video: { render: [:html], data: :dummy, id: :video1, type: :video, parents: [:view], path: './medias/videos/avengers.mp4', left: 333, top: 333, width: 199, height: 99,
3
5
  }
4
6
  ) do |params|
5
7
  puts "video callback here #{params}"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  puts "Attention this method only work with a server due to security restriction "
2
4
  read('examples/image.rb', :ruby)
3
5
  read('examples/image.rb', :text)
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box()
4
+
5
+ b.instance_variable_set('@left', 300)
6
+
7
+ wait 1 do
8
+ b.refresh
9
+ end
@@ -1,12 +1,15 @@
1
- a=Atome.new(
2
- shape: { render: [:html], id: :crasher, type: :shape, parent: [:view], left: 99, right: 99, width: 99, height: 99,
3
- color: { render: [:html], id: :c315, type: :color,
4
- red: 1, green: 0.15, blue: 0.15, alpha: 0.6 } }
5
- )
1
+ # frozen_string_literal: true
6
2
 
7
- # attention to modify an atome using Atome.new you must apply your method to the first atome
8
- # here the first atome is shape, so if you want to make it draggable drag type:
3
+ Atome.new(
4
+ shape: { type: :shape, renderers: [:browser], id: :the_shape, parents: [:view], children: [],
5
+ left: 99, right: 99, width: 399, height: 99,
6
+ color: { renderers: [:browser], id: :c315, type: :color, parents: [:the_shape],children: [],
7
+ red: 0.3, green: 1, blue: 0.6, alpha: 1 } }
8
+ )
9
9
 
10
- a.shape.drag(true) do |x, y|
11
- puts "drag position: #{x}"
12
- end
10
+ Atome.new(
11
+ shape: { renderers: [:browser], id: :the_shape2, type: :shape, parents: [:view],children: [],
12
+ left: 99, right: 99, width: 99, height: 99,
13
+ color: { renderers: [:browser], id: :c31, type: :color, parents: [:the_shape2],children: [],
14
+ red: 1, green: 0.15, blue: 0.15, alpha: 0.6 } }
15
+ )
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ height: :auto, width: 99, left: 333 })
2
4
  b.top(99)
3
5
  b.bottom(99)
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ width: :auto, left: 333 })
2
4
  b.right(333)
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box({ id: :the_box, left: 99, top: 99 })
4
+ b.blur(2)
@@ -1 +1,3 @@
1
- box({ bottom: 12 })
1
+ # frozen_string_literal: true
2
+
3
+ box({ bottom: 12 })
@@ -1,16 +1,23 @@
1
- box({ id: :my_box, left: 333 }) do |p|
2
- # callback is in the Genesis.atome_creator_option(:text_pre_save_proc)
3
- puts "ok box id is : #{id}"
1
+ # frozen_string_literal: true
2
+
3
+ a = box({ id: :my_box, left: 333 }) do |p|
4
+ puts "the param pass to the box is: #{p}"
4
5
  wait 2 do
5
- self.left(0)
6
+ left(120)
6
7
  end
7
8
  end
8
9
 
9
- Atome.new(
10
- { shape: { render: [:html], id: :view_test, type: :shape, parent: [:view],
10
+ b = Atome.new(
11
+ { shape: { render: [:html], id: :view_test, type: :shape, parents: [:view],children: [],
11
12
  left: 0, width: 90, top: 0, height: 90, overflow: :auto,
12
- color: { render: [:html], id: :view_test_color, type: :color,
13
+ color: { render: [:html], id: :view_test_color, type: :color, parents: [:view_test],
13
14
  red: 1, green: 0.15, blue: 0.15, alpha: 1 } } }
14
15
  ) do |p|
15
- puts "ok Atome.new(box) id is : #{id}"
16
+ puts "the param pass to the atome is: #{p}"
17
+
16
18
  end
19
+
20
+ bloc_a = a.bloc.value
21
+ bloc_b = b.bloc.value
22
+ a.instance_exec(:hello, &bloc_a) if bloc_a.is_a?(Proc)
23
+ b.instance_exec(:hi, &bloc_b) if bloc_b.is_a?(Proc)
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  circle({ width: 333, left: 333 })
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  box(id: :my_box)
3
4
 
4
5
  circle(left: 333)
5
6
 
6
7
  wait 2 do
7
- grab(:view).clear
8
+ grab(:view).clear(true)
8
9
  end
9
10
 
@@ -1,13 +1,52 @@
1
+ # frozen_string_literal: true
2
+
1
3
  c = circle
4
+ # FIXME: bug we creating an object like this c = circle({ red: 1 })
5
+ # FIXME: bug we using a color twice or more only the first is colored: c = { red: 1 }; a.color(c),b.color(c)
6
+ # Example:
7
+ # c={ red: 1 }
8
+ # a=circle
9
+ # b=box({ left: 300 })
10
+ # a.color(c)
11
+ # b.color(c)
12
+ wait 1 do
13
+ # the most performant way :
14
+ # please note that in this case: render , id and type params must place in order
15
+ c.color(
16
+ { render: [:html], id: :c319, type: :color,
17
+ red: 1, green: 1, blue: 0.15, alpha: 0.6 }
18
+ )
19
+ end
20
+
21
+ wait 2 do
22
+ # now we overload the color
23
+ c.color({ red: 1 })
24
+ end
25
+
26
+ wait 4 do
27
+ # now the easy way
28
+ c.color(:yellow)
29
+ wait 1 do
30
+ c.color({ green: 1, blue: 0.69, alpha: 1 })
31
+ end
32
+ end
33
+
34
+ wait 5 do
35
+ d=c.color(:red)
36
+ wait 1 do
37
+ d.blue(0)
38
+ end
2
39
 
3
- # the easy way
4
- c.color(:red)
40
+ wait 2 do
41
+ d.red(1)
42
+ end
43
+ end
5
44
 
6
- # the most performant way :
45
+ circle({id: :the_circle})
7
46
 
8
- c.color(
9
- { render: [:html], id: :c319, type: :color,
10
- red: 1, green: 1, blue: 0.15, alpha: 0.6 }
11
- )
12
47
 
13
- # please note that render , id and type params must place in order
48
+ wait 2 do
49
+ the_col=Atome.new({ color: { renderers: [:browser], id: :c31, type: :color, parents: [], children: [],
50
+ left: 33, top: 66, red: 0, green: 0.15, blue: 0.7, alpha: 0.6 } })
51
+ the_col.parents([:the_circle])
52
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ width: 333, left: 333})
2
4
  b.height(33)
3
5
  b.left(333)
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box
4
+
5
+ wait 1 do
6
+ b.delete(true)
7
+ end
@@ -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
 
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ Atome.new(container: {id: :element14, type: :element ,data: :hello, renderers: []})
4
+
5
+ element(data: :hello_world)
6
+ puts "atomes are: #{Universe.atomes.keys}"
@@ -1 +1,3 @@
1
- puts Utilities.renderer_list
1
+ # frozen_string_literal: true
2
+
3
+ puts Universe.renderer_list
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  box({id: :my_box})
2
4
  # allow to get any atome using it's id
3
5
  grab(:my_box).color(:yellow)
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ left: 333 })
2
4
  b.height(33)
@@ -1,4 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Atome.new(
2
- image: { render: [:html], id: :image1, type: :image, parent: [:view], path: "./medias/images/boat.png", left: 99, top: 120, width: 199, height: 199,
4
+ image: { renderers: [:browser], id: :image1, type: :image, parents: [:view], path: "./medias/images/boat.png", left: 99, top: 120, width: 199, height: 199,
3
5
  }
4
- )
6
+ )
7
+
8
+ image({path: "./medias/images/moto.png", left: 33, top: 33})
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ left: 333 })
2
4
  b.left(333)