atome 0.1.00006 → 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 +181 -41
- 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/r&d/misc.rb +219 -0
- 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 +81 -338
- data/vendor/assets/server/config.ru +2 -14
- metadata +408 -24
- 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
- data/vendor/assets/index.rb +0 -135
@@ -1,26 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
# important if crash the gem install rack-unreloader -v 1.7.0 gem install roda -v 2.26.0
|
6
|
-
# bundle update
|
7
|
-
# bundle install
|
8
|
-
# to run: rackup --server puma --port 4567 or without puma : rackup -p 4567
|
9
|
-
|
10
|
-
# puts RUBY_VERSION
|
11
|
-
if RUBY_PLATFORM == "x64-mingw32"
|
12
|
-
require "em/pure_ruby"
|
2
|
+
# atome server
|
3
|
+
if RUBY_PLATFORM == 'x64-mingw32'
|
4
|
+
require 'em/pure_ruby'
|
13
5
|
end
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
6
|
+
require 'atome'
|
7
|
+
require '../aui.rb'
|
8
|
+
require 'digest/sha2'
|
9
|
+
require 'faye/websocket'
|
10
|
+
require 'geocoder'
|
11
|
+
require 'json'
|
12
|
+
require 'mail'
|
13
|
+
require 'net/ping'
|
14
|
+
require 'roda'
|
15
|
+
require 'rufus-scheduler'
|
16
|
+
require 'securerandom'
|
17
|
+
require 'sequel'
|
18
|
+
|
24
19
|
|
25
20
|
|
26
21
|
class String
|
@@ -33,343 +28,91 @@ class String
|
|
33
28
|
end
|
34
29
|
end
|
35
30
|
|
36
|
-
class
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
class Database
|
32
|
+
def self.connect_database
|
33
|
+
if File.exist?("eden.sqlite3")
|
34
|
+
eden=Sequel.connect("sqlite://eden.sqlite3")
|
35
|
+
else
|
36
|
+
eden=Sequel.connect("sqlite://eden.sqlite3")
|
37
|
+
eden.create_table :atome do
|
38
|
+
primary_key :atome_id
|
39
|
+
String :aui
|
40
|
+
String :id
|
41
|
+
String :type
|
42
|
+
String :name
|
43
|
+
String :content
|
44
|
+
String :position
|
45
|
+
String :dimension
|
46
|
+
String :color
|
47
|
+
String :right
|
48
|
+
String :effect
|
49
|
+
String :shadow
|
50
|
+
String :border
|
51
|
+
String :fill
|
52
|
+
Float :x
|
53
|
+
Float :xx
|
54
|
+
Float :y
|
55
|
+
Float :yy
|
56
|
+
Float :z
|
57
|
+
Float :zz
|
58
|
+
Float :width
|
59
|
+
Float :height
|
60
|
+
Float :depth
|
61
|
+
end
|
41
62
|
|
42
|
-
#plugin :mail_processor
|
43
|
-
eden = Sequel.connect("sqlite://eden.sqlite3")
|
44
|
-
unless File.exist?("eden.sqlite3")
|
45
|
-
eden.create_table :objects do
|
46
|
-
primary_key :atome_id
|
47
|
-
String :id
|
48
|
-
String :type
|
49
|
-
String :name
|
50
|
-
String :content
|
51
63
|
end
|
64
|
+
eden
|
52
65
|
end
|
53
66
|
|
54
|
-
|
67
|
+
end
|
55
68
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
# plugin "faye/websocket"
|
62
|
-
route do |r|
|
63
|
-
if Faye::WebSocket.websocket?(env)
|
64
|
-
ws = Faye::WebSocket.new(env)
|
65
|
-
# @@test_socket[0] = ws
|
66
|
-
@@test_socket[0] = ws
|
67
|
-
ws.on :message do |event|
|
68
|
-
client_data = event.data
|
69
|
-
if client_data.is_json?
|
70
|
-
data = JSON.parse(client_data)
|
71
|
-
# puts data
|
72
|
-
case data["type"]
|
73
|
-
when "login"
|
74
|
-
user_id = data["username"]
|
75
|
-
# @user_id[user_id]=ws
|
76
|
-
# @user[data["username"]] = ws
|
77
|
-
# ws.send()
|
78
|
-
# message_back = "text ({content: '#{data["username"]} with id : #{data["id"]} is connected!', y:330})"
|
79
|
-
# message_back={id: data["id"], log: true}
|
80
|
-
#
|
81
|
-
session_id = SecureRandom.uuid
|
82
|
-
message_back = JSON.generate({ type: :response, request_id: data["request_id"], session_id: session_id, log: true })
|
83
|
-
ws.send(message_back)
|
69
|
+
class App < Roda
|
70
|
+
## comment below when test will be done
|
71
|
+
File.delete("./eden.sqlite3") if File.exist?("./eden.sqlite3")
|
72
|
+
eden=Database.connect_database
|
73
|
+
items = eden[:atome]
|
84
74
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
# @session[data["username"]] =session_id
|
90
|
-
message_back = JSON.generate({ type: :response, request_id: data["request_id"], channel_id: channel_id })
|
91
|
-
ws.send(message_back)
|
92
|
-
when "list_channels"
|
93
|
-
message_back = JSON.generate({ type: :response, request_id: data["request_id"], channels: @@channels.keys })
|
94
|
-
ws.send(message_back)
|
95
|
-
when "connect_channel"
|
96
|
-
channel_id = data["channel_id"]
|
97
|
-
@@channels[channel_id] << ws
|
98
|
-
message_back = JSON.generate({ type: :response, request_id: data["request_id"], connected: true })
|
99
|
-
ws.send(message_back)
|
100
|
-
when "push_to_channel"
|
101
|
-
channel_id = data["channel_id"]
|
102
|
-
message_received = data["message"]
|
103
|
-
#fixme the type depend on the kind if received message
|
104
|
-
message_to_push = JSON.generate({ type: :code, content: message_received })
|
105
|
-
@@channels[channel_id].each do |ws_found|
|
106
|
-
# we exclude the sender from the recipient
|
107
|
-
unless ws_found == ws
|
108
|
-
ws_found.send(message_to_push)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
message_back = JSON.generate({ type: :response, request_id: data["request_id"], pushed: true })
|
112
|
-
ws.send(message_back)
|
113
|
-
when "read"
|
114
|
-
file_content = File.read(data["file"])
|
115
|
-
hashed_content = { content: file_content }
|
116
|
-
hashed_options = { options: data["options"].to_s }
|
117
|
-
message_to_push = JSON.generate({ type: :read, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
|
118
|
-
ws.send(message_to_push)
|
119
|
-
when "set"
|
120
|
-
msg = { type: :monitor, atome: data["atome"], target: data["target"], output: data["output"], content: data["content"],options: data["options"] }
|
121
|
-
set_output msg
|
122
|
-
when "monitor"
|
123
|
-
# file = data["file"]
|
124
|
-
# monitor "public/medias/e_projects/chambon/code.rb"
|
125
|
-
# puts file.class
|
126
|
-
# if !file.instance_of?(Array)
|
127
|
-
# file=[file]
|
128
|
-
# end
|
75
|
+
# populate the table
|
76
|
+
items.insert(name: 'abc', width: rand * 100)
|
77
|
+
items.insert(name: 'def', width: rand * 100)
|
78
|
+
items.insert(name: 'ghi', width: rand * 100)
|
129
79
|
|
80
|
+
puts "Item count: #{items.count}"
|
130
81
|
|
131
|
-
|
132
|
-
# puts "hello from thread"
|
133
|
-
# Filewatcher.new(file).watch do |changes|
|
134
|
-
# file_content = file
|
135
|
-
# hashed_content = { content: data["file"] }
|
136
|
-
# hashed_options = { options: data["options"].to_s }
|
137
|
-
if data["file"]
|
138
|
-
msg = { type: :monitor, atome: data["atome"], target: data["target"], content: data["file"], options: data["options"] }
|
139
|
-
monitor msg
|
140
|
-
else
|
141
|
-
msg = { type: :monitor, atome: data["atome"], target: data["target"], input: data["input"], options: data["options"] }
|
142
|
-
capture_input msg
|
143
|
-
end
|
144
|
-
# puts "------"
|
145
|
-
# puts file.class
|
146
|
-
# puts "------"
|
147
|
-
# message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
|
148
|
-
# # puts ws.inspect
|
149
|
-
# # puts "---"
|
150
|
-
# puts "hashed_content : #{hashed_content}}"
|
151
|
-
# puts "hashed_options : #{hashed_options}}"
|
152
|
-
# puts "message_to_push : #{message_to_push}}"
|
153
|
-
# ws.send(message_to_push)
|
154
|
-
# # @@channels[channel_id].each do |ws_found|
|
155
|
-
# # # we exclude the sender from the recipient
|
156
|
-
# # unless ws_found == ws
|
157
|
-
# # ws_found.send(message_to_push)
|
158
|
-
# # end
|
159
|
-
# # end
|
160
|
-
# end
|
161
|
-
# puts "koolll!!!!"
|
162
|
-
# end
|
163
|
-
# @@threads.each(&:join)
|
82
|
+
puts "The average price is: #{items.avg(:width)}"
|
164
83
|
|
165
|
-
# t= Thread.new do
|
166
|
-
# puts "hello from thread"
|
167
|
-
# Filewatcher.new(file).watch do |changes|
|
168
|
-
# # file_content = File.read(changes)
|
169
|
-
# hashed_content = { content: file_content }
|
170
|
-
# hashed_options = { options: data["options"].to_s }
|
171
|
-
# message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], content: hashed_content, options: hashed_options })
|
172
|
-
# # puts ws.inspect
|
173
|
-
# # puts "---"
|
174
|
-
# puts "hashed_content : #{hashed_content}}"
|
175
|
-
# puts "hashed_options : #{hashed_options}}"
|
176
|
-
# puts "message_to_push : #{message_to_push}}"
|
177
|
-
# ws.send(message_to_push)
|
178
|
-
# # @@channels[channel_id].each do |ws_found|
|
179
|
-
# # # we exclude the sender from the recipient
|
180
|
-
# # unless ws_found == ws
|
181
|
-
# # ws_found.send(message_to_push)
|
182
|
-
# # end
|
183
|
-
# # end
|
184
|
-
# end
|
185
|
-
#
|
186
|
-
# end
|
187
|
-
#
|
188
|
-
# t.join
|
189
84
|
|
190
|
-
|
191
|
-
# t=Thread.new do
|
192
|
-
# sleep 12
|
193
|
-
# puts file = data["file"]
|
194
|
-
# end
|
195
|
-
# t.join
|
196
|
-
# if @file_require == (Digest::SHA256.hexdigest File.read data["file"])
|
197
|
-
# @file_require = Digest::SHA256.hexdigest File.read data["file"]
|
198
|
-
# else
|
199
|
-
# @file_require = Digest::SHA256.hexdigest File.read data["file"]
|
200
|
-
# # file_content = File.read()
|
201
|
-
# file = data["file"]
|
202
|
-
# hashed_file = { content: file }
|
203
|
-
# hashed_options = { options: data["options"].to_s }
|
204
|
-
# message_to_push = JSON.generate({ type: :monitor, atome: data["atome"], target: data["target"], file: hashed_file, options: hashed_options })
|
205
|
-
# ws.send(message_to_push)
|
206
|
-
# end
|
207
|
-
when "list"
|
208
|
-
files_found = Dir[data["path"] + "/*"]
|
209
|
-
hashed_content = { content: files_found }
|
210
|
-
hashed_options = { options: data["options"].to_s }
|
211
|
-
message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
|
212
|
-
ws.send(message_to_push)
|
213
|
-
when "write"
|
214
|
-
File.write(data["file"], data["content"])
|
215
|
-
hashed_content = { content: data["content"].to_s }
|
216
|
-
hashed_options = { options: data["options"].to_s }
|
217
|
-
message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
|
218
|
-
ws.send(message_to_push)
|
219
|
-
when "copy"
|
220
|
-
FileUtils.cp data["source"], data["dest"]
|
221
|
-
when "delete"
|
222
|
-
File.delete(data["file"])
|
223
|
-
hashed_content = { content: data["file"].to_s }
|
224
|
-
hashed_options = { options: data["options"].to_s }
|
225
|
-
message_to_push = JSON.generate({ type: :read, target: data["target"], content: hashed_content, options: hashed_options })
|
226
|
-
ws.send(message_to_push)
|
227
|
-
when "mail"
|
228
|
-
if data["from"]
|
229
|
-
sender = data["from"]
|
230
|
-
else
|
231
|
-
sender = "contact@atome.one"
|
232
|
-
end
|
233
|
-
receiver = data["to"]
|
234
|
-
mail_subject = data["subject"]
|
235
|
-
content = data["content"]
|
236
|
-
attachment = data["attachment"]
|
237
|
-
attachments = []
|
238
|
-
if attachment
|
239
|
-
if attachment.instance_of?(Array)
|
240
|
-
attachment.each do |file|
|
241
|
-
filename = File.basename(file)
|
242
|
-
attachments << { file: file, filename: filename }
|
243
|
-
end
|
244
|
-
else
|
245
|
-
filename = File.basename(attachment)
|
246
|
-
attachments << { file: attachment, filename: filename }
|
247
|
-
end
|
248
|
-
end
|
249
|
-
# puts "----- + -----"
|
250
|
-
# puts "sender: #{sender}"
|
251
|
-
# puts "receiver: #{receiver}"
|
252
|
-
# puts "mail_subject: #{mail_subject}"
|
253
|
-
# puts "content: #{content}"
|
254
|
-
# puts "attachments: #{attachments}"
|
255
|
-
# puts "----- - -----"
|
256
|
-
mail = Mail.new do
|
257
|
-
from sender
|
258
|
-
to receiver
|
259
|
-
subject mail_subject
|
260
|
-
body content
|
261
|
-
attachments.each do |file_to_add|
|
262
|
-
file = file_to_add[:file]
|
263
|
-
filename = file_to_add[:filename]
|
264
|
-
add_file :filename => filename, :content => File.read(file)
|
265
|
-
end
|
266
|
-
end
|
85
|
+
index_content = File.read("../build/index.html")
|
267
86
|
|
268
|
-
mail.delivery_method :sendmail
|
269
87
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
# ws.send("unknown message received")
|
284
|
-
end
|
88
|
+
opts[:root] = '../build'
|
89
|
+
plugin :static, %w[/css /js /medias], root: '../build'
|
90
|
+
route do |r|
|
91
|
+
if Faye::WebSocket.websocket?(env)
|
92
|
+
websocket = Faye::WebSocket.new(env)
|
93
|
+
websocket.on :message do |event|
|
94
|
+
client_data = event.data
|
95
|
+
if client_data.is_json?
|
96
|
+
# to get hash from data: data_to_hash = JSON.parse(client_data)
|
97
|
+
# websocket.send(client_data)
|
98
|
+
websocket.send("The average price must be: #{items.avg(:width)}")
|
99
|
+
uuid = SecureRandom.uuid
|
100
|
+
websocket.send("The coded uuid is : #{uuid}")
|
285
101
|
end
|
286
102
|
end
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
103
|
+
websocket.on :open do
|
104
|
+
# websocket.send(event.data)
|
105
|
+
end
|
106
|
+
websocket.on :close do
|
107
|
+
# websocket.send(event.data)
|
292
108
|
end
|
293
|
-
|
109
|
+
websocket.rack_response
|
294
110
|
end
|
295
111
|
r.root do
|
296
112
|
r.redirect "/index"
|
297
113
|
end
|
298
114
|
r.on "index" do
|
299
|
-
|
300
|
-
r.get do
|
301
|
-
#sleep 7
|
302
|
-
#box()
|
303
|
-
index_content
|
304
|
-
end
|
305
|
-
end
|
115
|
+
index_content
|
306
116
|
end
|
307
117
|
end
|
308
|
-
|
309
|
-
def self.monitor_callback(val, params)
|
310
|
-
ws = @@test_socket[0]
|
311
|
-
file_content = File.read(val)
|
312
|
-
params[:content] = val
|
313
|
-
msg = { "type": "eval", "atome": "text", "target": "tryout", "content": { "content": file_content }, "options": "clear" }
|
314
|
-
params[:content] = { "content": { "content": file_content } }
|
315
|
-
message_to_push = JSON.generate(msg)
|
316
|
-
ws.send(message_to_push)
|
317
|
-
end
|
318
|
-
|
319
|
-
def self.device_output_callback( params)
|
320
|
-
ws = @@test_socket[0]
|
321
|
-
file_content = params[:content]
|
322
|
-
msg = { "type": "read", "atome": "text", "target": "tryout", "content": { "content": file_content }, "options": "clear" }
|
323
|
-
params[:content] = { "content": { "content": file_content } }
|
324
|
-
message_to_push = JSON.generate(msg)
|
325
|
-
ws.send(message_to_push)
|
326
|
-
end
|
327
118
|
end
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
# Update all connections in a single thread
|
333
|
-
def monitor(params)
|
334
|
-
Thread.new do
|
335
|
-
Filewatcher.new(params[:content]).watch do |changes|
|
336
|
-
App.monitor_callback(changes, params)
|
337
|
-
end
|
338
|
-
end
|
339
|
-
end
|
340
|
-
|
341
|
-
@bbb_ready = false
|
342
|
-
@bbb_thread = false
|
343
|
-
|
344
|
-
def capture_input params
|
345
|
-
unless @bbb_ready
|
346
|
-
@bbb_ready = true
|
347
|
-
puts "bbb is ready"
|
348
|
-
# require "./beagleboard"
|
349
|
-
|
350
|
-
end
|
351
|
-
if @bbb_thread
|
352
|
-
@bbb_thread.exit
|
353
|
-
end
|
354
|
-
|
355
|
-
@bbb_thread = Thread.new do
|
356
|
-
|
357
|
-
i = 0
|
358
|
-
while i < 2000
|
359
|
-
puts i
|
360
|
-
sleep 1
|
361
|
-
i += 1
|
362
|
-
end
|
363
|
-
end
|
364
|
-
end
|
365
|
-
|
366
|
-
|
367
|
-
def set_output params
|
368
|
-
App.device_output_callback( params)
|
369
|
-
end
|
370
|
-
|
371
|
-
|
372
|
-
# capture_input(1, { my_condition: :callback })
|
373
|
-
#
|
374
|
-
# capture_input(1, { my_condition: :callback })
|
375
|
-
# capture_input(1, { my_condition: :callback })
|
@@ -1,20 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# cat config.ru
|
3
|
-
# to run avec rackup :
|
4
|
-
# rackup -p 4567
|
5
|
-
# to run avec Puma :
|
6
|
-
# puma
|
7
2
|
|
8
3
|
require 'roda'
|
9
|
-
Thread.new do
|
10
|
-
sleep 1.5
|
11
|
-
system("open", "http://127.0.0.1:9292")
|
12
|
-
end
|
13
|
-
|
14
4
|
require 'rack/unreloader'
|
5
|
+
|
15
6
|
Unreloader = Rack::Unreloader.new(subclasses: %w[Roda]) { App }
|
16
7
|
Unreloader.require './atome_server.rb'
|
17
|
-
|
18
|
-
# run Unreloader
|
19
|
-
# uncomment below for prod or comment to allow code reloading
|
20
|
-
run App.freeze.app
|
8
|
+
run Unreloader
|