atome 0.4.5.4 → 0.5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -3
  3. data/README.md +7 -4
  4. data/Rakefile +22 -12
  5. data/app_builder_helpers/Rakefile +65 -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/extensions/ping.rb +15 -11
  10. data/lib/atome/extensions/sha.rb +3 -1
  11. data/lib/atome/genesis/generators/atome.rb +13 -0
  12. data/lib/atome/{renderers/headless/properties/generator.rb → genesis/generators/communication.rb} +2 -0
  13. data/lib/atome/genesis/generators/effect.rb +6 -0
  14. data/lib/atome/genesis/generators/event.rb +5 -0
  15. data/lib/atome/genesis/generators/geometry.rb +6 -0
  16. data/lib/atome/genesis/generators/identity.rb +15 -0
  17. data/lib/atome/genesis/generators/material.rb +10 -0
  18. data/lib/atome/genesis/generators/spatial.rb +12 -0
  19. data/lib/atome/genesis/generators/utility.rb +14 -0
  20. data/lib/atome/genesis/genesis.rb +51 -0
  21. data/lib/atome/genesis/sparkle.rb +58 -0
  22. data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
  23. data/lib/atome/helpers/color_helper/color/css.rb +7 -0
  24. data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
  25. data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
  26. data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
  27. data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
  28. data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
  29. data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
  30. data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
  31. data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
  32. data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
  33. data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
  34. data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
  35. data/lib/atome/helpers/color_helper/color.rb +196 -0
  36. data/lib/atome/helpers/essentials.rb +42 -0
  37. data/lib/atome/helpers/sanitizer.rb +42 -0
  38. data/lib/atome/helpers/utilities.rb +57 -0
  39. data/lib/atome/kernel/essentials.rb +30 -0
  40. data/lib/atome/kernel/universe.rb +77 -20
  41. data/lib/atome/presets/atome.rb +66 -0
  42. data/lib/atome/processors/utilities.rb +10 -0
  43. data/lib/atome/renderers/browser/atome.rb +95 -0
  44. data/lib/atome/renderers/browser/browser.rb +158 -0
  45. data/lib/atome/renderers/browser/effect.rb +23 -0
  46. data/lib/atome/renderers/browser/event.rb +9 -0
  47. data/lib/atome/renderers/browser/geometry.rb +11 -0
  48. data/lib/atome/renderers/browser/identity.rb +20 -0
  49. data/lib/atome/renderers/browser/material.rb +43 -0
  50. data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
  51. data/lib/atome/renderers/browser/spatial.rb +22 -0
  52. data/lib/atome/renderers/browser/utility.rb +26 -0
  53. data/lib/atome/renderers/html/atome.rb +47 -0
  54. data/lib/atome/renderers/html/effect.rb +19 -0
  55. data/lib/atome/renderers/html/event.rb +9 -0
  56. data/lib/atome/renderers/html/geometry.rb +11 -0
  57. data/lib/atome/renderers/html/html.rb +42 -0
  58. data/lib/atome/renderers/html/identity.rb +14 -0
  59. data/lib/atome/renderers/html/opal_browser.rb +6 -0
  60. data/lib/atome/renderers/html/spatial.rb +28 -0
  61. data/lib/atome/renderers/html/utility.rb +15 -0
  62. data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
  63. data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
  64. data/lib/atome/renderers/opal/extensions/geolocation.rb +0 -1
  65. data/lib/atome/renderers/opal/opal.rb +4 -0
  66. data/lib/atome/version.rb +1 -1
  67. data/lib/atome.rb +22 -54
  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 +55 -0
  72. data/vendor/assets/build/index.html +12 -7
  73. data/vendor/assets/build/js/atome/atome.js +72 -58
  74. data/vendor/assets/build/js/third_parties/interact.min.js +2 -3
  75. data/vendor/assets/build/js/{ping.min.js → third_parties/ping.min.js} +0 -0
  76. data/vendor/assets/build/js/{utilities → third_parties}/w3color.js +0 -0
  77. data/vendor/assets/build/js/third_parties/zim.min.js +1 -0
  78. data/vendor/assets/build/medias/rubies/examples/!run.rb +16 -0
  79. data/{lib/atome/renderers/server/server.rb → vendor/assets/build/medias/rubies/examples/_animation.rb} +0 -0
  80. data/vendor/assets/build/medias/rubies/examples/_code.rb +12 -0
  81. data/vendor/assets/build/medias/rubies/examples/_id.rb +14 -0
  82. data/vendor/assets/build/medias/rubies/examples/_link.rb +17 -0
  83. data/vendor/assets/build/medias/rubies/examples/_on.rb +18 -0
  84. data/vendor/assets/build/medias/rubies/examples/_read.rb +5 -0
  85. data/vendor/assets/build/medias/rubies/examples/_refresh.rb +9 -0
  86. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
  87. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
  88. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  89. data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
  90. data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
  91. data/vendor/assets/build/medias/rubies/examples/box.rb +23 -1
  92. data/vendor/assets/build/medias/rubies/examples/circle.rb +3 -0
  93. data/vendor/assets/build/medias/rubies/examples/clear.rb +10 -0
  94. data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
  95. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
  96. data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
  97. data/vendor/assets/build/medias/rubies/examples/drag.rb +43 -4
  98. data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
  99. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
  100. data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
  101. data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
  102. data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
  103. data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
  104. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +20 -0
  105. data/vendor/assets/build/medias/rubies/examples/parent.rb +8 -5
  106. data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
  107. data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
  108. data/vendor/assets/build/medias/rubies/examples/schedule.rb +0 -4
  109. data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
  110. data/vendor/assets/build/medias/rubies/examples/text.rb +30 -3
  111. data/vendor/assets/build/medias/rubies/examples/touch.rb +2 -0
  112. data/vendor/assets/build/medias/rubies/examples/video.rb +51 -3
  113. data/vendor/assets/build/medias/rubies/examples/web.rb +3 -2
  114. data/vendor/assets/server/atome_server.rb +3 -5
  115. metadata +78 -166
  116. data/lib/atome/atome_native_extensions.rb +0 -5
  117. data/lib/atome/extensions/helper.rb +0 -123
  118. data/lib/atome/extensions/utilities.rb +0 -39
  119. data/lib/atome/kernel/atome.rb +0 -98
  120. data/lib/atome/kernel/generators/generator.rb +0 -387
  121. data/lib/atome/kernel/generators/genesis.rb +0 -265
  122. data/lib/atome/kernel/generators/sanitizer.rb +0 -77
  123. data/lib/atome/kernel/generators/shapes.rb +0 -40
  124. data/lib/atome/kernel/properties/essential.rb +0 -43
  125. data/lib/atome/kernel/sparkle.rb +0 -37
  126. data/lib/atome/renderers/opal/properties/generator.rb +0 -1
  127. data/lib/atome/renderers/renderer.rb +0 -12
  128. data/lib/atome/renderers/server/properties/generator.rb +0 -9
  129. data/vendor/assets/build/js/application.js +0 -0
  130. data/vendor/assets/build/js/third_parties/createjs.min.js +0 -19
  131. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
  132. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
  133. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
  134. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
  135. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
  136. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
  137. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
  138. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
  139. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
  140. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
  141. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
  142. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
  143. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
  144. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
  145. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
  146. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
  147. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
  148. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
  149. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
  150. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
  151. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
  152. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
  153. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
  154. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
  155. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
  156. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
  157. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
  158. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
  159. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
  160. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
  161. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
  162. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
  163. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
  164. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
  165. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
  166. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
  167. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
  168. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
  169. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
  170. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
  171. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
  172. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
  173. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
  174. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
  175. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
  176. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
  177. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
  178. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
  179. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
  180. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
  181. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
  182. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
  183. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
  184. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
  185. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
  254. data/vendor/assets/build/medias/rubies/examples/animation.rb +0 -0
  255. data/vendor/assets/build/medias/rubies/examples/link.rb +0 -13
  256. data/vendor/assets/build/medias/rubies/examples/read.rb +0 -3
@@ -0,0 +1,16 @@
1
+ def run_demo
2
+ scripts = %i[animation atome.new auto_height auto_width bottom box circle
3
+ color create_atome_in_atome drag get_renderer_list grab height image
4
+ left link parent read repeat right rotate schedule smooth text
5
+ top touch video wait web width]
6
+
7
+ scripts.each_with_index do |toto, index|
8
+ wait 1 * index do
9
+ puts toto
10
+ read("examples/#{toto}.rb", :ruby)
11
+ `console.clear()`
12
+ end
13
+ end
14
+ end
15
+
16
+ run_demo
@@ -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
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ my_video = Atome.new(
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,
5
+ }
6
+ ) do |params|
7
+ puts "video callback here #{params}"
8
+ end
9
+ my_video.video.play(true)
10
+
11
+ # TODO int8! : language
12
+
13
+ # verif video
14
+ grab(:video1).time(5)
15
+ #
16
+ grab(:video1).on(:pause) do |event|
17
+ alert :stopped
18
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ puts "Attention this method only work with a server due to security restriction "
4
+ read('examples/image.rb', :ruby)
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 +1,23 @@
1
- box({ width: 333, left: 333 })
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}"
5
+ wait 2 do
6
+ left(120)
7
+ end
8
+ end
9
+
10
+ b = Atome.new(
11
+ { shape: { render: [:html], id: :view_test, type: :shape, parents: [:view],children: [],
12
+ left: 0, width: 90, top: 0, height: 90, overflow: :auto,
13
+ color: { render: [:html], id: :view_test_color, type: :color, parents: [:view_test],
14
+ red: 1, green: 0.15, blue: 0.15, alpha: 1 } } }
15
+ ) do |p|
16
+ puts "the param pass to the atome is: #{p}"
17
+
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)
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ circle({ width: 333, left: 333 })
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ box(id: :my_box)
4
+
5
+ circle(left: 333)
6
+
7
+ wait 2 do
8
+ grab(:view).clear(true)
9
+ end
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,5 +1,44 @@
1
- b=box
2
- b.drag(true) do |x, y|
1
+ # frozen_string_literal: true
2
+
3
+ box({width: 333, height: 333, id: :the_constraint_box, color: :orange})
4
+
5
+ b = box
6
+
7
+ b.drag({ remove: true}) do |position|
3
8
  # below here is the callback :
4
- puts "drag position: #{x}"
5
- end
9
+ puts "1 - callback drag position: #{position}"
10
+ puts "1 - callback id is: #{id}"
11
+ end
12
+
13
+ wait 4 do
14
+ b.drag({ max: { left: 333 ,right: 90, top: 333, bottom: 30}})
15
+ end
16
+
17
+ bb = box({ left: 120, color: :green })
18
+ bb.touch(true) do
19
+ alert left
20
+ end
21
+
22
+ bb.drag({ lock: :x }) do |position|
23
+ # below here is the callback :
24
+ puts "2 - drag position: #{position}"
25
+ puts "2 - id is: #{id}"
26
+ end
27
+ #TODO: when we add a color we must change the code : do we create a new color with it's id or do we replace the old one?
28
+ #
29
+ bbb = box({ left: 120, top: 120 })
30
+ bbb.drag({}) do |position|
31
+ # below here is the callback :
32
+ puts "bbb drag position: #{position}"
33
+ puts "bbb id is: #{id}"
34
+ end
35
+ bbb.color(:black)
36
+
37
+ bbb.remove(:drag)
38
+ wait 3 do
39
+ bbb.drag({fixed: true}) do |position|
40
+ puts position
41
+ end
42
+ end
43
+
44
+ circle({drag: {inside: :the_constraint_box}, color: :red})
@@ -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)
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ a = text({data: "open the console!"})
4
+ a.right(44).left(66)
5
+
6
+ b = Atome.new(shape: { type: :shape, id: :my_shape, children: [],parents: [:view], renderers: [:browser],
7
+ left: 0, right: 33
8
+ })
9
+
10
+ c = Atome.new(shape: { type: :shape, id: :my_pix,children: [], parents: [:view], renderers: [:browser],
11
+ left: 50, right: 78
12
+ })
13
+
14
+ a.monitor({ atomes: grab(:view).children.value, particles: [:left] }) do |atome,element, value|
15
+ puts "monitoring: #{atome.id}, #{element}, #{value}"
16
+ end
17
+
18
+ b.left(936)
19
+ b.left(777)
20
+ c.left(888)
@@ -1,12 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ b=box({id: :c315})
1
4
  circle({id: :circle_12})
2
- grab(:c315).parent([:circle_12])
3
- a.shape.parent([:circle_12])
5
+ grab(:c315).parents([:circle_12])
6
+ b.parents([:circle_12])
4
7
 
5
8
 
6
9
  circle({ id: :circle_123, color: :cyan })
7
10
  box({ id: :box_1, left: 333 })
8
11
  bb=box({top: 99})
9
- grab(:box_1).parent(:circle_123)
10
- grab(:color_circle_123).parent([:box_1])
12
+ grab(:box_1).parents([:circle_123])
13
+ grab(:color_circle_123).parents([:box_1])
11
14
 
12
- bb.parent([:box_1])
15
+ bb.parents([:box_1])
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  repeat 0.3, 10 do |evt|
2
4
  puts "hello:#{evt}:"
3
5
  end
@@ -1 +1,3 @@
1
- box({ right: 120 })
1
+ # frozen_string_literal: true
2
+
3
+ box({ right: 120 })
@@ -6,8 +6,4 @@ time_to_run= Time.now+6
6
6
  puts 'event schedule'
7
7
  schedule(time_to_run) do
8
8
  puts 'event executed'
9
- # i=image({ content: :boat , drag: :true, x: 99, y:99 })
10
- # wait 2 do
11
- # i.delete(true)
12
- # end
13
9
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ b = box({ id: :the_box, left: 99, top: 99 })
4
+
5
+ s = b.shadow({ renderers: [:browser], id: :shadow2, type: :shadow, parents: [], children: [],
6
+ left: 3, top: 9, blur: 3, direction: :inset,
7
+ red: 0, green: 0, blue: 0, alpha: 1
8
+ })
9
+
10
+
11
+ wait 1 do
12
+ s.parents([:the_box])
13
+ # or
14
+ # b.children([:shadow2])
15
+ wait 1 do
16
+ s.blur(9)
17
+ wait 1 do
18
+ wait 2 do
19
+ s.direction('')
20
+ s.green(0)
21
+ s.left(14)
22
+ wait 1 do
23
+ s.delete(true)
24
+ end
25
+ end
26
+ s.left(44)
27
+ s.green(0.7)
28
+ end
29
+ end
30
+ end
@@ -1,5 +1,32 @@
1
- text = Atome.new(
2
- text: { render: [:html], id: :text1, type: :text, parent: [:view], visual: { size: 33 }, string: "hello!", left: 399, top: 633, width: 199, height: 33,
1
+ # frozen_string_literal: true
2
+
3
+ my_text = Atome.new(
4
+ text: { renderers: [:browser], id: :text1, type: :text, parents: [:view], children: [], visual: { size: 33 },
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 }
3
8
  }
4
9
  )
5
- text.text.string(:kool)
10
+
11
+ wait 1.2 do
12
+ my_text.data(:kool)
13
+ end
14
+
15
+ text({ id: :the_text, left: 0 })
16
+
17
+ text2 = Atome.new(
18
+ text: { renderers: [:browser], id: :text2, type: :text, parents: [:view], children: [], visual: { size: 33 },
19
+ data: 'My second text!', left: 300, top: 33, width: 199, height: 33 }
20
+ ) do |p|
21
+ puts "ok Atome.new(text) id is : #{id}"
22
+ end
23
+ wait 1.2 do
24
+ text2.text.data(:ok)
25
+ end
26
+
27
+ b = box({ left: 66, top: 66 })
28
+ my_text = b.text({ data: 'drag the bloc behind me', width: 333, left: 55 })
29
+ wait 2 do
30
+ my_text.color(:red)
31
+ end
32
+
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  b = box({ width: 333, left: 666})
2
4
 
3
5
  b.touch(true) do
@@ -1,4 +1,52 @@
1
- Atome.new(
2
- video: { render: [:html], id: :video1, type: :video, parent: [:view], path: "./medias/videos/avengers.mp4", left: 333, top: 333, width: 199, height: 99,
1
+ my_video = Atome.new(
2
+ video: { render: [:html], id: :video1, type: :video, parents: [:view], path: './medias/videos/superman.mp4', left: 333, top: 333, width: 199, height: 99,
3
3
  }
4
- )
4
+ ) do |params|
5
+ puts "video callback time is #{params}, id is : #{id}"
6
+ end
7
+ my_video.video.top(33)
8
+ my_video.video.left(33)
9
+
10
+ my_video.video.touch(true) do
11
+ my_video.video.play(true) do |currentTime|
12
+ puts "play callback time is : #{currentTime}"
13
+ end
14
+ end
15
+
16
+ my_video2 = Atome.new(
17
+ video: { render: [:html], id: :video9, type: :video, parents: [:view], path: './medias/videos/madmax.mp4', left: 666, top: 333, width: 199, height: 99,
18
+ }
19
+ #FIXME : positioning doesnt work
20
+
21
+ ) do |params|
22
+ puts "2- video callback time is #{params}, id is : #{id}"
23
+ end
24
+ my_video2.video.top(33)
25
+ my_video2.video.left(333)
26
+
27
+ my_video2.video.touch(true) do
28
+ my_video2.video.play(true) do |currentTime|
29
+ puts "2 - play callback time is : #{currentTime}, id is : #{id}"
30
+ end
31
+ end
32
+
33
+
34
+ my_video3 = video({ path: './medias/videos/avengers.mp4', id: :video16 }) do |params|
35
+ puts "3 - video callback here #{params}, id is : #{id}"
36
+ end
37
+
38
+ grab(:video16).on(:pause) do |event|
39
+ alert ":supercool, id is : #{id}"
40
+ end
41
+ my_video3.touch(true) do
42
+ grab(:video16).time(15)
43
+ my_video3.play(true) do |currentTime|
44
+ puts "3- play callback time is : #{currentTime}, id is : #{id}"
45
+ end
46
+ wait 3 do
47
+ grab(:video16).pause(true) do |p|
48
+ alert "paused, id is : #{id}"
49
+ end
50
+ end
51
+ end
52
+
@@ -1,9 +1,10 @@
1
1
  Atome.new(
2
- image: { render: [:html], id: :image1, type: :image, parent: [:view], path: "https://interactive-examples.mdn.mozilla.net/media/cc0-images/grapefruit-slice-332-332.jpg", left: 99, top: 120, width: 199, height: 199,
2
+ image: { render: [:html], id: :image1, type: :image, parents: [:view], path: "https://interactive-examples.mdn.mozilla.net/media/cc0-images/grapefruit-slice-332-332.jpg", left: 99, top: 320, width: 199, height: 199,
3
3
  }
4
4
  )
5
5
 
6
+
6
7
  Atome.new(
7
- web: { render: [:html], id: :image1, type: :web, parent: [:view], path: "https://www.youtube.com/embed/usQDazZKWAk", left: 99, top: 120, width: 199, height: 199,
8
+ web: { render: [:html], id: :youtube1, type: :web, parents: [:view], path: "https://www.youtube.com/embed/usQDazZKWAk", left: 33, top: 33, width: 199, height: 199,
8
9
  }
9
10
  )
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # atome server
3
- if RUBY_PLATFORM == 'x64-mingw32'
4
- require 'em/pure_ruby'
5
- end
4
+ require 'em/pure_ruby' if RUBY_PLATFORM == 'x64-mingw32'
6
5
  require 'atome'
7
- require '../aui.rb'
6
+ require '../aui'
8
7
  require 'digest/sha2'
9
8
  require 'faye/websocket'
10
9
  require 'geocoder'
@@ -17,7 +16,6 @@ require 'securerandom'
17
16
  require 'sequel'
18
17
 
19
18
 
20
-
21
19
  class String
22
20
  def is_json?
23
21
  begin