atome 0.1.00009 → 0.4.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +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 ...
|