atome 0.1.00009 → 0.4.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +4 -0
- data/README.md +74 -6
- data/Rakefile +14 -6
- data/app_builder_helpers/Rakefile +183 -25
- data/documentation/atome.md +14 -0
- data/documentation/database.JPG +0 -0
- data/documentation/framework/apis.md +14 -0
- data/documentation/framework/atome_explained.md +179 -0
- data/documentation/framework/box_content.md +53 -0
- data/documentation/framework/buld_the_gem.md +52 -0
- data/documentation/framework/datas_flows.md +28 -0
- data/documentation/framework/enhance_atome.md +79 -0
- data/documentation/framework/folder_architecture.md +47 -0
- data/documentation/framework/technical/rendering_flow.md +18 -0
- data/documentation/framework/technical/technical_description.md +23 -0
- data/documentation/framework/what_is_it.md +65 -0
- data/documentation/framework/what_it_can_do.md +25 -0
- data/documentation/images/1.png +0 -0
- data/documentation/images/2.png +0 -0
- data/documentation/images/3.png +0 -0
- data/documentation/images/atome.svg +12 -0
- data/documentation/images/list.png +0 -0
- data/documentation/images/logos/cordova.png +0 -0
- data/documentation/images/logos/freebsd.png +0 -0
- data/documentation/images/logos/opal.png +0 -0
- data/documentation/images/logos/puma.png +0 -0
- data/documentation/images/logos/roda.svg +1 -0
- data/documentation/images/logos/ruby.png +0 -0
- data/documentation/images/logos/tauri.png +0 -0
- data/documentation/installation/atome_server.md +184 -0
- data/documentation/tutorials/first_steps.md +148 -0
- data/documentation/tutorials/tutorials.md +15 -0
- data/documentation/tutorials/working_with_atome.md +60 -0
- data/exe/atome +178 -53
- data/lib/atome/atome_native_extensions.rb +5 -0
- data/lib/atome/extensions/geolocation.rb +14 -0
- data/lib/atome/extensions/helper.rb +123 -0
- data/lib/atome/extensions/ping.rb +13 -0
- data/lib/atome/extensions/sha.rb +6 -0
- data/lib/atome/extensions/utilities.rb +39 -0
- data/lib/atome/kernel/atome.rb +98 -0
- data/lib/atome/kernel/generators/generator.rb +387 -0
- data/lib/atome/kernel/generators/genesis.rb +265 -0
- data/lib/atome/kernel/generators/sanitizer.rb +77 -0
- data/lib/atome/kernel/generators/shapes.rb +40 -0
- data/lib/atome/kernel/properties/essential.rb +43 -0
- data/lib/atome/kernel/sparkle.rb +37 -0
- data/lib/atome/kernel/universe.rb +29 -0
- data/lib/atome/renderers/headless/properties/generator.rb +1 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
- data/lib/atome/renderers/opal/extensions/color.rb +23 -0
- data/lib/atome/renderers/opal/extensions/geolocation.rb +14 -0
- data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
- data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
- data/lib/atome/renderers/opal/opal_browser.rb +2 -1
- data/lib/atome/renderers/opal/opal_parser.rb +1 -0
- data/lib/atome/renderers/opal/properties/generator.rb +1 -0
- data/lib/atome/renderers/renderer.rb +12 -0
- data/lib/atome/renderers/server/properties/generator.rb +9 -0
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +55 -2
- data/vendor/assets/Guardfile +4 -0
- data/vendor/assets/Rakefile +3 -0
- data/vendor/assets/application/index.rb +4 -0
- data/vendor/assets/build/css/style.css +21 -8
- data/vendor/assets/build/favicon.ico +0 -0
- data/vendor/assets/build/index.html +13 -4
- data/vendor/assets/build/js/atome/atome.js +68 -0
- data/vendor/assets/build/js/ping.min.js +2 -0
- data/vendor/assets/build/js/third_parties/createjs.min.js +19 -0
- data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
- data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
- data/vendor/assets/build/js/third_parties/three.min.js +6 -0
- data/vendor/assets/build/js/utilities/w3color.js +646 -0
- data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
- data/vendor/assets/build/medias/audios/clap.wav +0 -0
- data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
- data/vendor/assets/build/medias/audios/hihat.wav +0 -0
- data/vendor/assets/build/medias/audios/kick.wav +0 -0
- data/vendor/assets/build/medias/audios/riff.m4a +0 -0
- data/vendor/assets/build/medias/audios/snare.wav +0 -0
- data/vendor/assets/build/medias/audios/tom.wav +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
- data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
- data/vendor/assets/build/medias/images/atome.svg +12 -0
- data/vendor/assets/build/medias/images/avion.jpg +0 -0
- data/vendor/assets/build/medias/images/ballanim.png +0 -0
- data/vendor/assets/build/medias/images/blank.png +0 -0
- data/vendor/assets/build/medias/images/boat.png +0 -0
- data/vendor/assets/build/medias/images/cache.svg +10 -0
- data/vendor/assets/build/medias/images/dices.png +0 -0
- data/vendor/assets/build/medias/images/eVe_back.png +0 -0
- data/vendor/assets/build/medias/images/elephant.png +0 -0
- data/vendor/assets/build/medias/images/eyes.jpg +0 -0
- data/vendor/assets/build/medias/images/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/grain_texture.png +0 -0
- data/vendor/assets/build/medias/images/green_planet.png +0 -0
- data/vendor/assets/build/medias/images/image_missing.svg +9 -0
- data/vendor/assets/build/medias/images/jeezs.png +0 -0
- data/vendor/assets/build/medias/images/keyboard.png +0 -0
- data/vendor/assets/build/medias/images/killer.jpg +0 -0
- data/vendor/assets/build/medias/images/living_room.png +0 -0
- data/vendor/assets/build/medias/images/logo.svg +14 -0
- data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
- data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
- data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
- data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
- data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
- data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
- data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
- data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
- data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
- data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
- data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
- data/vendor/assets/build/medias/images/moto.png +0 -0
- data/vendor/assets/build/medias/images/noise.svg +17 -0
- data/vendor/assets/build/medias/images/piano.png +0 -0
- data/vendor/assets/build/medias/images/poisson.jpg +0 -0
- data/vendor/assets/build/medias/images/red_planet.png +0 -0
- data/vendor/assets/build/medias/images/sky.jpg +0 -0
- data/vendor/assets/build/medias/images/the_mask.svg +8 -0
- data/vendor/assets/build/medias/images/tile.png +0 -0
- data/vendor/assets/build/medias/images/tile_black.png +0 -0
- data/vendor/assets/build/medias/images/tile_white.png +0 -0
- data/vendor/assets/build/medias/javascripts/test.js +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
- data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/box.rb +1 -0
- data/vendor/assets/build/{js/opal/opal_browser.js → medias/rubies/examples/circle.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/drag.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/link.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/parent.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/web.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
- data/vendor/assets/build/medias/rubies/test.rb +1 -0
- data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
- data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
- data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
- data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
- data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
- data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
- data/vendor/assets/r&d/ping.rb +3 -0
- data/vendor/assets/r&d/storage.rb +9 -0
- data/vendor/assets/r&d/view_example.rb +21 -0
- data/vendor/assets/server/atome_server.rb +74 -27
- data/vendor/assets/server/config.ru +2 -14
- metadata +424 -12
- data/lib/atome/kernel/atome_genesis.rb +0 -2
- data/lib/atome/kernel/properties/geometry.rb +0 -2
- data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,148 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./tutorials.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
Now create your first app:
|
13
|
+
-
|
14
|
+
|
15
|
+
first type the following command in your shell
|
16
|
+
|
17
|
+
atome create myproject
|
18
|
+
|
19
|
+
This will create a folder named "myproject" that'll hold your application
|
20
|
+
|
21
|
+
in this newly created folder you'll find folder name "application".
|
22
|
+
|
23
|
+
open it and it the file named "index.rb" adding the text below :
|
24
|
+
|
25
|
+
text("hellow world!")
|
26
|
+
|
27
|
+
you're application is ready to run, to do so, in your shell type the following command:
|
28
|
+
|
29
|
+
cd myproject
|
30
|
+
atome run
|
31
|
+
|
32
|
+
|
33
|
+
then your default browser should open and display the "hello world!" text
|
34
|
+
|
35
|
+
|
36
|
+
Now lets build some atomes
|
37
|
+
-
|
38
|
+
|
39
|
+
This easiest way to build is to use the basic api such as the text api used just before :
|
40
|
+
|
41
|
+
text("hellow world!")
|
42
|
+
|
43
|
+
below here is how build an atome box and assign a variable
|
44
|
+
|
45
|
+
a=box()
|
46
|
+
|
47
|
+
You can also build and Atome using the Atome class
|
48
|
+
-
|
49
|
+
This is a more complex way to build atome but way a faster for the machine to process
|
50
|
+
|
51
|
+
a=Atome.new({preset:box)}
|
52
|
+
|
53
|
+
# Here are a few common commands
|
54
|
+
|
55
|
+
|
56
|
+
# 1 - Create a new app
|
57
|
+
|
58
|
+
in your terminal type :
|
59
|
+
|
60
|
+
atome create myproject
|
61
|
+
|
62
|
+
or atome create :
|
63
|
+
|
64
|
+
atome create myproject production
|
65
|
+
for production mode (all javascript file will be minimized and uglified)
|
66
|
+
|
67
|
+
|
68
|
+
to overwrite an existing project :
|
69
|
+
|
70
|
+
atome create myproject production force
|
71
|
+
|
72
|
+
# 2 - Run the application
|
73
|
+
|
74
|
+
go into the project :
|
75
|
+
|
76
|
+
cd myproject
|
77
|
+
|
78
|
+
# Run the project :
|
79
|
+
|
80
|
+
browser version
|
81
|
+
|
82
|
+
- Warning : run the app doesn't refresh the user code, to refresh use the command 'build'
|
83
|
+
|
84
|
+
|
85
|
+
atome run browser
|
86
|
+
|
87
|
+
|
88
|
+
server version
|
89
|
+
|
90
|
+
- Warning : run the app doesn't refresh the user code, to refresh use the command 'build'
|
91
|
+
|
92
|
+
|
93
|
+
atome run server
|
94
|
+
|
95
|
+
- By default the address port is 9292 : http://localhost:9292/index
|
96
|
+
|
97
|
+
|
98
|
+
gem version
|
99
|
+
|
100
|
+
require 'atome'
|
101
|
+
a=Atome.new
|
102
|
+
puts a.inspect
|
103
|
+
|
104
|
+
native version : android , iOS, Linux, windows
|
105
|
+
|
106
|
+
- Warning : run the app doesn't refresh the user code, to refresh use the command 'build'
|
107
|
+
|
108
|
+
|
109
|
+
atome run osx
|
110
|
+
|
111
|
+
OS version
|
112
|
+
|
113
|
+
|
114
|
+
go to https://github.com/atomecorp/atomic_builder
|
115
|
+
|
116
|
+
|
117
|
+
to run in production mode (faster server mode)
|
118
|
+
|
119
|
+
atome run server production
|
120
|
+
|
121
|
+
to update your application ti the latest atome version
|
122
|
+
|
123
|
+
gem update
|
124
|
+
atome update
|
125
|
+
|
126
|
+
to set the server port
|
127
|
+
|
128
|
+
atome run server port: 9299
|
129
|
+
|
130
|
+
Supported platforms with the run command are : browser, server , android, Freebsd, iOS, OSX, Windows
|
131
|
+
|
132
|
+
atome run osx
|
133
|
+
|
134
|
+
# compile the user app :
|
135
|
+
|
136
|
+
to build your app and re-generate javascript script from ruby type:
|
137
|
+
|
138
|
+
atome build
|
139
|
+
|
140
|
+
for production mode (compressed and uglified javascript files) type :
|
141
|
+
|
142
|
+
atome build production
|
143
|
+
|
144
|
+
Please note, is possible to mix multiple options to create run and set some options in one pas:
|
145
|
+
|
146
|
+
atome create myproject server force run production port: 9293
|
147
|
+
|
148
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./tutorials.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
working with atome framework :
|
13
|
+
-
|
14
|
+
any atome properties can be set using a unique value using the syntax below :
|
15
|
+
|
16
|
+
a=box()
|
17
|
+
a.color(:red)
|
18
|
+
a.x=200
|
19
|
+
|
20
|
+
|
21
|
+
you can send also the properties to the atome using parenthesis ou the equal sign:
|
22
|
+
|
23
|
+
a=box()
|
24
|
+
a.x(300)
|
25
|
+
a.y=500
|
26
|
+
|
27
|
+
The basic objects
|
28
|
+
|
29
|
+
those objects are created by the system at startup :
|
30
|
+
-
|
31
|
+
|
32
|
+
- preset : hold the default properties's values for predefined atome ( box, image text, ...)
|
33
|
+
|
34
|
+
- black_hole : a container for all deleted object
|
35
|
+
|
36
|
+
- device : Used to identify user device (computer , phone , tablet), also used for Namespace and generate identity of newly created atomes
|
37
|
+
|
38
|
+
- intuition : A visual layer used to hold user tools
|
39
|
+
|
40
|
+
- view : Where user create and modify there projects
|
41
|
+
|
42
|
+
- messenger : A special object used for communication and collaboration
|
43
|
+
|
44
|
+
- authorization : this atome is used to authorise or not creation , use, communication and modification of atome
|
45
|
+
|
46
|
+
buffer : an atome used to store temporary object, it is used to store temporary element such as the position and content of system element like the code editor or the list of element to remain centered when the main windows is resized,
|
47
|
+
eg:
|
48
|
+
|
49
|
+
|
50
|
+
b = box({ width: 700, height: 120, drag: true, center: { dynamic: true } })
|
51
|
+
c = circle
|
52
|
+
t = text({ content: "ok", color: :black, center: :x })
|
53
|
+
|
54
|
+
grab(:buffer).content[:resize] = [t, b]
|
55
|
+
ATOME.resize_html do |evt|
|
56
|
+
t.content("#{evt[:width]} #{evt[:height]}")
|
57
|
+
grab(:buffer).content[:resize].each do |element|
|
58
|
+
element.center=element.center
|
59
|
+
end
|
60
|
+
end
|
data/exe/atome
CHANGED
@@ -2,60 +2,66 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require 'fileutils'
|
5
|
+
require 'securerandom'
|
6
|
+
require 'digest/sha2'
|
7
|
+
# below are the methods needed for atome creation and run
|
5
8
|
|
6
|
-
def
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
delete_all(fullname)
|
13
|
-
else
|
14
|
-
File.delete(fullname)
|
15
|
-
end
|
9
|
+
def found_path(arg_name)
|
10
|
+
project_name = ARGV[ARGV.find_index(arg_name) + 1]
|
11
|
+
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}"
|
16
15
|
end
|
17
|
-
|
16
|
+
path
|
18
17
|
end
|
19
18
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
`cd ./server;rackup --server puma --port 9292 --env production`
|
28
|
-
end
|
29
|
-
when :browser
|
30
|
-
if location
|
31
|
-
`cd ./#{location}/build;open index.html`
|
32
|
-
else
|
33
|
-
`cd ./build;open index.html`
|
34
|
-
end
|
35
|
-
when :osx
|
36
|
-
require 'webview_ruby'
|
37
|
-
webview = WebviewRuby::Webview.new
|
38
|
-
webview.set_title('atome')
|
39
|
-
webview.set_size(480, 360)
|
40
|
-
if location
|
41
|
-
webview.navigate("file:/#{`pwd`}/#{location}/build/index.html")
|
19
|
+
def delete_all(dir, user_application = false)
|
20
|
+
Dir.foreach(dir) do |e|
|
21
|
+
next if %w[. ..].include? e
|
22
|
+
|
23
|
+
full_name = dir + File::Separator + e
|
24
|
+
if FileTest.directory?(full_name)
|
25
|
+
delete_all(full_name, user_application) if user_application && dir != 'application'
|
42
26
|
else
|
43
|
-
|
27
|
+
File.delete(full_name)
|
44
28
|
end
|
45
|
-
webview.run
|
46
|
-
else
|
47
|
-
# nothing for now
|
48
29
|
end
|
30
|
+
Dir.delete(dir) if user_application && dir != 'application'
|
31
|
+
end
|
49
32
|
|
33
|
+
def build_app(path, production)
|
34
|
+
# now run the rake task to build the needed libraries (atome, renderers, etc...)
|
35
|
+
app_builder_helpers = File.join(File.dirname(__FILE__), '../app_builder_helpers')
|
36
|
+
# now run the rake task to compile user code to javascript
|
37
|
+
`cd #{app_builder_helpers};rake build_user_code[#{path},#{production}]`
|
50
38
|
end
|
51
39
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
force = ARGV[2]
|
56
|
-
delete_all(project_name) if force == 'force'
|
57
|
-
Dir.mkdir project_name.to_s
|
40
|
+
def create_application(project_name, force, production)
|
41
|
+
# print "directory already exist, use force to overwrite"
|
42
|
+
new_app_creation = false
|
58
43
|
current_path = `pwd`.chomp
|
44
|
+
unless force && File.directory?(project_name)
|
45
|
+
new_app_creation = true
|
46
|
+
Dir.mkdir project_name
|
47
|
+
# now lets create the application identity
|
48
|
+
uuid = SecureRandom.uuid
|
49
|
+
sha = Digest::SHA256.hexdigest(uuid)
|
50
|
+
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
|
63
|
+
end
|
64
|
+
|
59
65
|
gem_assets_location = File.join(File.dirname(__FILE__), '../vendor/assets/')
|
60
66
|
app_builder_helpers = File.join(File.dirname(__FILE__), '../app_builder_helpers')
|
61
67
|
target_template_location = "#{current_path}/#{project_name}"
|
@@ -66,24 +72,143 @@ when 'create'
|
|
66
72
|
end
|
67
73
|
end
|
68
74
|
# now run the rake task to build the needed libraries (atome, renderers, etc...)
|
69
|
-
`cd #{app_builder_helpers};rake system_builder
|
70
|
-
|
71
|
-
|
72
|
-
|
75
|
+
`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
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def update_application(project_name, production)
|
88
|
+
app_builder_helpers = File.join(File.dirname(__FILE__), '../app_builder_helpers')
|
89
|
+
`cd #{app_builder_helpers};rake system_updater[#{project_name},#{production}]`
|
90
|
+
end
|
91
|
+
|
92
|
+
def guard_check
|
93
|
+
loop do
|
94
|
+
sleep 9
|
95
|
+
end
|
96
|
+
nil unless ARGV.include?('guard')
|
97
|
+
end
|
98
|
+
|
99
|
+
def run_application(build_target, location, port = 9292)
|
100
|
+
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
|
114
|
+
# freebsd
|
115
|
+
when :osx
|
116
|
+
# osx
|
117
|
+
when :windows
|
118
|
+
# windows
|
119
|
+
else
|
120
|
+
`cd #{location}/build;open index.html`
|
121
|
+
guard_check
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# below we analyse the ARGV
|
126
|
+
location = '/'
|
127
|
+
force = nil
|
128
|
+
production = nil
|
129
|
+
port = 9292
|
130
|
+
|
131
|
+
production = 'production' if ARGV.include?('production')
|
132
|
+
|
133
|
+
force = 'force' if ARGV.include?('force')
|
134
|
+
|
135
|
+
port = ARGV[ARGV.find_index('port:') + 1] if ARGV.include?('port:')
|
136
|
+
|
137
|
+
platforms = %w[android browser server osx freebsd ios linux osx windows]
|
138
|
+
# now setting build_target
|
139
|
+
|
140
|
+
build_target = 'browser'
|
141
|
+
|
142
|
+
platforms.each do |platform|
|
143
|
+
build_target = platform if ARGV.include?(platform)
|
144
|
+
end
|
145
|
+
|
146
|
+
if ARGV.include?('create')
|
147
|
+
project_name = ARGV[1]
|
148
|
+
location = "/#{project_name}"
|
149
|
+
create_application(project_name, force, production)
|
150
|
+
end
|
151
|
+
|
152
|
+
if ARGV.include?('build')
|
153
|
+
path = found_path('build')
|
154
|
+
build_app(path, production)
|
155
|
+
end
|
156
|
+
|
157
|
+
if ARGV.include?('update')
|
158
|
+
# TODO: also update index.html and all other files except the application folder
|
159
|
+
path = found_path('update')
|
160
|
+
update_application(path, production)
|
161
|
+
end
|
162
|
+
|
163
|
+
if ARGV.include?('guard')
|
164
|
+
Thread.new do
|
165
|
+
sleep 1.2
|
166
|
+
Dir.chdir("./#{location}") do
|
167
|
+
`guard`
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
if ARGV.include?('run')
|
173
|
+
path = if location != '/'
|
174
|
+
"#{`pwd`.chomp}/#{location}"
|
175
|
+
else
|
176
|
+
found_path('run')
|
177
|
+
end
|
178
|
+
|
179
|
+
case build_target
|
73
180
|
when 'android'
|
181
|
+
# TODO: write code here
|
74
182
|
when 'browser'
|
75
|
-
|
183
|
+
run_application(:browser, path)
|
76
184
|
when 'freebsd'
|
185
|
+
# TODO: write code here
|
77
186
|
when 'ios'
|
187
|
+
# TODO: write code here
|
78
188
|
when 'linux'
|
189
|
+
# TODO: write code here
|
79
190
|
when 'osx'
|
80
|
-
|
191
|
+
run_application(:osx, path)
|
81
192
|
when 'server'
|
82
|
-
|
193
|
+
config_location = "#{path}/server/config.ru"
|
194
|
+
file = File.open(config_location)
|
195
|
+
text = file.read
|
196
|
+
text = text.gsub('run Unreloader', '')
|
197
|
+
text = text.gsub('run App.freeze.app', '')
|
198
|
+
text = text.gsub(/^$\n/, '')
|
199
|
+
text = if production == 'production'
|
200
|
+
"#{text}run App.freeze.app"
|
201
|
+
else
|
202
|
+
"#{text}run Unreloader"
|
203
|
+
end
|
204
|
+
File.open(config_location, 'w') do |f|
|
205
|
+
f.puts text
|
206
|
+
end
|
207
|
+
run_application(:server, path, port)
|
83
208
|
when 'windows'
|
209
|
+
# TODO: write code here
|
84
210
|
else
|
85
|
-
|
211
|
+
run_application(:browser, path)
|
86
212
|
end
|
87
|
-
|
88
|
-
# type code here
|
213
|
+
|
89
214
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'geocoder'
|
4
|
+
|
5
|
+
# add on for the atome method
|
6
|
+
class Atome
|
7
|
+
def geolocation
|
8
|
+
# native version
|
9
|
+
public_ip = `curl https://api.ipify.org`
|
10
|
+
results = Geocoder.search(public_ip)
|
11
|
+
results.first.coordinates
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,123 @@
|
|
1
|
+
def grab(val)
|
2
|
+
Atome.grab(val)
|
3
|
+
end
|
4
|
+
|
5
|
+
|
6
|
+
def read_ruby(file)
|
7
|
+
`
|
8
|
+
fetch('medias/rubies/'+#{file})
|
9
|
+
.then(response => response.text())
|
10
|
+
.then(text => Opal.eval(text))
|
11
|
+
`
|
12
|
+
end
|
13
|
+
|
14
|
+
def read_text(file)
|
15
|
+
`
|
16
|
+
fetch('medias/rubies/'+#{file})
|
17
|
+
.then(response => response.text())
|
18
|
+
.then(text => console.log(text))
|
19
|
+
`
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def read(file, action=:text)
|
24
|
+
send("read_#{action}", file)
|
25
|
+
end
|
26
|
+
|
27
|
+
def wait(seconds)
|
28
|
+
seconds = seconds.to_f
|
29
|
+
`setTimeout(function(){ #{yield} }, #{seconds * 1000})`
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def repeater(counter,proc)
|
34
|
+
instance_exec(counter,&proc) if proc.is_a?(Proc)
|
35
|
+
end
|
36
|
+
|
37
|
+
def repeat(delay = 1, repeat = 0, &proc)
|
38
|
+
# below we exec the call a first time
|
39
|
+
instance_exec(0,&proc) if proc.is_a?(Proc)
|
40
|
+
# as we exec one time above we subtract one below
|
41
|
+
%x{
|
42
|
+
var x = 1
|
43
|
+
var intervalID = window.setInterval(function(){ Opal.Object.$repeater(x,#{proc})
|
44
|
+
if (++x ===#{repeat} ) {
|
45
|
+
window.clearInterval(intervalID);
|
46
|
+
}}, #{delay * 1000})
|
47
|
+
}
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
`
|
54
|
+
const atome = {
|
55
|
+
jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
|
56
|
+
const now = new Date();
|
57
|
+
const formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
58
|
+
const diffTime = Math.abs(formatedDate - now);
|
59
|
+
setTimeout(function () {
|
60
|
+
Opal.Object.$schedule_callback(proc);
|
61
|
+
}, diffTime);
|
62
|
+
}}
|
63
|
+
`
|
64
|
+
|
65
|
+
def schedule(date, &proc)
|
66
|
+
date = date.to_s
|
67
|
+
delimiters = [",", " ", ":", "-"]
|
68
|
+
formated_date = date.split(Regexp.union(delimiters))
|
69
|
+
missing_datas = Time.now
|
70
|
+
missing_datas = missing_datas.to_s
|
71
|
+
delimiters = [",", " ", ":", "-"]
|
72
|
+
missing_datas_formated_date = missing_datas.split(Regexp.union(delimiters))
|
73
|
+
|
74
|
+
case formated_date.length
|
75
|
+
when 1
|
76
|
+
seconds = formated_date[0]
|
77
|
+
minutes = missing_datas_formated_date[4]
|
78
|
+
hours = missing_datas_formated_date[3]
|
79
|
+
days = missing_datas_formated_date[2]
|
80
|
+
months = missing_datas_formated_date[1]
|
81
|
+
years = missing_datas_formated_date[0]
|
82
|
+
|
83
|
+
when 2
|
84
|
+
seconds = formated_date[0]
|
85
|
+
minutes = formated_date[1]
|
86
|
+
hours = missing_datas_formated_date[3]
|
87
|
+
days = missing_datas_formated_date[2]
|
88
|
+
months = missing_datas_formated_date[1]
|
89
|
+
years = missing_datas_formated_date[0]
|
90
|
+
when 3
|
91
|
+
seconds = formated_date[0]
|
92
|
+
minutes = formated_date[1]
|
93
|
+
hours = formated_date[2]
|
94
|
+
days = missing_datas_formated_date[2]
|
95
|
+
months = missing_datas_formated_date[1]
|
96
|
+
years = missing_datas_formated_date[0]
|
97
|
+
when 4
|
98
|
+
seconds = formated_date[0]
|
99
|
+
minutes = formated_date[1]
|
100
|
+
hours = formated_date[2]
|
101
|
+
days = formated_date[3]
|
102
|
+
when 5
|
103
|
+
seconds = formated_date[0]
|
104
|
+
minutes = formated_date[1]
|
105
|
+
hours = formated_date[2]
|
106
|
+
days = formated_date[3]
|
107
|
+
months = formated_date[4]
|
108
|
+
years = missing_datas_formated_date[0]
|
109
|
+
else
|
110
|
+
years = formated_date[0]
|
111
|
+
months = formated_date[1]
|
112
|
+
days = formated_date[2]
|
113
|
+
hours = formated_date[3]
|
114
|
+
minutes = formated_date[4]
|
115
|
+
seconds = formated_date[5]
|
116
|
+
end
|
117
|
+
`atome.jsSchedule(#{years},#{months},#{days},#{hours},#{minutes},#{seconds},#{proc})`
|
118
|
+
end
|
119
|
+
|
120
|
+
|
121
|
+
def schedule_callback(proc)
|
122
|
+
instance_exec(&proc) if proc.is_a?(Proc)
|
123
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
def ping(address, my_proc: false)
|
2
|
+
# if RUBY_ENGINE.downcase != 'opal'
|
3
|
+
def up?(host, my_proc)
|
4
|
+
check = Net::Ping::External.new(host)
|
5
|
+
if check.ping?
|
6
|
+
puts "ping respond!! "
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
chost = address
|
11
|
+
puts up?(chost, my_proc) # prints "true" if ping replies
|
12
|
+
# end
|
13
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Utilities
|
4
|
+
module Utilities
|
5
|
+
@atome_list = []
|
6
|
+
@particle_list = []
|
7
|
+
@renderer_list = [:html, :headless, :server]
|
8
|
+
|
9
|
+
|
10
|
+
def self.renderer_list(atome = nil)
|
11
|
+
@renderer_list
|
12
|
+
end
|
13
|
+
def self.atome_list(atome = nil)
|
14
|
+
# this method is used to hold all available type of atomes
|
15
|
+
if atome
|
16
|
+
instance_variable_get('@atome_list').push(atome)
|
17
|
+
else
|
18
|
+
instance_variable_get('@atome_list')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
#
|
23
|
+
def self.particle_list(particle = nil)
|
24
|
+
# this method is used to hold all available type of particles
|
25
|
+
if particle
|
26
|
+
instance_variable_get('@particle_list').push(particle)
|
27
|
+
else
|
28
|
+
instance_variable_get('@particle_list')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.grab(params)
|
33
|
+
atome_found = nil
|
34
|
+
Universe.atomes.each do |atome|
|
35
|
+
atome_found = atome if atome.id == params
|
36
|
+
end
|
37
|
+
atome_found
|
38
|
+
end
|
39
|
+
end
|