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,115 +0,0 @@
1
- # collaborate example
2
-
3
- # Call login through web socket
4
- class LoginCallback
5
- def response(response)
6
- login_button=box({x: 0, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
7
- login_button.text({x:0, y:0, content: "Login response: #{response.JS["log"]}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
8
-
9
- @session_id = response.JS["log"]
10
- end
11
-
12
- def session_id
13
- @session_id
14
- end
15
- end
16
-
17
- login_callback = LoginCallback.new
18
-
19
- login_button=box({x: 0, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
20
- login_button.text({x:0, y:0, content: "Login", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
21
- login_button.touch do
22
- ATOME.message({request_id: 0, type: :login, username: "user1", password: "password"}, login_callback)
23
- end
24
-
25
- # Start a channel through web socket
26
- class StartChannelCallback
27
- def response(response)
28
- start_channel_button=box({x: 120, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
29
- @channel_id = response.JS["channel_id"]
30
- start_channel_button.text({x:0, y:0, content: "Start channel response: #{@channel_id}", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
31
-
32
- end
33
-
34
- def channel_id
35
- @channel_id
36
- end
37
- end
38
-
39
- start_channel_callback = StartChannelCallback.new
40
-
41
- start_channel_button=box({x: 120, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
42
- start_channel_button.text({x:0, y:0, content: "Start channel",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
43
-
44
- start_channel_button.touch do
45
- ATOME.message({request_id: 1, type: :start_channel, session_id: login_callback.session_id, name: "channel de test"}, start_channel_callback)
46
- end
47
-
48
- # List channels through web socket
49
- class ListChannelsCallback
50
- def response(response)
51
- list_channels_button=box({x: 240, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
52
-
53
- @channels = response.JS["channels"]
54
- list_channels_button.text({x:0, y:0, content: "List channels response: #{@channels}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
55
- end
56
-
57
- def channels
58
- @channels
59
- end
60
- end
61
-
62
- list_channels_callback = ListChannelsCallback.new
63
-
64
- list_channels_button=box({x: 240, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
65
- list_channels_button.text({x:0, y:0, content: "List channels", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
66
-
67
- list_channels_button.touch do
68
- ATOME.message({request_id: 2, type: :list_channels, session_id: login_callback.session_id}, list_channels_callback)
69
- end
70
-
71
- # Connect to channel through web socket
72
- class ConnectChannelsCallback
73
- def response(response)
74
- connect_to_channel_button=box({x: 360, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
75
-
76
- @connected = response.JS["connected"]
77
- connect_to_channel_button.text({x:0, y:0, content: "Connect to channel response: #{@connected}", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
78
- end
79
-
80
- def connected
81
- @connected
82
- end
83
- end
84
-
85
- connect_to_channels_callback = ConnectChannelsCallback.new
86
-
87
- connect_channel_button=box({x: 360, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
88
- connect_channel_button.text({x:0, y:0, content: "Connect to channel", width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
89
-
90
- connect_channel_button.touch do
91
- ATOME.message({request_id: 3, type: :connect_channel, session_id: login_callback.session_id, channel_id: list_channels_callback.channels[0]}, connect_to_channels_callback)
92
- end
93
-
94
- # Push to channel through web socket
95
- class PushToChannelsCallback
96
- def response(response)
97
- push_to_channel_button=box({x: 480, y: 80, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
98
-
99
- @pushed = response.JS["pushed"]
100
- push_to_channel_button.text({x:0, y:0, content: "Push to channel response: #{@pushed}",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
101
- end
102
-
103
- def pushed
104
- @pushed
105
- end
106
- end
107
-
108
- push_to_channels_callback = PushToChannelsCallback.new
109
-
110
- push_to_channel_button=box({x: 480, y: 0, width: 100, height: 50, color: :orange , smooth: 12, overflow: :auto})
111
- push_to_channel_button.text({x:0, y:0, content: "Push to channel",width: :auto, visual: 15, center: true, color: {alpha: 0.9}})
112
-
113
- push_to_channel_button.touch do
114
- ATOME.message({request_id: 4, type: :push_to_channel, session_id: login_callback.session_id, channel_id: list_channels_callback.channels[0], message: "box({x: 100, y: 100, color: :red})"}, push_to_channels_callback)
115
- end
@@ -1,14 +0,0 @@
1
- # convert api
2
-
3
- c = circle()
4
- c.xx(250)
5
- c.yy(300)
6
- c.width("33%")
7
- t=text('resize the window')
8
- t.y=20
9
- t.color(:white)
10
- ATOME.resize_html(true) do |evt|
11
- new_size=c.convert(:width)
12
- t.content("width set : 33%, in pixel :\n"+new_size.to_s+" px")
13
- end
14
- t.x(450)
@@ -1,35 +0,0 @@
1
- # Copy paste example
2
- b = box()
3
- c = circle({ color: ({ alpha: 0.2 }) , x: 300})
4
- c.copy
5
- b.copy
6
-
7
- wait 1 do
8
- b.delete(true)
9
- end
10
-
11
- wait 2 do
12
- c.paste(:properties)
13
- end
14
-
15
- wait 4 do
16
- grab(:view).clear
17
- end
18
-
19
-
20
- wait 6 do
21
- grab(:view).paste(:all)
22
- end
23
-
24
- # wait 1 do
25
- # b.delete(true)
26
- # end
27
- # wait 2 do
28
- # grab(:view).paste
29
- # wait 2 do
30
- # grab(:view).paste
31
- # wait 2 do
32
- # grab(:view).paste
33
- # end
34
- # end
35
- # end
@@ -1,14 +0,0 @@
1
- # current_code example
2
- text " attention this code work better when extracted from examples\n touch the box below"
3
- # JSUtils.load_opal_parser
4
- b=box({y: 120})
5
-
6
- b.touch do
7
- current_code(["./medias/rubies/examples/refresh.rb","./medias/rubies/examples/blur.rb"])
8
- # wait 2 do
9
- refresh current_code
10
- # end
11
- # reader(current_code) do |script|
12
- # compile script
13
- # end
14
- end
@@ -1,3 +0,0 @@
1
- # cursor example
2
-
3
- box({cursor: :pointer})
@@ -1,11 +0,0 @@
1
- # data example
2
- # data property is used to store data inside the atome
3
-
4
- bb=box(width: 333)
5
- bb.text("touch me")
6
- bb.data("data stored here")
7
- bb.touch do
8
- t=text({y: 133})
9
- t.content(bb.data)
10
- end
11
-
@@ -1,29 +0,0 @@
1
- c = circle({x: 69, y: 9, width: 36, height: 36, color: :green})
2
- c2 = circle({x: 69, y: 150, width: 36, height: 36, color: :red})
3
- db = Database.new(:atomeDB)
4
-
5
- c.touch do
6
- db.create_table(:user, "id, login, password, date")
7
- db.create_table(:document, "id, content, user_id, date")
8
- db.create_user({id: "a_87764", date: "2021-03-15", login: :regis, password: :alknx87978hjg})
9
- db.create_user({id: "a_87765", date: "2021-03-16", login: :jeezs, password: :oiuoih978hjg})
10
- db.create_user({id: "a_87766", date: "2021-02-06", login: :sylvain, password: :sdfsdfjg})
11
- db.create_user({id: "a_87767", date: "2021-02-02", login: :romain, password: :jfhdfg978hjg})
12
-
13
- db.create_document({id: "0", date: "2021-date: 03-06", content: "circle({x: 300})", user_id: "a_87764"})
14
- db.create_document({id: "1", date: "2021-01-06", content: "text({x: 300})", user_id: "a_87769"})
15
- db.create_document({id: "2", date: "2021-02-12", content: "text({x: 300})", user_id: "a_87765"})
16
- db.create_document({id: "3", date: "2021-02-12", content: "image(:boat)", user_id: "a_87764"})
17
-
18
- db.populate(:user, {id: "a_87770", date: "2019-02-06", login: :benoit, password: :l554kjhkjsfdg})
19
- db.get_documents_by_user("a_87764")
20
- db.update_documents("0", "big_car")
21
- db.get_documents_by_id("0")
22
- db.delete_doc_by_id("0")
23
- db.get_documents_by_id("0")
24
-
25
- end
26
- c2.touch do
27
- db.delete
28
- text({content: " db removed", visual: 33, color: :red, y: 69, width: 222})
29
- end
@@ -1,12 +0,0 @@
1
- # delete
2
-
3
- b = box()
4
- c = b.text({content: :ok})
5
- c.circle({atome_id: :the_c, color: :green, x:96})
6
- d = b.text({content: :ok2, y: 30, atome_id: :the_second_text})
7
- d.circle({y: 96})
8
- info_text=text({content: "click the box to delete the childs\nthe :view childs are : #{b.child}", x: 96, y: 96, width: :auto})
9
- b.touch do
10
- info_text.content( "the childs are : #{b.child}")
11
- b.child.delete(true)
12
- end
@@ -1,19 +0,0 @@
1
- # the display API is used both to visualize an object or not but also when displaying atome in a special way : cf VR mode
2
- # this API must be umerge with the render API (for list mode etc..)
3
- # attention : "render" false remove the object from the DOM while "display" jsut make it invisible on the screen, We may
4
- # keep the two behaviors
5
-
6
- b=box({id: :toto, color: :green, display: false, atome_id: :the_box})
7
- # b=box({id: :toto, color: :green, display: :none})
8
- # b.display(true)
9
- wait 2 do
10
- b.display(true)
11
- end
12
-
13
- b.touch do
14
- # b.display(false)
15
- b.render(false)
16
- wait 4 do
17
- b.render(true)
18
- end
19
- end
@@ -1,10 +0,0 @@
1
- # accumulate example
2
-
3
- circle({disposition: :x, color: :red})
4
- box({disposition: :x, color: {alpha: 0.3, red: 1}})
5
- box({disposition: {x: 33 }, color: :blue})
6
- box({disposition: {y: 33 }, color: :green})
7
- main_bloc=box({center: true})
8
- main_bloc.box({disposition: {y: 33, x: 33 }, color: :green})
9
- main_bloc.box({disposition: {y: 33, x: 33 }, color: :green})
10
- main_bloc.box({disposition: {y: 33 , x: 33 }, color: :green})
@@ -1,23 +0,0 @@
1
- # double and long touch example
2
- b=box
3
- b.touch ({ option: :double, delay: 0.6 }) do
4
- # b.x=b.x+60
5
- if b.color==:yellow
6
- b.color=:green
7
- else
8
- b.color=:yellow
9
- end
10
- end
11
- c=circle({ x: 99 })
12
-
13
- c.touch ({ option: :long, delay: 1 }) do
14
- # c.x=c.x+60
15
- if c.color==:red
16
- c.color=:blue
17
- else
18
- c.color=:red
19
- end
20
- end
21
-
22
- # delay(in seconds) is optional and set latency before tow touchs or the time to wait
23
-
@@ -1,61 +0,0 @@
1
- # drag
2
-
3
- t=text({content: "drag the grey box!", x: 33, y: 33 })
4
- t2=text({content: "click me to destroy drag on the moto", x: 33, yy: 96 })
5
-
6
- b=box({center: true})
7
- b.drag(true) do |evt|
8
- b.rotate(evt.page_x)
9
- t.content("pointer x: #{evt.page_x},
10
- pointer Y: #{evt.page_y},
11
- offset x: #{evt.offset_x},
12
- offset y: #{evt.offset_y},
13
- box x: #{b.x},
14
- box y: #{b.y},
15
- ")
16
- end
17
- dragger=box({width: 96, height: 96, x:333, y: 200})
18
- handle=dragger.box({width: 96, height: 16, color: :orange, atome_id: :the_handle})
19
- handle.text({content: "drag me from here", visual: 12, color: :black})
20
- dragger.drag({handle: :the_handle}) do |evt|
21
- t.content("I can only be dragged using the bar above")
22
- end
23
- c=circle({y:66,x: 333, drag:{lock: :y}, color: :purple})
24
- c.drag({lock: :y}) do
25
- t.content("I can only be dragged along the x axis")
26
- end
27
-
28
- container=box({width: 123, y:333,x: 333,color: :yellowgreen, smooth: 6, drag: true})
29
-
30
- circle1=container.circle({y:0,x: 0,width: 33,height: 33, color: :black})
31
- circle1.drag({containment: :true}) do
32
- t.content("I am restricted to the parent")
33
- end
34
-
35
- circle2=container.circle({y:0,x: 96,width: 33,height: 33, color: :red})
36
- circle2.drag({containment: :view, grid: {x:33, y:33}}) do
37
- t.content("I am restricted to the view and my movement is constraint by a grid")
38
- end
39
-
40
- img=image({content: :moto,x: 33, y: 33, size: 132})
41
- img.drag({containment:{x:33, y: 33, xx: 333, yy: 333}}) do |evt|
42
- if evt.start
43
- t.content("I am restricted to a confined area")
44
- t.color(:white)
45
- elsif evt.stop
46
- t.content("on stop x is : #{evt.page_x}, y is: #{evt.page_y}")
47
- t.color(:red)
48
- else
49
- c.width=evt.offset_x
50
- end
51
- end
52
-
53
- boat=image({ content: :boat, size: 132,y: 333 })
54
- boat.drag({ fixed: true }) do |evt|
55
- img.blur(evt.offset_x/66)
56
- img.size(evt.offset_x/6+132)
57
- t.content("drag the boat will change tha property of the moto")
58
- end
59
- t2.touch do
60
- img.drag(:destroy)
61
- end
@@ -1 +0,0 @@
1
- text("drop a png on the window to import the medias (not availlable on safari for now)")
@@ -1,23 +0,0 @@
1
- # drop example
2
-
3
- b = box()
4
- b.x(250)
5
- b.drag(true)
6
- c = circle
7
- c.x(390)
8
- c.drop(true) do |evt, ui,current_obj |
9
- dropped_element= `$(#{ui}.draggable).attr('id')`
10
- puts evt
11
- if grab(dropped_element).color==:red
12
- grab(dropped_element).color(:orange)
13
- else
14
- grab(dropped_element).color(:red)
15
- end
16
- current_obj.color(:black)
17
- current_obj.y=c.y+33
18
- end
19
-
20
- c.touch do
21
- c.drop(false)
22
- end
23
-
@@ -1,11 +0,0 @@
1
- # duplicate
2
-
3
- c = circle({ x: 69, y: 69, drag: true })
4
- c.text({ content: :ok, color: :yellow, size: 33, center: true })
5
- t = text({ content: 'touch me!' })
6
- t.touch do
7
- c.duplicate({ x: 7, y: 7 })
8
- end
9
- c.touch do
10
- c.duplicate({ x: 3, y: 3 })
11
- end
@@ -1,6 +0,0 @@
1
- # edit
2
-
3
- t=text(" you can type your text here")
4
- t.color(:lightgray)
5
- t.center(:true)
6
- t.edit(true)
@@ -1,9 +0,0 @@
1
- # eval example
2
-
3
- eval("box(x: 96,y: 96, smooth: 6, color: :orange)")
4
- begin
5
- eval 'x = {id: 1'
6
- rescue SyntaxError
7
- t=text("eval catch the error : 'x = {id: 1'")
8
- t.color(:red)
9
- end
@@ -1,23 +0,0 @@
1
- # extract example
2
-
3
- c = circle({ atome_id: :the_circle })
4
- c.text({ content: "children are restored too!!", visual: 22 })
5
-
6
- b = box({ x: 666, drag: true, atome_id: :the_box })
7
- t = b.text({ content: :ok, yy: 3, color: :black , atome_id: :the_text})
8
- i = image({ content: :atome, size: 33, x: 96 })
9
-
10
- i.transfer(b.atome_id)
11
- t.content("logo parent is #{i.parent}")
12
-
13
- c.touch do
14
- grab(:view).extract(c.atome_id)
15
- grab(:the_box).extract(i.atome_id)
16
- grab(:view).insert(i.atome_id)
17
- ATOME.wait 2 do
18
- grab(:intuition).insert(c.atome_id)
19
- end
20
- c.touch do
21
- c.delete(true)
22
- end
23
- end
@@ -1,10 +0,0 @@
1
- # fill example
2
-
3
- back_try = box()
4
- back_try.x(350)
5
- back_try.size(490)
6
- back_try.scale(true)
7
- moto_text = back_try.image(:moto)
8
- moto_text.visual(70)
9
- back_try.color(:transparent)
10
- moto_text.fill({target: back_try, number: 7})
@@ -1,37 +0,0 @@
1
- # find example
2
-
3
- t= text"touch me to blur all orange object"
4
- t2= text({content: "touch me to resize all object of the type shape ", x: 390})
5
-
6
- b = box({ size: 66 , y: 33, x: 333, color: :orange})
7
- b.tag("my_tag")
8
- circle({ x: 200, y: 33 , color: :orange})
9
- circle({x: 200, y: 96, color: :green, tag: :other_tag})
10
-
11
- b.add({ tag: :new_tag })
12
-
13
- t.touch do
14
- grab(:view).find({ color: :orange }).blur(3)
15
- end
16
-
17
- t2.touch do
18
- grab(:view).find({ type: :shape }).size(33)
19
- end
20
-
21
-
22
- # enhanced find demo
23
- b=box({color: :red, atome_id: :the_box, y: 44 })
24
- circle({y: 500, atome_id: :the_circle, color: :green, x: 99})
25
- t=b.text({content: "my super text!",y: 50, color: :green, atome_id: :text_1 })
26
- t.text({x: 222, content: :super, atome_id: :text_child, color: :orange})
27
- b.image({content: :boat, size: 33, atome_id: :the_image, y: 500})
28
- # grab(:view).find({ y: 500, condition: :or, recursive: true }).find({ color: :green}).blur(6)
29
- # find({ y: 500, color: :green, recursive: true, condition: :or }).blur(9)
30
- grab(:view).find({ y: 50, color: :green, condition: :and, recursive: 3 }).blur(3)
31
- # grab(:view).find({x: 222, recursive: 3 }).blur(7)
32
- # b.find({color: :green, recursive: true }).blur(7)
33
- # grab(:view).find({ color: :red, y: 32 }).find({y: 500}).blur(6)
34
-
35
- # condition: or(mean at least one condition must be respected), and(mean both condition must be respected)
36
- # recursive: true, 1, 2 (max depth of recursivity)
37
- # find can be chained
@@ -1,44 +0,0 @@
1
- # fit example
2
-
3
- b = box({ size: 96 })
4
- b.image({ content: :boat, size: :fit })
5
- b.touch do
6
- clear(:view)
7
- end
8
- b2 = box({ x: 333 })
9
- t = b2.text({ content: "hit the red or orange circle", visual: :Impact })
10
- # t.edit(true)
11
- t.width(96)
12
-
13
- c0 = circle({ size: 33, x: 96, color: :yellowgreen })
14
- c = circle({ size: 33, x: 120 })
15
- c2 = circle({ size: 33, x: 150, color: :orange })
16
-
17
- c0.touch do
18
- t.visual({ fit: :width })
19
- b2.size({ fit: t.atome_id })
20
- t.center(true)
21
- end
22
- c.touch do
23
- t.visual({ fit: :width })
24
- b2.size({ fit: t.atome_id, margin: { x: 33, y: 33 } })
25
- t.center(true)
26
- end
27
-
28
- c2.touch do
29
- t.visual({ fit: :width })
30
- b2.size({ fit: t.atome_id, margin: 66 })
31
- t.center(true)
32
- end
33
-
34
-
35
- # text fit box size
36
-
37
- tt=text ({ content: "Super", x: 333, y: 120 } )
38
- tt.border(({ color: :green, thickness: 3, pattern: :solid }))
39
- bb=box({x:333, y: 333, width: 333, height: 150})
40
- bb.text("touch me to make the upper text fit my size")
41
- bb.touch do
42
- tt.size({ fit: bb.atome_id})
43
- tt.visual({fit: :width})
44
- end
@@ -1,28 +0,0 @@
1
- # Fullscreen
2
-
3
- button3=box({height: 33, x: 9, width: 222, smooth: 33, y: 6})
4
- button3.text({content: "back to normal", x: 6 })
5
-
6
- button=box({height: 33, x: 9, width: 222, smooth: 33, y: 66})
7
- button.text({content: "image fullscreen", x: 6 })
8
-
9
- button2=box({height: 33, x: 9, width: 222, smooth: 33, y: 120})
10
- button2.text({content: "page fullscreen", x: 6 })
11
-
12
-
13
- img=image({ content: :moto, x: 222, y: 222 })
14
-
15
- button.touch do
16
- img.fullscreen(true)
17
- end
18
-
19
- button2.touch do
20
- grab(:view).fullscreen(:all)
21
- end
22
-
23
- circle({x:333})
24
- box({x:333, y: 99})
25
- text({content: :hello, visual: 99, x: 666, y: 66})
26
- batch([button3, img]).touch do
27
- grab(:view).fullscreen(false)
28
- end
@@ -1,7 +0,0 @@
1
- # generate new atome method example:
2
-
3
- generate(:my_meth ) do |val|
4
- self.text ({ content: val, x: 12, y: 12} )
5
- end
6
- b=circle({x:333,y:333})
7
- b.my_meth("I am created by a method created on the fly!!")
@@ -1,24 +0,0 @@
1
- # gradient
2
-
3
- c = circle({atome_id: :c, x: 300, id: :gradient_simple})
4
- c.color({green: 1})
5
- c.color ([:blue, :cyan])
6
- c.size = 223
7
- grad = text({content: :kool, atome_id: :gradient_test, visual: 333})
8
- grad.x(333)
9
- grad.y(99)
10
- grad.size = 666
11
- grad.color([:red, :yellow, {red: 0, green: 1, blue: 0}, {angle: 150}, {diffusion: :linear}])
12
- grad.shadow(true)
13
- ATOME.wait 1 do
14
- grad.color([:red, :yellow, {red: 0, green: 1, blue: 0}, {angle: 150}, {diffusion: :radial}])
15
- end
16
- ATOME.wait 2 do
17
- c.color([:cyan, :green, :orange, {diffusion: :conic}])
18
- end
19
- ATOME.wait 3 do
20
- grad.color([:orange, {red: 0, green: 1, blue: 0}, :blue, {angle: 150, diffusion: :linear}])
21
- end
22
- grad.touch do
23
- text(grad.inspect)
24
- end
@@ -1,21 +0,0 @@
1
- # group example
2
-
3
- t = text({ content: "Make the yellowgreen circle red , so it'll belong to the group so it'll be blurred and draggable", atome_id: :the_text })
4
- image({content: :boat, x:666,atome_id: :pix_1,})
5
- image({content: :moto, y:333, atome_id: :pix_2})
6
- b = box({ size: 66, y: 33, color: :red, atome_id: :tutu })
7
- b.tag({ content: "my_tag" })
8
- circle({ x: 96, y: 33, atome_id: :first_circle })
9
- c2=circle({ x: 333, y: 96, color: :green, tag: :other_tag,atome_id: :the_circle })
10
- b.add({ tag: :new_tag })
11
- circle({ atome_id: :the_second_circle , color: :yellowgreen, x: 96, y: 96})
12
- # b2=box({size: 66, x: 66, y: 66})
13
- # b2.text({content: "i am red!!", color: :red})
14
- # the group is both static ( content send) and based on a search (condition) and dynamic any atome matching will be tretaed!
15
- g=group({ content: [:pix_1, :pix_2], name: :my_group, treatment: {blur: 3, width: 33, drag: true}, dynamic: true, condition: { color: :red }, atome_id: :the_group })
16
-
17
- t.touch do
18
- c2.color(:red)
19
- end
20
-
21
- g.treatment(color: :orange)