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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49cc8d868d75099b8958e82985a3fbf1c43eaea349619ffa01e810fd9ea10ca0
|
4
|
+
data.tar.gz: 5e9b7460dea168d8fb9b21de448edbb57deed81173fc1d04bf95f12262e80ba7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12f981205e19cfc5f4243e8498c190b7b5903009660f0c68219c4eaee95195b47e0ff69fcecc67c69cd7624b66a8dd10340249dc7bc9576682d05031ec497ed3
|
7
|
+
data.tar.gz: ee6814778ba2ca00d75a7fb714847c680982ce20ffccc2df34160554340f1cb400efaab3a996d1820e91879ba72a0430f5bd90c2eb2463c39a25a2e1becdc540
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,64 @@
|
|
1
|
-
|
1
|
+
Atome
|
2
|
+
-
|
2
3
|
|
3
|
-
|
4
|
+
<img src="./documentation/images/3.png" width="666" />
|
5
|
+
-
|
4
6
|
|
5
|
-
|
7
|
+
|
8
|
+
Cross platform ecosystem
|
9
|
+
-
|
10
|
+
|
11
|
+
- atome is a cross platform development framework, aim to build mobile or desktop applications, web site, games, presentations, and lots more...
|
12
|
+
|
13
|
+
- atome's applications can be deploy as a simple application, a client, a server or both, as well as be booted at startup (Operating System. mode)
|
14
|
+
|
15
|
+
- all apis work identically, to ensure you'll have the exact same rendering whatever the host platform (Android, Freebsd, linux, MacOs, Web, Windows).
|
16
|
+
|
17
|
+
- atome and all the included libraries are entirely open source with a very permissive MIT licence. it means you can do what you want want with it!
|
18
|
+
|
19
|
+
- the framework is totally hybrid, it can be executed as a full blown native application, a native application with a web view, in a web browser or a web view
|
20
|
+
|
21
|
+
- Atome can be used in stand alone (offline mode), in cloud mode or both and sync data when required
|
22
|
+
|
23
|
+
- it's also possible to publish websites on a static server (without server side language) while using a database and sync data between users
|
24
|
+
|
25
|
+
- Anything in atome can be scripted, even on the fly at runtime!
|
26
|
+
|
27
|
+
Open source technology included
|
28
|
+
-
|
29
|
+
|
30
|
+
- Ruby : is the language used to script all atome's apis (https://www.ruby-lang.org)
|
31
|
+
|
32
|
+
[comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/ruby.png" width="100" />)
|
33
|
+
|
34
|
+
- Opal : is a ruby gem used to compile the ruby language to JS (https://opalrb.com)
|
35
|
+
|
36
|
+
[comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/opal.png" width="100" />)
|
37
|
+
|
38
|
+
- Roda : is a ruby web framework that push the server version of atome (https://roda.jeremyevans.net)
|
39
|
+
|
40
|
+
[comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/roda.svg" width="100" />)
|
41
|
+
|
42
|
+
- Puma : is a ruby web server to start the backend of atome (https://puma.io)
|
43
|
+
|
44
|
+
[comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/puma.png" width="100" />)
|
45
|
+
|
46
|
+
- FreeBSD : is a Unix platform with a very secure environment (jails), allow to create and boot embedded applications on any compatible machine (standard PC, Raspberry, Beaglebone, etc..), while keeping a very small footprint using the nanoBSD facility of FreeBSD (https://www.freebsd.org/fr/)
|
47
|
+
|
48
|
+
[comment]: <> (<img src="https://github.com/atomecorp/atome/raw/master/documentation/images/logos/freebsd.png" width="100" />)
|
49
|
+
|
50
|
+
- Tauri : Build smaller, faster, and more secure desktop applications with a web frontend.(https://github.com/tauri-apps/tauri)
|
51
|
+
|
52
|
+
[comment]: <> (<img src="https://avatars.githubusercontent.com/u/54536011?s=200&v=4" width="100" />)
|
53
|
+
|
54
|
+
<img src="./documentation/images/logos/ruby.png" width="100" />
|
55
|
+
|
56
|
+
[//]: # (<img src="./documentation/images/logos/cordova.png" width="100" /> )
|
57
|
+
<img src="./documentation/images/logos/opal.png" width="100" />
|
58
|
+
<img src="./documentation/images/logos/roda.svg" width="100" />
|
59
|
+
<img src="./documentation/images/logos/freebsd.png" width="100" />
|
60
|
+
<img src="./documentation/images/logos/puma.png" width="100" />
|
61
|
+
<img src="./documentation/images/logos/tauri.png" width="100" />
|
6
62
|
|
7
63
|
## Installation
|
8
64
|
|
@@ -16,7 +72,7 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
16
72
|
|
17
73
|
## Usage
|
18
74
|
|
19
|
-
|
75
|
+
[Full documentation here](./documentation/atome.md)
|
20
76
|
|
21
77
|
## Development
|
22
78
|
|
@@ -26,7 +82,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
26
82
|
|
27
83
|
## Contributing
|
28
84
|
|
29
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
85
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/atomecorp/atome. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
|
30
86
|
|
31
87
|
## License
|
32
88
|
|
@@ -34,4 +90,16 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
34
90
|
|
35
91
|
## Code of Conduct
|
36
92
|
|
37
|
-
Everyone interacting in the Atome project's
|
93
|
+
Everyone interacting in the Atome project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/atomecorp/atome/blob/master/CODE_OF_CONDUCT.md).
|
94
|
+
|
95
|
+
|
96
|
+
Example website:
|
97
|
+
-
|
98
|
+
**[a website showing some apis demo ](http://atome.one)**
|
99
|
+
|
100
|
+
|
101
|
+
Contact:
|
102
|
+
-
|
103
|
+
**[queries@atome.one](mailto:contact@atome.one)**
|
104
|
+
|
105
|
+
<img src="./documentation/images//atome.svg" width="100" />
|
data/Rakefile
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
require "
|
3
|
+
#old code below
|
4
|
+
# require "bundler/gem_tasks"
|
5
|
+
# require "rake/testtask"
|
6
|
+
#
|
7
|
+
# Rake::TestTask.new(:test) do |t|
|
8
|
+
# t.libs << "test"
|
9
|
+
# t.libs << "lib"
|
10
|
+
# t.test_files = FileList["test/**/test_*.rb"]
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# task default: :test
|
5
14
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
t.test_files = FileList["test/**/test_*.rb"]
|
15
|
+
task :test do
|
16
|
+
`gem cleanup atome;yes | gem uninstall atome ;gem build atome.gemspec;gem install atome`
|
17
|
+
`cd test/test_app;atome update;atome run guard`
|
10
18
|
end
|
11
19
|
|
12
20
|
task default: :test
|
@@ -1,65 +1,223 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# FIXME: check when creating gem version the new gem is not always fully updated we have to type gem uninstall first
|
4
|
+
|
3
5
|
require 'opal'
|
4
6
|
require 'opal-jquery'
|
5
7
|
require 'opal-browser'
|
6
8
|
require 'parser'
|
9
|
+
require 'ruby2js'
|
7
10
|
require 'uglifier'
|
8
11
|
|
9
12
|
Opal.append_path 'app'
|
10
13
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
def build_browser_content
|
15
|
+
Opal::Builder.build('../lib/atome/renderers/opal/opal_browser.rb').to_s
|
16
|
+
end
|
17
|
+
|
18
|
+
def build_opal_browser(user_project_path)
|
19
|
+
opal_directory = "#{user_project_path}/build/js/opal"
|
20
|
+
browser_js = "#{opal_directory}/opal_browser.js"
|
21
|
+
Dir.mkdir(opal_directory) unless File.directory?(opal_directory)
|
22
|
+
|
23
|
+
File.new browser_js, 'w'
|
24
|
+
browser_content = build_browser_content
|
25
|
+
|
16
26
|
File.open(browser_js, 'w') do |f|
|
17
27
|
f.puts browser_content
|
18
28
|
end
|
19
29
|
end
|
20
30
|
|
21
|
-
def
|
22
|
-
|
31
|
+
def build_aui(user_project_path)
|
32
|
+
# FIXME: for now production can't be change when updating or force create, we should add a production method that
|
33
|
+
# uglified all libs on demand
|
34
|
+
|
35
|
+
# now we add an uniq aui to the app
|
36
|
+
aui_js = "#{user_project_path}/build/js/aui.js"
|
37
|
+
File.new aui_js, 'w'
|
38
|
+
builder = Opal::Builder.new
|
39
|
+
aui_content = builder.build("#{user_project_path}/aui.rb").to_s
|
40
|
+
File.open(aui_js, 'w') do |f|
|
41
|
+
f.puts aui_content
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def copy_assets_files(user_project_path, gem_location)
|
46
|
+
build_location = "#{gem_location}/../vendor/assets/build/"
|
47
|
+
server_location = "#{gem_location}/../vendor/assets/server/"
|
48
|
+
FileUtils.copy_entry build_location, "#{user_project_path}/build", preserve: nil
|
49
|
+
FileUtils.copy_entry server_location, "#{user_project_path}/server", preserve: nil
|
50
|
+
end
|
51
|
+
|
52
|
+
def build_atome_kernel(user_project_path, gem_location)
|
53
|
+
# now lets build the atome kernel
|
54
|
+
atome_directory = "#{user_project_path}/build/js/atome"
|
55
|
+
Dir.mkdir(atome_directory) unless File.directory?(atome_directory)
|
56
|
+
kernel_js = "#{atome_directory}/kernel.js"
|
57
|
+
File.new kernel_js, 'w'
|
23
58
|
builder = Opal::Builder.new
|
24
59
|
builder.append_paths("#{gem_location}/../lib/")
|
25
60
|
kernel_content = builder.build("#{gem_location}/../lib/atome.rb").to_s
|
26
|
-
kernel_content = Uglifier.new.compile(kernel_content) if production
|
27
61
|
File.open(kernel_js, 'w') do |f|
|
28
62
|
f.puts kernel_content
|
29
63
|
end
|
30
64
|
end
|
31
65
|
|
32
|
-
def
|
66
|
+
def build_opal_extensions(user_project_path, gem_location)
|
67
|
+
opal_directory = "#{user_project_path}/build/js/opal"
|
68
|
+
extensions_js = "#{opal_directory}/atome_opal_extensions.js"
|
69
|
+
File.new extensions_js, 'w'
|
70
|
+
builder = Opal::Builder.new
|
71
|
+
builder.append_paths("#{gem_location}/../lib/atome/renderers/opal/")
|
72
|
+
extensions_content = builder.build("#{gem_location}/../lib/atome/renderers/opal/atome_opal_extensions.rb").to_s
|
73
|
+
File.open(extensions_js, 'w') do |f|
|
74
|
+
f.puts extensions_content
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def build_opal_parser(user_project_path)
|
33
79
|
parser_js = "#{user_project_path}/build/js/opal/opal_parser.js"
|
80
|
+
File.new parser_js, 'w'
|
34
81
|
parser_content = Opal::Builder.build('../lib/atome/renderers/opal/opal_parser.rb').to_s
|
35
|
-
parser_content = Uglifier.new.compile(parser_content) if production
|
36
82
|
File.open(parser_js, 'w') do |f|
|
37
83
|
f.puts parser_content
|
38
84
|
end
|
39
85
|
end
|
40
86
|
|
41
|
-
def build_user_code(user_project_path,
|
87
|
+
def build_user_code(user_project_path, source_code)
|
42
88
|
application_js = "#{user_project_path}/build/js/application.js"
|
43
|
-
|
44
|
-
|
89
|
+
builder = Opal::Builder.new
|
90
|
+
builder.append_paths("#{user_project_path}/")
|
91
|
+
application_content = builder.build(source_code).to_s
|
92
|
+
|
45
93
|
File.open(application_js, 'w') do |f|
|
46
94
|
f.puts application_content
|
47
95
|
end
|
48
96
|
end
|
49
97
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
98
|
+
def minimize_aui(user_project_path)
|
99
|
+
aui_js = "#{user_project_path}/build/js/aui.js"
|
100
|
+
aui_content = File.open(aui_js).read
|
101
|
+
aui_content = Uglifier.new.compile(aui_content)
|
102
|
+
File.open(aui_js, 'w') do |f|
|
103
|
+
f.puts aui_content
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def minimize_browser(user_project_path)
|
108
|
+
browser_js = "#{user_project_path}/build/js/opal/opal_browser.js"
|
109
|
+
browser_content = File.open(browser_js).read
|
110
|
+
browser_content = Uglifier.new.compile(browser_content)
|
111
|
+
File.open(browser_js, 'w') do |f|
|
112
|
+
f.puts browser_content
|
113
|
+
end
|
59
114
|
end
|
60
115
|
|
61
|
-
|
62
|
-
|
116
|
+
def minimize_parser(user_project_path)
|
117
|
+
parser_js = "#{user_project_path}/build/js/opal/opal_parser.js"
|
118
|
+
parser_content = File.open(parser_js).read
|
119
|
+
parser_content = Uglifier.new.compile(parser_content)
|
120
|
+
File.open(parser_js, 'w') do |f|
|
121
|
+
f.puts parser_content
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def minimize_atome_lib(user_project_path)
|
126
|
+
atome_js = "#{user_project_path}/build/js/atome/kernel.js"
|
127
|
+
atome_content = File.open(atome_js).read
|
128
|
+
atome_content = Uglifier.new.compile(atome_content)
|
129
|
+
File.open(atome_js, 'w') do |f|
|
130
|
+
f.puts atome_content
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def minimize_sparkle(user_project_path)
|
135
|
+
opal_sparkle_js = "#{user_project_path}/build/js/opal/opal_sparkle.js"
|
136
|
+
opal_sparkle_content = File.open(opal_sparkle_js).read
|
137
|
+
opal_sparkle_content = Uglifier.new.compile(opal_sparkle_content)
|
138
|
+
File.open(opal_sparkle_js, 'w') do |f|
|
139
|
+
f.puts opal_sparkle_content
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def minimize_opal_extensions(user_project_path)
|
144
|
+
atome_opal_extensions_js = "#{user_project_path}/build/js/opal/atome_opal_extensions.js"
|
145
|
+
atome_opal_extensions_content = File.open(atome_opal_extensions_js).read
|
146
|
+
atome_opal_extensions_content = Uglifier.new.compile(atome_opal_extensions_content)
|
147
|
+
File.open(atome_opal_extensions_js, 'w') do |f|
|
148
|
+
f.puts atome_opal_extensions_content
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def minimize_libraries(user_project_path)
|
153
|
+
# minimizing aui
|
154
|
+
minimize_aui(user_project_path)
|
155
|
+
# minimizing opal_browser
|
156
|
+
minimize_browser(user_project_path)
|
157
|
+
# minimizing opal_parser
|
158
|
+
minimize_parser(user_project_path)
|
159
|
+
# minimizing atome_lib
|
160
|
+
minimize_atome_lib(user_project_path)
|
161
|
+
# minimizing atome_lib
|
162
|
+
minimize_sparkle(user_project_path)
|
163
|
+
# minimizing atome_lib
|
164
|
+
minimize_opal_extensions(user_project_path)
|
165
|
+
end
|
166
|
+
|
167
|
+
def minimize_user_code(user_project_path)
|
168
|
+
# minimizing user codes
|
169
|
+
application_js = "#{user_project_path}/build/js/application.js"
|
170
|
+
application_content = File.open(application_js).read
|
171
|
+
application_content = Uglifier.new.compile(application_content)
|
172
|
+
File.open(application_js, 'w') do |f|
|
173
|
+
f.puts application_content
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
task :build_user_code, :user_project_path, :production do |_t, args|
|
178
|
+
user_project_path = args[:user_project_path]
|
179
|
+
production = args[:production]
|
180
|
+
source_code = "#{user_project_path}/application/index.rb"
|
181
|
+
build_user_code(user_project_path, source_code)
|
182
|
+
minimize_user_code(user_project_path) if production == 'production'
|
183
|
+
end
|
184
|
+
|
185
|
+
task :system_builder, :user_project_path, :production do |_t, args|
|
186
|
+
user_project_path = args[:user_project_path]
|
187
|
+
production = args[:production]
|
188
|
+
source_code = '../vendor/assets/application/index.rb'
|
189
|
+
build_common_libraries(user_project_path, production)
|
190
|
+
build_user_code(user_project_path, source_code)
|
191
|
+
|
192
|
+
# TODO: catch and message to user when when there's no force and folder already exist
|
193
|
+
end
|
194
|
+
|
195
|
+
task :system_updater, :user_project_path, :production do |_t, args|
|
196
|
+
user_project_path = args[:user_project_path]
|
197
|
+
production = args[:production]
|
198
|
+
build_common_libraries(user_project_path, production)
|
199
|
+
end
|
200
|
+
|
201
|
+
task default: :run
|
202
|
+
|
203
|
+
def build_libraries(user_project_path, gem_location)
|
204
|
+
build_aui(user_project_path)
|
205
|
+
build_atome_kernel(user_project_path, gem_location)
|
206
|
+
build_opal_browser(user_project_path)
|
207
|
+
build_opal_parser(user_project_path)
|
208
|
+
build_opal_extensions(user_project_path, gem_location)
|
209
|
+
end
|
210
|
+
|
211
|
+
def minimize(user_project_path)
|
212
|
+
minimize_libraries(user_project_path)
|
213
|
+
minimize_user_code(user_project_path)
|
214
|
+
end
|
215
|
+
|
216
|
+
def build_common_libraries(user_project_path, production)
|
217
|
+
gem_location = File.join(File.dirname(__FILE__))
|
218
|
+
copy_assets_files(user_project_path, gem_location)
|
219
|
+
build_libraries(user_project_path, gem_location)
|
220
|
+
minimize(user_project_path) if production == 'production'
|
63
221
|
end
|
64
222
|
|
65
|
-
|
223
|
+
# TODO: integrate pure JS (ruby2js) compilation
|
@@ -0,0 +1,14 @@
|
|
1
|
+
atome
|
2
|
+
-
|
3
|
+
|
4
|
+
<img src="./images/atome.svg" width="100" />
|
5
|
+
|
6
|
+
***Documentation***
|
7
|
+
-
|
8
|
+
|
9
|
+
**[I - What is atome](./framework/what_is_it.md)**
|
10
|
+
|
11
|
+
**[II - How to use it](./tutorials/tutorials.md)**
|
12
|
+
|
13
|
+
**[II - how to enhance](./framework/technical/technical_description.md)**
|
14
|
+
|
Binary file
|
@@ -0,0 +1,179 @@
|
|
1
|
+
|
2
|
+
<span align="right">
|
3
|
+
|
4
|
+
[Main menu](../atome.md)
|
5
|
+
-
|
6
|
+
</span>
|
7
|
+
|
8
|
+
atome explained : the uniq object format
|
9
|
+
-
|
10
|
+
|
11
|
+
# new atome format
|
12
|
+
|
13
|
+
----------------
|
14
|
+
atome structure :
|
15
|
+
id: {hash: {key: : value}
|
16
|
+
aui : {atome: {property: value}
|
17
|
+
|
18
|
+
ex: a_01: {color:{x: 33, y: 69, red: 0.1, green: 0.2, blue: 1, alpha: 1: diffusion: :radial}}
|
19
|
+
|
20
|
+
user can write:
|
21
|
+
a.color(:red)
|
22
|
+
a.red(0.1)
|
23
|
+
a.color(color:{x: 33, y: 69, red: 0.1})
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
an atome is a property ( position, size, type, etc..)
|
28
|
+
|
29
|
+
a single property (atome) can hold multiples properties cf: child property
|
30
|
+
|
31
|
+
b=box({ drag: true, atome_id: :the_box })
|
32
|
+
t=text({ content: "touch me to extract me from the box,\nand attach me to the circle ",y: 99, atome_id: :the_text })
|
33
|
+
grab(:the_box).attach(:the_text)
|
34
|
+
puts b.child # => ["the_text"]
|
35
|
+
|
36
|
+
|
37
|
+
atome's property are mutable even it's type ( useful to display a same atome in different manner, or use the data of the atome as a repository of style, or simply sawp it's functionality while retaining it's properties)
|
38
|
+
|
39
|
+
a single atome can be displayed in different way according it's rendering mode and or it's type.
|
40
|
+
|
41
|
+
EG :
|
42
|
+
|
43
|
+
|
44
|
+
a=image(content: :moto)
|
45
|
+
|
46
|
+
|
47
|
+
<img src="https://github.com/atomecorp/atome/raw/development/www/public/medias/images/moto.png" width="333" />
|
48
|
+
|
49
|
+
a.color(:white) #important else the text xill be transparent
|
50
|
+
a.type(:text)
|
51
|
+
moto
|
52
|
+
|
53
|
+
a.render({mode: :list, list: :property, sort: :alphabetically })
|
54
|
+
<img src="https://github.com/atomecorp/atome/raw/development/documentation/images/list.png" width="400px" />
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
- Anything that define an atome is a property.
|
59
|
+
any atome can contain an other atome or a group of atome as a property ex :
|
60
|
+
|
61
|
+
|
62
|
+
b = box({x: 300, drag: true})
|
63
|
+
image(:logo)
|
64
|
+
c = circle(x: 100)
|
65
|
+
b.insert(c.atome_id)
|
66
|
+
b.text('hello')
|
67
|
+
puts b.child #=> [c, t] (c and t is now a child of b)
|
68
|
+
b.touch do
|
69
|
+
# b children can be treated in one pass
|
70
|
+
# look at child example for more examples
|
71
|
+
b.child.color(:green)
|
72
|
+
end
|
73
|
+
|
74
|
+
Many atome properties can be set using a string or integer, it's a shortcut to set the content property eg :
|
75
|
+
|
76
|
+
text("hello") # equivalent to text({content: "hello"})
|
77
|
+
# or
|
78
|
+
image(:boat) # shortcut for image({content: :boat})
|
79
|
+
|
80
|
+
internally properties are always define using a key-value pair (Hash type) and can be set so :
|
81
|
+
|
82
|
+
text({content: "hello"})
|
83
|
+
|
84
|
+
Hash's values can be a String, an Integer, a hash or an array.
|
85
|
+
|
86
|
+
The atomiser method allow to modifying atome without interpreting/ refreshing the newly set property.
|
87
|
+
in this case the atome need rendered to refresh it's content
|
88
|
+
|
89
|
+
b = box()
|
90
|
+
b.atomiser({ color: :red })
|
91
|
+
b.atomiser({ smooth: 6})
|
92
|
+
|
93
|
+
wait 2 do
|
94
|
+
b.render(true)
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
- Any property can be define using an unique value (passed as a String , Symbole or a numeric value)
|
99
|
+
|
100
|
+
|
101
|
+
a=box({color: :red})
|
102
|
+
a.color(:red)
|
103
|
+
a.set({color: :red})
|
104
|
+
|
105
|
+
- Any property define are store internally as a Hash or an array if the property is define many times
|
106
|
+
|
107
|
+
|
108
|
+
a=box()
|
109
|
+
a.color(:red)
|
110
|
+
puts a.color #=> {color: :red}
|
111
|
+
|
112
|
+
- multiples parameters can be set at once using a hash:
|
113
|
+
|
114
|
+
|
115
|
+
box({x: 96, y: 96, color: :red, blur: 3})
|
116
|
+
|
117
|
+
- an object can be add as/like a property
|
118
|
+
|
119
|
+
|
120
|
+
box({text: :hello})
|
121
|
+
#or
|
122
|
+
b=box(x: 200)
|
123
|
+
b.text("hello")
|
124
|
+
|
125
|
+
- methods can be chained or assigned
|
126
|
+
|
127
|
+
|
128
|
+
b=box(width: 33)
|
129
|
+
b.color(:red).x(96).blur(3)
|
130
|
+
|
131
|
+
#or
|
132
|
+
b=box(width: 33)
|
133
|
+
b.color(:red).x(96).blur(3)
|
134
|
+
c=circle(color: :red)
|
135
|
+
b.color=c.color
|
136
|
+
c.y=b.blur
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
- to set a complex property such as shadow that needs more more than one parameters we have to send a hash to the atome
|
143
|
+
|
144
|
+
please note that any property can potentially have multiples parameters even the simplest one
|
145
|
+
|
146
|
+
# not implemented need a rework
|
147
|
+
a=box()
|
148
|
+
a.set({x: {content: 200, unit: :meters})
|
149
|
+
|
150
|
+
- Any property are stackable (even the simplest one), in this case we used the 'add' method to stack prop. alternatively it's possible to used an array to stack properties
|
151
|
+
|
152
|
+
a simple gradient :
|
153
|
+
|
154
|
+
b=box()
|
155
|
+
b.color([:cyan, :green, :orange, {diffusion: :conic}])
|
156
|
+
|
157
|
+
|
158
|
+
- all properties are treated identically and can be swap at any time.Type mutation is also possible : ex change the type of object from an image to text type
|
159
|
+
|
160
|
+
|
161
|
+
x=image({color: :white, content: :boat })
|
162
|
+
ATOME.wait 2 do
|
163
|
+
x.type(:text) #now the objet is rendered as a text object
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
here some possible definition of an atome
|
169
|
+
|
170
|
+
a=box({color: :red}) # an red box is created
|
171
|
+
a.set(smooth: 9) # the box has rounded corner the view is refreshed
|
172
|
+
a.set({width: 250},true )# the box is now 250px wide the view is forced to refresh
|
173
|
+
a.set({ border: { color: :orange, thickness: 7, pattern: :solid } })
|
174
|
+
|
175
|
+
**[- Architecture of the folders](./folder_architecture.md)**
|
176
|
+
-
|
177
|
+
|
178
|
+
**[- logic and datas flows](./datas_flows.md)**
|
179
|
+
-
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<span align="right">
|
2
|
+
|
3
|
+
[Main menu](../atome.md)
|
4
|
+
-
|
5
|
+
</span>
|
6
|
+
<span align="left">
|
7
|
+
|
8
|
+
[back](./what_is_it.md)
|
9
|
+
|
10
|
+
</span>
|
11
|
+
|
12
|
+
What's in the box
|
13
|
+
-
|
14
|
+
|
15
|
+
|
16
|
+
**The atome framework is based on the Cordova framework, plus the additional following features :**
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
- a ruby interpreter
|
21
|
+
|
22
|
+
- a web server mode
|
23
|
+
|
24
|
+
- a simple modular and consistent syntax to build your own environment and tools
|
25
|
+
|
26
|
+
|
27
|
+
- video recording playback and streaming
|
28
|
+
|
29
|
+
- video conference
|
30
|
+
|
31
|
+
- realtime collaborative tool
|
32
|
+
|
33
|
+
- a bootable option for embedded applications on both AMD64 and ARM
|
34
|
+
|
35
|
+
- a full set of APIs covering graphics, audio, file, database and multimedia facilities (animation, interactive, drawing)
|
36
|
+
|
37
|
+
- everything in atome can be scriptable even at run time
|
38
|
+
|
39
|
+
- a native 3D engine rendering (the 3D engine is currently based on Urho3D, more frameworks may be supported in the future).
|
40
|
+
|
41
|
+
- a low latency audio system based on QAudio framework
|
42
|
+
|
43
|
+
- the atome object concept, that'll allow any to alter any object tools whatever it's type (unique Object concept)
|
44
|
+
|
45
|
+
- modular set of tools to create and modify atomes
|
46
|
+
|
47
|
+
- All tools alteration are non destructive
|
48
|
+
|
49
|
+
- atome alterations are logged so it's possible to restore an atome at any point of it's life
|
50
|
+
|
51
|
+
- expendable API system
|
52
|
+
|
53
|
+
- and more ...
|