atome 0.4.7.0 → 0.5.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +7 -4
  4. data/Rakefile +22 -13
  5. data/app_builder_helpers/Rakefile +63 -21
  6. data/exe/atome +91 -45
  7. data/lib/atome/atome.rb +129 -0
  8. data/lib/atome/extensions/atome.rb +41 -0
  9. data/lib/atome/{kernel/helpers → extensions}/geolocation.rb +0 -0
  10. data/lib/atome/{kernel/helpers → extensions}/ping.rb +0 -0
  11. data/lib/atome/{kernel/helpers → extensions}/sha.rb +3 -1
  12. data/lib/atome/genesis/generators/atome.rb +38 -0
  13. data/lib/atome/{renderers/headless/properties/generator.rb → genesis/generators/communication.rb} +2 -0
  14. data/lib/atome/genesis/generators/effect.rb +6 -0
  15. data/lib/atome/genesis/generators/event.rb +10 -0
  16. data/lib/atome/genesis/generators/geometry.rb +6 -0
  17. data/lib/atome/genesis/generators/identity.rb +29 -0
  18. data/lib/atome/genesis/generators/material.rb +10 -0
  19. data/lib/atome/genesis/generators/spatial.rb +13 -0
  20. data/lib/atome/genesis/generators/utility.rb +31 -0
  21. data/lib/atome/genesis/genesis.rb +46 -0
  22. data/lib/atome/genesis/sparkle.rb +58 -0
  23. data/lib/atome/helpers/callbacks.rb +12 -0
  24. data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
  25. data/lib/atome/helpers/color_helper/color/css.rb +7 -0
  26. data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
  27. data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
  28. data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
  29. data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
  30. data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
  31. data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
  32. data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
  33. data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
  34. data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
  35. data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
  36. data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
  37. data/lib/atome/helpers/color_helper/color.rb +196 -0
  38. data/lib/atome/helpers/essentials.rb +42 -0
  39. data/lib/atome/helpers/sanitizer.rb +23 -0
  40. data/lib/atome/helpers/utilities.rb +54 -0
  41. data/lib/atome/kernel/essentials.rb +23 -0
  42. data/lib/atome/kernel/universe.rb +92 -26
  43. data/lib/atome/presets/atome.rb +88 -0
  44. data/lib/atome/processors/utilities.rb +10 -0
  45. data/lib/atome/renderers/browser/atome.rb +108 -0
  46. data/lib/atome/renderers/browser/browser.rb +225 -0
  47. data/lib/atome/renderers/browser/effect.rb +23 -0
  48. data/lib/atome/renderers/browser/event.rb +37 -0
  49. data/lib/atome/renderers/browser/geometry.rb +11 -0
  50. data/lib/atome/renderers/browser/identity.rb +24 -0
  51. data/lib/atome/renderers/browser/material.rb +43 -0
  52. data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
  53. data/lib/atome/renderers/browser/spatial.rb +23 -0
  54. data/lib/atome/renderers/browser/utility.rb +39 -0
  55. data/lib/atome/renderers/headless/headless.rb +10 -0
  56. data/lib/atome/renderers/headless/utility.rb +6 -0
  57. data/lib/atome/renderers/html/atome.rb +47 -0
  58. data/lib/atome/renderers/html/effect.rb +19 -0
  59. data/lib/atome/renderers/html/event.rb +9 -0
  60. data/lib/atome/renderers/html/geometry.rb +11 -0
  61. data/lib/atome/renderers/html/html.rb +42 -0
  62. data/lib/atome/renderers/html/identity.rb +14 -0
  63. data/lib/atome/renderers/html/opal_browser.rb +6 -0
  64. data/lib/atome/renderers/html/spatial.rb +28 -0
  65. data/lib/atome/renderers/html/utility.rb +17 -0
  66. data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
  67. data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
  68. data/lib/atome/renderers/opal/opal.rb +4 -0
  69. data/lib/atome/renderers/renderer.rb +7 -7
  70. data/lib/atome/renderers/server/server.rb +10 -0
  71. data/lib/atome/renderers/server/utility.rb +6 -0
  72. data/lib/atome/version.rb +1 -2
  73. data/lib/atome.rb +25 -44
  74. data/vendor/assets/application/index.rb +3 -1
  75. data/vendor/assets/application/required_example.rb +1 -0
  76. data/vendor/assets/{build/js/application.js → aui.rb} +0 -0
  77. data/vendor/assets/build/css/style.css +51 -0
  78. data/vendor/assets/build/index.html +7 -8
  79. data/vendor/assets/build/js/atome/atome.js +141 -68
  80. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
  81. data/vendor/assets/build/medias/rubies/examples/{animation.rb → _animation.rb} +0 -0
  82. data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +1 -0
  83. data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
  84. data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
  85. data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
  86. data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
  87. data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
  88. data/vendor/assets/build/medias/rubies/examples/box.rb +12 -8
  89. data/vendor/assets/build/medias/rubies/examples/circle.rb +2 -0
  90. data/vendor/assets/build/medias/rubies/examples/clear.rb +2 -1
  91. data/vendor/assets/build/medias/rubies/examples/code.rb +10 -4
  92. data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
  93. data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
  94. data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
  95. data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
  96. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  97. data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
  98. data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
  99. data/vendor/assets/build/medias/rubies/examples/height.rb +7 -2
  100. data/vendor/assets/build/medias/rubies/examples/id.rb +14 -0
  101. data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
  102. data/vendor/assets/build/medias/rubies/examples/left.rb +7 -2
  103. data/vendor/assets/build/medias/rubies/examples/link.rb +12 -3
  104. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +33 -0
  105. data/vendor/assets/build/medias/rubies/examples/on.rb +11 -7
  106. data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
  107. data/vendor/assets/build/medias/rubies/examples/read.rb +6 -2
  108. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  109. data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
  110. data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
  111. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  112. data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -11
  113. data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
  114. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  115. data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
  116. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  117. data/vendor/assets/build/medias/rubies/examples/touch.rb +7 -0
  118. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  119. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  120. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  121. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  122. data/vendor/assets/server/atome_server.rb +3 -5
  123. metadata +76 -164
  124. data/lib/atome/atome_native_extensions.rb +0 -5
  125. data/lib/atome/extensions/helper.rb +0 -112
  126. data/lib/atome/kernel/atome.rb +0 -99
  127. data/lib/atome/kernel/generators/generator.rb +0 -517
  128. data/lib/atome/kernel/generators/genesis.rb +0 -277
  129. data/lib/atome/kernel/generators/sanitizer.rb +0 -73
  130. data/lib/atome/kernel/generators/shapes.rb +0 -55
  131. data/lib/atome/kernel/helpers/internal_methods.rb +0 -173
  132. data/lib/atome/kernel/helpers/utilities.rb +0 -39
  133. data/lib/atome/kernel/properties/essential.rb +0 -77
  134. data/lib/atome/kernel/sparkle.rb +0 -38
  135. data/lib/atome/renderers/opal/properties/generator.rb +0 -1
  136. data/lib/atome/renderers/server/properties/generator.rb +0 -9
  137. data/vendor/assets/build/medias/audios/guitar.wav +0 -0
  138. data/vendor/assets/build/medias/images/beach.jpg +0 -0
  139. data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
  140. data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
  141. data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
  142. data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
  143. data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
  144. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
  145. data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
  146. data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
  147. data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
  148. data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
  149. data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
  150. data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
  151. data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
  152. data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
  153. data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
  154. data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
  155. data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
  156. data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
  157. data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
  158. data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
  159. data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
  160. data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
  161. data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
  162. data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
  163. data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
  164. data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
  165. data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
  166. data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
  167. data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
  168. data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
  169. data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
  170. data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
  171. data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
  172. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
  173. data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
  174. data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
  175. data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
  176. data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
  177. data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
  178. data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
  179. data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
  180. data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
  181. data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
  182. data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
  183. data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
  184. data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
  185. data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
  186. data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
  187. data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
  188. data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
  189. data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
  190. data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
  191. data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
  192. data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
  193. data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
  194. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
  195. data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
  196. data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
  197. data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
  198. data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
  199. data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
  200. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
  201. data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
  202. data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
  203. data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
  204. data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
  205. data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
  206. data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
  207. data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
  208. data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
  209. data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
  210. data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
  211. data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
  212. data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
  213. data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
  214. data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
  215. data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
  216. data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
  217. data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
  218. data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
  219. data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
  220. data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
  221. data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
  222. data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
  223. data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
  224. data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
  225. data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
  226. data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
  227. data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
  228. data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
  229. data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
  230. data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
  231. data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
  232. data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
  233. data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
  234. data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
  235. data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
  236. data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
  237. data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
  238. data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
  239. data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
  240. data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
  241. data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
  242. data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
  243. data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
  244. data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
  245. data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
  246. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
  247. data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
  248. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
  249. data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
  250. data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
  251. data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
  252. data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
  253. data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
  254. data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
  255. data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
  256. data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
  257. data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
  258. data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
  259. data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
  260. data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
  261. data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
  262. data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c05926a443ccc93706250a217fe46a42d571f0c97cb9549fd445036b8cb0ff93
4
- data.tar.gz: f9c922aaab0da02ff843af4f721f7370b538d39a4afd238338e9a6ad7071c34d
3
+ metadata.gz: 64c8921a4ed715c0ed422e430ca3e9b6ead122f06e81032d0e8843b9fa2e0e4c
4
+ data.tar.gz: 7920b914b719630b1a930d1f27616d31161e8befe33fd409098a55a90cf30ced
5
5
  SHA512:
6
- metadata.gz: 6067a7cc1206d75a5245c3098976993745d17bf296ae6931ed3a3eda13d885389c89e7f47af061a506092866ec7a637e4e848089caefc74595693f90b18dd46d
7
- data.tar.gz: 02a14025506b36a050d885fb5b09be305f011a3f2a067561994608a7e77fa236d18a62f3d92293b311459418fd384645b9f3447fc462881da2c77e3db3e27c09
6
+ metadata.gz: 2d1fe5f8e8967e1869da808953904dbcd41327676bf644cf19b260cc56f0febdf38a3d3673056ab51406ca0b6743708dcf2c5b1d8fb6e20cd7f8f8b94d425ebd
7
+ data.tar.gz: 314bec01e683e3bcf0e57abfe1bc273bf38a91650da89f277449226b8f23dc7626c1d3d76e0d8408bdc7e82f5c337e8beb2fae3e73b23cd827102374d8b62c24
data/Gemfile CHANGED
@@ -8,5 +8,5 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "minitest", "~> 5.0"
11
- gem 'rubocop', group: 'development'
12
11
 
12
+ gem 'rubocop', group: 'development'
data/README.md CHANGED
@@ -2,9 +2,10 @@ Atome
2
2
  -
3
3
 
4
4
  <img src="./documentation/images/3.png" width="666" />
5
- -
6
5
 
7
6
 
7
+ Atome is powerful engine dedicated to the creation of cross-platform applications, web application and digital medias.
8
+
8
9
  Cross platform ecosystem
9
10
  -
10
11
 
@@ -47,7 +48,7 @@ Open source technology included
47
48
 
48
49
  [comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/freebsd.png" width="100" />)
49
50
 
50
- - Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.(https://github.com/tauri-apps/tauri)
51
+ [//]: # (- Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.&#40;https://github.com/tauri-apps/tauri&#41;)
51
52
 
52
53
  [comment]: <> (<img src="https://avatars.githubusercontent.com/u/54536011?s=200&v=4" width="100" />)
53
54
 
@@ -58,7 +59,8 @@ Open source technology included
58
59
  <img src="./documentation/images/logos/roda.svg" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
59
60
  <img src="./documentation/images/logos/freebsd.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
60
61
  <img src="./documentation/images/logos/puma.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
61
- <img src="./documentation/images/logos/tauri.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
62
+
63
+ [//]: # (<img src="./documentation/images/logos/tauri.png" width="100" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
62
64
 
63
65
  ## Installation
64
66
 
@@ -78,7 +80,8 @@ If bundler is not being used to manage dependencies, install the gem by executin
78
80
 
79
81
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
80
82
 
81
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
83
+ To install this gem onto your local machine, run `bundle exec rake install`.
84
+ To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
82
85
 
83
86
  ## Contributing
84
87
 
data/Rakefile CHANGED
@@ -1,21 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #old code below
4
- # require "bundler/gem_tasks"
5
- # require "rake/testtask"
6
- #
7
- # Rake::TestTask.new(:test) do |t|
8
- # t.libs << "test"
9
- # t.libs << "lib"
10
- # t.test_files = FileList["test/**/test_*.rb"]
11
- # end
12
- #
13
- # task default: :test
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
14
5
 
15
- task :test do
16
- FileUtils.copy_entry('vendor/assets/build/js/atome/', 'test/test_app/build/js/atome/')
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/test_*.rb']
10
+ end
11
+
12
+ task default: :test
13
+
14
+ task :test_browser do
15
+ FileUtils.copy_entry('vendor/assets/build/js/', 'test/test_app/build/js/')
16
+ FileUtils.copy_entry('vendor/assets/build/css/', 'test/test_app/build/css/')
17
+ FileUtils.copy_entry('vendor/assets/build/css/', 'test/test_app/build/medias/')
17
18
  `gem cleanup atome;yes | gem uninstall atome ;gem build atome.gemspec;gem install atome`
18
19
  `cd test/test_app;atome update;atome run guard`
19
20
  end
20
21
 
22
+ task :test_server do
23
+ FileUtils.copy_entry('vendor/assets/build/js/', 'test/test_app/build/js/')
24
+ FileUtils.copy_entry('vendor/assets/build/css/', 'test/test_app/build/css/')
25
+ FileUtils.copy_entry('vendor/assets/build/css/', 'test/test_app/build/medias/')
26
+ `gem cleanup atome;yes | gem uninstall atome ;gem build atome.gemspec;gem install atome`
27
+ `cd test/test_app;atome update;atome run server`
28
+ end
29
+
21
30
  task default: :test
@@ -12,7 +12,11 @@ require 'uglifier'
12
12
  Opal.append_path 'app'
13
13
 
14
14
  def build_browser_content
15
- Opal::Builder.build('../lib/atome/renderers/opal/opal_browser.rb').to_s
15
+ Opal::Builder.build('../lib/atome/renderers/browser/opal_browser.rb').to_s
16
+ end
17
+
18
+ def build_opal_content
19
+ Opal::Builder.build('../lib/atome/renderers/opal/opal.rb').to_s
16
20
  end
17
21
 
18
22
  def build_opal_browser(user_project_path)
@@ -28,10 +32,20 @@ def build_opal_browser(user_project_path)
28
32
  end
29
33
  end
30
34
 
31
- def build_aui(user_project_path)
32
- # FIXME: for now production can't be change when updating or force create, we should add a production method that
33
- # uglified all libs on demand
35
+ def build_opal(user_project_path)
36
+ opal_directory = "#{user_project_path}/build/js/opal"
37
+ opal_js = "#{opal_directory}/opal.js"
38
+ Dir.mkdir(opal_directory) unless File.directory?(opal_directory)
39
+
40
+ File.new opal_js, 'w'
41
+ browser_content = build_opal_content
34
42
 
43
+ File.open(opal_js, 'w') do |f|
44
+ f.puts browser_content
45
+ end
46
+ end
47
+
48
+ def build_aui(user_project_path)
35
49
  # now we add an uniq aui to the app
36
50
  aui_js = "#{user_project_path}/build/js/aui.js"
37
51
  File.new aui_js, 'w'
@@ -93,6 +107,7 @@ def build_user_code(user_project_path, source_code)
93
107
  File.open(application_js, 'w') do |f|
94
108
  f.puts application_content
95
109
  end
110
+ # minimize_application(user_project_path)
96
111
  end
97
112
 
98
113
  def minimize_aui(user_project_path)
@@ -113,6 +128,15 @@ def minimize_browser(user_project_path)
113
128
  end
114
129
  end
115
130
 
131
+ def minimize_opal(user_project_path)
132
+ opal_js = "#{user_project_path}/build/js/opal/opal.js"
133
+ opal_content = File.open(opal_js).read
134
+ opal_content = Uglifier.new.compile(opal_content)
135
+ File.open(opal_js, 'w') do |f|
136
+ f.puts opal_content
137
+ end
138
+ end
139
+
116
140
  def minimize_parser(user_project_path)
117
141
  parser_js = "#{user_project_path}/build/js/opal/opal_parser.js"
118
142
  parser_content = File.open(parser_js).read
@@ -122,8 +146,17 @@ def minimize_parser(user_project_path)
122
146
  end
123
147
  end
124
148
 
125
- def minimize_atome_lib(user_project_path)
126
- atome_js = "#{user_project_path}/build/js/atome/kernel.js"
149
+ def minimize_kernel(user_project_path)
150
+ kernel_js = "#{user_project_path}/build/js/atome/kernel.js"
151
+ kernel_content = File.open(kernel_js).read
152
+ kernel_content = Uglifier.new.compile(kernel_content)
153
+ File.open(kernel_js, 'w') do |f|
154
+ f.puts kernel_content
155
+ end
156
+ end
157
+
158
+ def minimize_atome(user_project_path)
159
+ atome_js = "#{user_project_path}/build/js/atome/atome.js"
127
160
  atome_content = File.open(atome_js).read
128
161
  atome_content = Uglifier.new.compile(atome_content)
129
162
  File.open(atome_js, 'w') do |f|
@@ -131,14 +164,14 @@ def minimize_atome_lib(user_project_path)
131
164
  end
132
165
  end
133
166
 
134
- def minimize_sparkle(user_project_path)
135
- opal_sparkle_js = "#{user_project_path}/build/js/opal/opal_sparkle.js"
136
- opal_sparkle_content = File.open(opal_sparkle_js).read
137
- opal_sparkle_content = Uglifier.new.compile(opal_sparkle_content)
138
- File.open(opal_sparkle_js, 'w') do |f|
139
- f.puts opal_sparkle_content
140
- end
141
- end
167
+ # def minimize_sparkle(user_project_path)
168
+ # opal_sparkle_js = "#{user_project_path}/build/js/opal/opal_sparkle.js"
169
+ # opal_sparkle_content = File.open(opal_sparkle_js).read
170
+ # opal_sparkle_content = Uglifier.new.compile(opal_sparkle_content)
171
+ # File.open(opal_sparkle_js, 'w') do |f|
172
+ # f.puts opal_sparkle_content
173
+ # end
174
+ # end
142
175
 
143
176
  def minimize_opal_extensions(user_project_path)
144
177
  atome_opal_extensions_js = "#{user_project_path}/build/js/opal/atome_opal_extensions.js"
@@ -152,19 +185,24 @@ end
152
185
  def minimize_libraries(user_project_path)
153
186
  # minimizing aui
154
187
  minimize_aui(user_project_path)
188
+ # minimizing opal
189
+ minimize_opal(user_project_path)
155
190
  # minimizing opal_browser
156
191
  minimize_browser(user_project_path)
157
192
  # minimizing opal_parser
158
193
  minimize_parser(user_project_path)
159
194
  # minimizing atome_lib
160
- minimize_atome_lib(user_project_path)
161
- # minimizing atome_lib
162
- minimize_sparkle(user_project_path)
195
+ minimize_kernel(user_project_path)
196
+ # minimizing atome
197
+ minimize_atome(user_project_path)
163
198
  # minimizing atome_lib
164
199
  minimize_opal_extensions(user_project_path)
200
+ # minimizing application
201
+ minimize_application(user_project_path)
202
+ # minimize(user_project_path) if production == 'production'
165
203
  end
166
204
 
167
- def minimize_user_code(user_project_path)
205
+ def minimize_application(user_project_path)
168
206
  # minimizing user codes
169
207
  application_js = "#{user_project_path}/build/js/application.js"
170
208
  application_content = File.open(application_js).read
@@ -176,10 +214,8 @@ end
176
214
 
177
215
  task :build_user_code, :user_project_path, :production do |_t, args|
178
216
  user_project_path = args[:user_project_path]
179
- production = args[:production]
180
217
  source_code = "#{user_project_path}/application/index.rb"
181
218
  build_user_code(user_project_path, source_code)
182
- minimize_user_code(user_project_path) if production == 'production'
183
219
  end
184
220
 
185
221
  task :system_builder, :user_project_path, :production do |_t, args|
@@ -200,11 +236,17 @@ task :system_updater, :user_project_path, :production do |_t, args|
200
236
  build_common_libraries(user_project_path, production)
201
237
  end
202
238
 
239
+ task :minimizer, :user_project_path do |_t, args|
240
+ user_project_path = args[:user_project_path]
241
+ minimize(user_project_path)
242
+ end
243
+
203
244
  task default: :run
204
245
 
205
246
  def build_libraries(user_project_path, gem_location)
206
247
  build_aui(user_project_path)
207
248
  build_atome_kernel(user_project_path, gem_location)
249
+ build_opal(user_project_path)
208
250
  build_opal_browser(user_project_path)
209
251
  build_opal_parser(user_project_path)
210
252
  build_opal_extensions(user_project_path, gem_location)
@@ -212,7 +254,7 @@ end
212
254
 
213
255
  def minimize(user_project_path)
214
256
  minimize_libraries(user_project_path)
215
- minimize_user_code(user_project_path)
257
+ # minimize_user_code(user_project_path)
216
258
  end
217
259
 
218
260
  def build_common_libraries(user_project_path, production)
data/exe/atome CHANGED
@@ -5,18 +5,28 @@ require 'fileutils'
5
5
  require 'securerandom'
6
6
  require 'digest/sha2'
7
7
  # below are the methods needed for atome creation and run
8
+ def test_path(project_name, arg_name, path)
9
+ if project_name != 'run' && project_name != 'guard' && !project_name.nil? &&
10
+ project_name != 'port:' && project_name != 'server' && project_name != 'build'
11
+ # the line below remove the optional parameters from the project name
12
+ project_name = project_name.sub(ARGV[ARGV.find_index(arg_name) + 1], '')
13
+ "#{path}/#{project_name}"
14
+ end
15
+ path
16
+ end
8
17
 
9
18
  def found_path(arg_name)
10
19
  project_name = ARGV[ARGV.find_index(arg_name) + 1]
11
20
  path = `pwd`.chomp
12
- if project_name != 'run' && project_name != 'guard' && !project_name.nil? &&
13
- project_name != 'port:' && project_name != 'server' && project_name != 'build'
14
- path = "#{path}/#{project_name}"
21
+ if ARGV[ARGV.find_index(arg_name) + 1] == 'production'
22
+ app_builder_helpers = File.join(File.dirname(__FILE__), '../app_builder_helpers')
23
+ `cd #{app_builder_helpers};rake minimizer[#{path}]`
15
24
  end
16
- path
25
+ path = `pwd`.chomp
26
+ test_path(project_name, arg_name, path)
17
27
  end
18
28
 
19
- def delete_all(dir, user_application = false)
29
+ def delete_all(dir, user_application = nil)
20
30
  Dir.foreach(dir) do |e|
21
31
  next if %w[. ..].include? e
22
32
 
@@ -37,10 +47,27 @@ def build_app(path, production)
37
47
  `cd #{app_builder_helpers};rake build_user_code[#{path},#{production}]`
38
48
  end
39
49
 
40
- def create_application(project_name, force, production)
41
- # print "directory already exist, use force to overwrite"
50
+ def content_to_add(coded_id)
51
+ <<~STR
52
+ class Atome
53
+ def self.aui
54
+ "#{coded_id}"
55
+ end
56
+ end
57
+ STR
58
+ end
59
+
60
+ def app_creation(content_to_add, current_path, project_name)
61
+ added_content = content_to_add
62
+ file_location = "#{current_path}/#{project_name}/aui.rb"
63
+ File.new file_location, 'w'
64
+ File.open(file_location, 'w') do |f|
65
+ f.puts added_content
66
+ end
67
+ end
68
+
69
+ def test_app_creation(project_name, current_path, force)
42
70
  new_app_creation = false
43
- current_path = `pwd`.chomp
44
71
  unless force && File.directory?(project_name)
45
72
  new_app_creation = true
46
73
  Dir.mkdir project_name
@@ -48,20 +75,12 @@ def create_application(project_name, force, production)
48
75
  uuid = SecureRandom.uuid
49
76
  sha = Digest::SHA256.hexdigest(uuid)
50
77
  coded_id = sha.gsub('-', '_')
51
- added_content = <<~STR
52
- class Atome
53
- def self.aui
54
- "#{coded_id}"
55
- end
56
- end
57
- STR
58
- file_location = "#{current_path}/#{project_name}/aui.rb"
59
- File.new file_location, 'w'
60
- File.open(file_location, 'w') do |f|
61
- f.puts added_content
62
- end
78
+ app_creation(content_to_add(coded_id), current_path, project_name)
63
79
  end
80
+ new_app_creation
81
+ end
64
82
 
83
+ def build_atome_resources(current_path, project_name, production)
65
84
  gem_assets_location = File.join(File.dirname(__FILE__), '../vendor/assets/')
66
85
  app_builder_helpers = File.join(File.dirname(__FILE__), '../app_builder_helpers')
67
86
  target_template_location = "#{current_path}/#{project_name}"
@@ -73,14 +92,21 @@ def create_application(project_name, force, production)
73
92
  end
74
93
  # now run the rake task to build the needed libraries (atome, renderers, etc...)
75
94
  `cd #{app_builder_helpers};rake system_builder[#{current_path}/#{project_name},#{production}]`
76
- if new_app_creation
77
- # now adding name to the app
78
- index_html = "#{current_path}/#{project_name}/build/index.html"
79
- index_html_content = File.open(index_html).read
80
- index_html_content = index_html_content.gsub('<title>atome</title>', "<title>#{project_name}</title>")
81
- File.open(index_html, 'w') do |f|
82
- f.puts index_html_content
83
- end
95
+ end
96
+
97
+ def create_application(project_name, force, production)
98
+ # print "directory already exist, use force to overwrite"
99
+ current_path = `pwd`.chomp
100
+ new_app_creation = test_app_creation(project_name, current_path, force)
101
+ build_atome_resources(current_path, project_name, production)
102
+ return unless new_app_creation
103
+
104
+ # now adding name to the app
105
+ index_html = "#{current_path}/#{project_name}/build/index.html"
106
+ index_html_content = File.open(index_html).read
107
+ index_html_content = index_html_content.gsub('<title>atome</title>', "<title>#{project_name}</title>")
108
+ File.open(index_html, 'w') do |f|
109
+ f.puts index_html_content
84
110
  end
85
111
  end
86
112
 
@@ -91,37 +117,57 @@ end
91
117
 
92
118
  def guard_check
93
119
  loop do
94
- sleep 9
120
+ sleep 3
95
121
  end
96
122
  nil unless ARGV.include?('guard')
97
123
  end
98
124
 
99
- def run_application(build_target, location, port = 9292)
125
+ def browser_case(location)
126
+ `cd #{location}/build;open index.html`
127
+ guard_check
128
+ end
129
+
130
+ def server_case(port, location)
131
+ threads = []
132
+ threads << Thread.new do
133
+ sleep 1.5
134
+ `open http://localhost:9292/index`
135
+ end
136
+ `cd #{location}/server;rackup --server puma --port #{port} --env production`
137
+ end
138
+
139
+ def test_native(build_target)
100
140
  case build_target
101
- when :server
102
- threads = []
103
- threads << Thread.new do
104
- sleep 1.5
105
- `open http://localhost:9292/index`
106
- end
107
- `cd #{location}/server;rackup --server puma --port #{port} --env production`
108
- when :browser
109
- `cd #{location}/build;open index.html`
110
- guard_check
111
- when :native
112
- # freebsd
113
- when :linux
141
+ when :freebsd
114
142
  # freebsd
115
143
  when :osx
116
144
  # osx
117
145
  when :windows
118
146
  # windows
119
147
  else
120
- `cd #{location}/build;open index.html`
121
- guard_check
148
+ # freebsd
122
149
  end
123
150
  end
124
151
 
152
+ def run_case(build_target, location, port)
153
+ case build_target
154
+ when :server
155
+ server_case(port, location)
156
+ when :browser
157
+ browser_case(location)
158
+ when :native
159
+ test_native(build_target)
160
+ # freebsd
161
+ else
162
+ browser_case(location)
163
+ end
164
+ end
165
+
166
+ def run_application(build_target, location, port = 9292)
167
+ build_app(location, nil)
168
+ run_case(build_target, location, port)
169
+ end
170
+
125
171
  # below we analyse the ARGV
126
172
  location = '/'
127
173
  force = nil
@@ -0,0 +1,129 @@
1
+ # frozen_string_literal: true
2
+
3
+ # TODO : remove monitoring
4
+ # TODO : remove child
5
+ # TODO : remove parents
6
+
7
+ # main entry here
8
+ class Atome
9
+ # TODO : clean or delete @private_atome
10
+ include Essentials
11
+
12
+ private
13
+
14
+ def initialize(atomes = {}, &atomes_proc)
15
+ atomes.each_value do |elements|
16
+ # the instance variable below contain the id all any atomes that need to be informed when changes occurs
17
+ @broadcast = {}
18
+ # now we store the proc in a an atome's property called :bloc
19
+ elements[:code] = atomes_proc if atomes_proc
20
+ @atome = elements
21
+ # we initiate the rendering, eg for for browser we will call :browser_type generate method in identity.rb file
22
+ create_particle(:type, @atome[:type])
23
+ collapse
24
+ end
25
+ end
26
+
27
+ def new_particle(element, &method_proc)
28
+ Atome.define_method element do |params = nil, &user_proc|
29
+ if params
30
+ # the line below execute the proc created when using the build_particle method
31
+ instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
32
+ params = sanitize(element, params)
33
+ create_particle(element, params, &user_proc)
34
+ else
35
+ get_particle(element, &user_proc)
36
+ end
37
+ end
38
+ end
39
+
40
+ def additional_particle_methods(element, &method_proc)
41
+ Atome.define_method "#{element}=" do |params = nil, &user_proc|
42
+ instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
43
+ params = sanitize(element, params)
44
+ create_particle(element, params, &user_proc)
45
+ end
46
+ end
47
+
48
+ def new_atome(element, &method_proc)
49
+ Atome.define_method element do |params = nil, &user_proc|
50
+ if params
51
+ instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
52
+ params = sanitize(element, params)
53
+ Atome.new({ element => params })
54
+ else
55
+ get_atome(element, &user_proc)
56
+ end
57
+ end
58
+ end
59
+
60
+ def new_render_engine(renderer_name, &method_proc)
61
+ Atome.define_method renderer_name do |params = nil, &user_proc|
62
+ instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
63
+ end
64
+ end
65
+
66
+ def run_optional_proc(proc_name, atome = self, value = '')
67
+ option_found = Universe.get_optional_method(proc_name)
68
+ atome.instance_exec(value, &option_found) if option_found.is_a?(Proc)
69
+ end
70
+
71
+ def inject_value(element, value)
72
+ @atome[element] = value
73
+ end
74
+
75
+ def store_value(element, value)
76
+ # this method save the value of the particle and broadcast to the atomes listed in broadcast
77
+ broadcasting(element, value)
78
+ inject_value(element, value)
79
+ end
80
+
81
+ public
82
+
83
+ # the line below is used for ephemera atomes
84
+ attr_accessor :property, :value, :real_atome, :user_proc
85
+ attr_reader :atome, :structure
86
+
87
+ def set(value)
88
+ @real_atome[@property] = value
89
+ end
90
+
91
+ def create_particle(element, value, &user_proc)
92
+ return false unless security_pass(element, value)
93
+
94
+ run_optional_proc("pre_render_#{element}".to_sym, self, value)
95
+ rendering(element, value, &user_proc)
96
+ run_optional_proc("post_render_#{element}".to_sym, self, value)
97
+ store_value(element, value)
98
+ self
99
+ end
100
+
101
+ def get(element)
102
+ @atome[element]
103
+ end
104
+
105
+ def get_particle(element, &user_proc)
106
+ virtual_atome = Atome.new({})
107
+ virtual_atome.value = (@atome[element])
108
+ virtual_atome.real_atome = @atome
109
+ virtual_atome.property = element
110
+ virtual_atome.user_proc = user_proc
111
+ run_optional_proc("pre_get_#{element}".to_sym, virtual_atome)
112
+ virtual_atome
113
+ end
114
+
115
+ def get_atome(element, &user_proc)
116
+ virtual_atome = Atome.new({})
117
+ virtual_atome.real_atome = @atome
118
+ virtual_atome.property = element
119
+ virtual_atome.user_proc = user_proc
120
+ virtual_atome.value = @atome[element]
121
+ virtual_atome
122
+ end
123
+
124
+ def create_atome(new_atome)
125
+ Atome.new(new_atome)
126
+ end
127
+
128
+ Universe.connected
129
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ def grab(atome_to_get)
4
+ Universe.atomes[atome_to_get]
5
+ end
6
+
7
+ def box(params = {}, &proc)
8
+ grab(:view).box(params, &proc)
9
+ end
10
+
11
+ def circle(params = {}, &proc)
12
+ grab(:view).circle(params, &proc)
13
+ end
14
+
15
+ def text(params = {}, &bloc)
16
+ grab(:view).text(params, &bloc)
17
+ end
18
+
19
+ def image(params = {}, &bloc)
20
+ grab(:view).image(params, &bloc)
21
+ end
22
+
23
+ def video(params = {}, &bloc)
24
+ grab(:view).video(params, &bloc)
25
+ end
26
+
27
+ def color(params = {}, &bloc)
28
+ grab(:view).color(params, &bloc)
29
+ end
30
+
31
+ def element(params = {}, &bloc)
32
+ grab(:view).element(params, &bloc)
33
+ end
34
+
35
+ def shadow(params = {}, &bloc)
36
+ grab(:view).shadow(params, &bloc)
37
+ end
38
+
39
+ def web(params = {}, &bloc)
40
+ grab(:view).web(params, bloc)
41
+ end
File without changes
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ # to create a hash
1
4
  class Atome
2
5
  def calculate_sha(string)
3
6
  Digest::SHA256.hexdigest(string)
4
7
  end
5
8
  end
6
-