atome 0.4.7.0 → 0.5.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
-