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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +7 -4
- data/Rakefile +22 -13
- data/app_builder_helpers/Rakefile +63 -21
- data/exe/atome +91 -45
- data/lib/atome/atome.rb +129 -0
- data/lib/atome/extensions/atome.rb +41 -0
- data/lib/atome/{kernel/helpers → extensions}/geolocation.rb +0 -0
- data/lib/atome/{kernel/helpers → extensions}/ping.rb +0 -0
- data/lib/atome/{kernel/helpers → extensions}/sha.rb +3 -1
- data/lib/atome/genesis/generators/atome.rb +38 -0
- data/lib/atome/{renderers/headless/properties/generator.rb → genesis/generators/communication.rb} +2 -0
- data/lib/atome/genesis/generators/effect.rb +6 -0
- data/lib/atome/genesis/generators/event.rb +10 -0
- data/lib/atome/genesis/generators/geometry.rb +6 -0
- data/lib/atome/genesis/generators/identity.rb +29 -0
- data/lib/atome/genesis/generators/material.rb +10 -0
- data/lib/atome/genesis/generators/spatial.rb +13 -0
- data/lib/atome/genesis/generators/utility.rb +31 -0
- data/lib/atome/genesis/genesis.rb +46 -0
- data/lib/atome/genesis/sparkle.rb +58 -0
- data/lib/atome/helpers/callbacks.rb +12 -0
- data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
- data/lib/atome/helpers/color_helper/color/css.rb +7 -0
- data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
- data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
- data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
- data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
- data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
- data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
- data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
- data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
- data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
- data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
- data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
- data/lib/atome/helpers/color_helper/color.rb +196 -0
- data/lib/atome/helpers/essentials.rb +42 -0
- data/lib/atome/helpers/sanitizer.rb +23 -0
- data/lib/atome/helpers/utilities.rb +54 -0
- data/lib/atome/kernel/essentials.rb +23 -0
- data/lib/atome/kernel/universe.rb +92 -26
- data/lib/atome/presets/atome.rb +88 -0
- data/lib/atome/processors/utilities.rb +10 -0
- data/lib/atome/renderers/browser/atome.rb +108 -0
- data/lib/atome/renderers/browser/browser.rb +225 -0
- data/lib/atome/renderers/browser/effect.rb +23 -0
- data/lib/atome/renderers/browser/event.rb +37 -0
- data/lib/atome/renderers/browser/geometry.rb +11 -0
- data/lib/atome/renderers/browser/identity.rb +24 -0
- data/lib/atome/renderers/browser/material.rb +43 -0
- data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
- data/lib/atome/renderers/browser/spatial.rb +23 -0
- data/lib/atome/renderers/browser/utility.rb +39 -0
- data/lib/atome/renderers/headless/headless.rb +10 -0
- data/lib/atome/renderers/headless/utility.rb +6 -0
- data/lib/atome/renderers/html/atome.rb +47 -0
- data/lib/atome/renderers/html/effect.rb +19 -0
- data/lib/atome/renderers/html/event.rb +9 -0
- data/lib/atome/renderers/html/geometry.rb +11 -0
- data/lib/atome/renderers/html/html.rb +42 -0
- data/lib/atome/renderers/html/identity.rb +14 -0
- data/lib/atome/renderers/html/opal_browser.rb +6 -0
- data/lib/atome/renderers/html/spatial.rb +28 -0
- data/lib/atome/renderers/html/utility.rb +17 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
- data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
- data/lib/atome/renderers/opal/opal.rb +4 -0
- data/lib/atome/renderers/renderer.rb +7 -7
- data/lib/atome/renderers/server/server.rb +10 -0
- data/lib/atome/renderers/server/utility.rb +6 -0
- data/lib/atome/version.rb +1 -2
- data/lib/atome.rb +25 -44
- data/vendor/assets/application/index.rb +3 -1
- data/vendor/assets/application/required_example.rb +1 -0
- data/vendor/assets/{build/js/application.js → aui.rb} +0 -0
- data/vendor/assets/build/css/style.css +51 -0
- data/vendor/assets/build/index.html +7 -8
- data/vendor/assets/build/js/atome/atome.js +141 -68
- data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/{animation.rb → _animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +1 -0
- data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
- data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/box.rb +12 -8
- data/vendor/assets/build/medias/rubies/examples/circle.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/clear.rb +2 -1
- data/vendor/assets/build/medias/rubies/examples/code.rb +10 -4
- data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
- data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +7 -2
- data/vendor/assets/build/medias/rubies/examples/id.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
- data/vendor/assets/build/medias/rubies/examples/left.rb +7 -2
- data/vendor/assets/build/medias/rubies/examples/link.rb +12 -3
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/on.rb +11 -7
- data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
- data/vendor/assets/build/medias/rubies/examples/read.rb +6 -2
- data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -11
- data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
- data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
- data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
- data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
- data/vendor/assets/server/atome_server.rb +3 -5
- metadata +76 -164
- data/lib/atome/atome_native_extensions.rb +0 -5
- data/lib/atome/extensions/helper.rb +0 -112
- data/lib/atome/kernel/atome.rb +0 -99
- data/lib/atome/kernel/generators/generator.rb +0 -517
- data/lib/atome/kernel/generators/genesis.rb +0 -277
- data/lib/atome/kernel/generators/sanitizer.rb +0 -73
- data/lib/atome/kernel/generators/shapes.rb +0 -55
- data/lib/atome/kernel/helpers/internal_methods.rb +0 -173
- data/lib/atome/kernel/helpers/utilities.rb +0 -39
- data/lib/atome/kernel/properties/essential.rb +0 -77
- data/lib/atome/kernel/sparkle.rb +0 -38
- data/lib/atome/renderers/opal/properties/generator.rb +0 -1
- data/lib/atome/renderers/server/properties/generator.rb +0 -9
- data/vendor/assets/build/medias/audios/guitar.wav +0 -0
- data/vendor/assets/build/medias/images/beach.jpg +0 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
- data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
- data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
- data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
- data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
- data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
- data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
- data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
- data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
- data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
- data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
- data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
- data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
- data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
- data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
- data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
- data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
- data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
- 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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 64c8921a4ed715c0ed422e430ca3e9b6ead122f06e81032d0e8843b9fa2e0e4c
|
|
4
|
+
data.tar.gz: 7920b914b719630b1a930d1f27616d31161e8befe33fd409098a55a90cf30ced
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2d1fe5f8e8967e1869da808953904dbcd41327676bf644cf19b260cc56f0febdf38a3d3673056ab51406ca0b6743708dcf2c5b1d8fb6e20cd7f8f8b94d425ebd
|
|
7
|
+
data.tar.gz: 314bec01e683e3bcf0e57abfe1bc273bf38a91650da89f277449226b8f23dc7626c1d3d76e0d8408bdc7e82f5c337e8beb2fae3e73b23cd827102374d8b62c24
|
data/Gemfile
CHANGED
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
|
|
51
|
+
[//]: # (- Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.(https://github.com/tauri-apps/tauri))
|
|
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" />
|
|
59
60
|
<img src="./documentation/images/logos/freebsd.png" width="100" />
|
|
60
61
|
<img src="./documentation/images/logos/puma.png" width="100" />
|
|
61
|
-
|
|
62
|
+
|
|
63
|
+
[//]: # (<img src="./documentation/images/logos/tauri.png" width="100" /> )
|
|
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`.
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
16
|
-
|
|
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/
|
|
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
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
126
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
161
|
-
# minimizing
|
|
162
|
-
|
|
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
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
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 =
|
|
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
|
|
41
|
-
|
|
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
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
|
120
|
+
sleep 3
|
|
95
121
|
end
|
|
96
122
|
nil unless ARGV.include?('guard')
|
|
97
123
|
end
|
|
98
124
|
|
|
99
|
-
def
|
|
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 :
|
|
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
|
-
|
|
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
|
data/lib/atome/atome.rb
ADDED
|
@@ -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
|
|
File without changes
|