atome 0.4.7.0 → 0.5.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +7 -4
- data/Rakefile +22 -13
- data/app_builder_helpers/Rakefile +63 -21
- data/exe/atome +91 -45
- data/lib/atome/atome.rb +129 -0
- data/lib/atome/extensions/atome.rb +41 -0
- data/lib/atome/{kernel/helpers → extensions}/geolocation.rb +0 -0
- data/lib/atome/{kernel/helpers → extensions}/ping.rb +0 -0
- data/lib/atome/{kernel/helpers → extensions}/sha.rb +3 -1
- data/lib/atome/genesis/generators/atome.rb +38 -0
- data/lib/atome/{renderers/headless/properties/generator.rb → genesis/generators/communication.rb} +2 -0
- data/lib/atome/genesis/generators/effect.rb +6 -0
- data/lib/atome/genesis/generators/event.rb +10 -0
- data/lib/atome/genesis/generators/geometry.rb +6 -0
- data/lib/atome/genesis/generators/identity.rb +29 -0
- data/lib/atome/genesis/generators/material.rb +10 -0
- data/lib/atome/genesis/generators/spatial.rb +13 -0
- data/lib/atome/genesis/generators/utility.rb +31 -0
- data/lib/atome/genesis/genesis.rb +46 -0
- data/lib/atome/genesis/sparkle.rb +58 -0
- data/lib/atome/helpers/callbacks.rb +12 -0
- data/lib/atome/helpers/color_helper/color/cmyk.rb +263 -0
- data/lib/atome/helpers/color_helper/color/css.rb +7 -0
- data/lib/atome/helpers/color_helper/color/grayscale.rb +197 -0
- data/lib/atome/helpers/color_helper/color/hsl.rb +240 -0
- data/lib/atome/helpers/color_helper/color/palette/adobecolor.rb +260 -0
- data/lib/atome/helpers/color_helper/color/palette/gimp.rb +104 -0
- data/lib/atome/helpers/color_helper/color/palette/monocontrast.rb +164 -0
- data/lib/atome/helpers/color_helper/color/palette.rb +4 -0
- data/lib/atome/helpers/color_helper/color/rgb/colors.rb +167 -0
- data/lib/atome/helpers/color_helper/color/rgb/contrast.rb +57 -0
- data/lib/atome/helpers/color_helper/color/rgb/metallic.rb +28 -0
- data/lib/atome/helpers/color_helper/color/rgb.rb +715 -0
- data/lib/atome/helpers/color_helper/color/yiq.rb +62 -0
- data/lib/atome/helpers/color_helper/color.rb +196 -0
- data/lib/atome/helpers/essentials.rb +42 -0
- data/lib/atome/helpers/sanitizer.rb +23 -0
- data/lib/atome/helpers/utilities.rb +54 -0
- data/lib/atome/kernel/essentials.rb +23 -0
- data/lib/atome/kernel/universe.rb +92 -26
- data/lib/atome/presets/atome.rb +88 -0
- data/lib/atome/processors/utilities.rb +10 -0
- data/lib/atome/renderers/browser/atome.rb +108 -0
- data/lib/atome/renderers/browser/browser.rb +225 -0
- data/lib/atome/renderers/browser/effect.rb +23 -0
- data/lib/atome/renderers/browser/event.rb +37 -0
- data/lib/atome/renderers/browser/geometry.rb +11 -0
- data/lib/atome/renderers/browser/identity.rb +24 -0
- data/lib/atome/renderers/browser/material.rb +43 -0
- data/lib/atome/renderers/{opal → browser}/opal_browser.rb +0 -2
- data/lib/atome/renderers/browser/spatial.rb +23 -0
- data/lib/atome/renderers/browser/utility.rb +39 -0
- data/lib/atome/renderers/headless/headless.rb +10 -0
- data/lib/atome/renderers/headless/utility.rb +6 -0
- data/lib/atome/renderers/html/atome.rb +47 -0
- data/lib/atome/renderers/html/effect.rb +19 -0
- data/lib/atome/renderers/html/event.rb +9 -0
- data/lib/atome/renderers/html/geometry.rb +11 -0
- data/lib/atome/renderers/html/html.rb +42 -0
- data/lib/atome/renderers/html/identity.rb +14 -0
- data/lib/atome/renderers/html/opal_browser.rb +6 -0
- data/lib/atome/renderers/html/spatial.rb +28 -0
- data/lib/atome/renderers/html/utility.rb +17 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +1 -1
- data/lib/atome/renderers/opal/extensions/atome.rb +29 -0
- data/lib/atome/renderers/opal/opal.rb +4 -0
- data/lib/atome/renderers/renderer.rb +7 -7
- data/lib/atome/renderers/server/server.rb +10 -0
- data/lib/atome/renderers/server/utility.rb +6 -0
- data/lib/atome/version.rb +1 -2
- data/lib/atome.rb +25 -44
- data/vendor/assets/application/index.rb +3 -1
- data/vendor/assets/application/required_example.rb +1 -0
- data/vendor/assets/{build/js/application.js → aui.rb} +0 -0
- data/vendor/assets/build/css/style.css +51 -0
- data/vendor/assets/build/index.html +7 -8
- data/vendor/assets/build/js/atome/atome.js +141 -68
- data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/{animation.rb → _animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +1 -0
- data/vendor/assets/build/medias/rubies/examples/atome.new.rb +13 -10
- data/vendor/assets/build/medias/rubies/examples/auto_height.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/blur.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/box.rb +12 -8
- data/vendor/assets/build/medias/rubies/examples/circle.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/clear.rb +2 -1
- data/vendor/assets/build/medias/rubies/examples/code.rb +10 -4
- data/vendor/assets/build/medias/rubies/examples/color.rb +47 -8
- data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/delete.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/element.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/grab.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +7 -2
- data/vendor/assets/build/medias/rubies/examples/id.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
- data/vendor/assets/build/medias/rubies/examples/left.rb +7 -2
- data/vendor/assets/build/medias/rubies/examples/link.rb +12 -3
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/on.rb +11 -7
- data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
- data/vendor/assets/build/medias/rubies/examples/read.rb +6 -2
- data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/repeat.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +3 -1
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -11
- data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
- data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
- data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
- data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
- data/vendor/assets/server/atome_server.rb +3 -5
- metadata +76 -164
- data/lib/atome/atome_native_extensions.rb +0 -5
- data/lib/atome/extensions/helper.rb +0 -112
- data/lib/atome/kernel/atome.rb +0 -99
- data/lib/atome/kernel/generators/generator.rb +0 -517
- data/lib/atome/kernel/generators/genesis.rb +0 -277
- data/lib/atome/kernel/generators/sanitizer.rb +0 -73
- data/lib/atome/kernel/generators/shapes.rb +0 -55
- data/lib/atome/kernel/helpers/internal_methods.rb +0 -173
- data/lib/atome/kernel/helpers/utilities.rb +0 -39
- data/lib/atome/kernel/properties/essential.rb +0 -77
- data/lib/atome/kernel/sparkle.rb +0 -38
- data/lib/atome/renderers/opal/properties/generator.rb +0 -1
- data/lib/atome/renderers/server/properties/generator.rb +0 -9
- data/vendor/assets/build/medias/audios/guitar.wav +0 -0
- data/vendor/assets/build/medias/images/beach.jpg +0 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +0 -111
- data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +0 -92
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +0 -20
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +0 -57
- data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +0 -115
- data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +0 -35
- data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +0 -29
- data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +0 -61
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +0 -1
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +0 -37
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +0 -44
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +0 -28
- data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +0 -64
- data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +0 -54
- data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +0 -69
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +0 -47
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +0 -8
- data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +0 -37
- data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +0 -47
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +0 -24
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +0 -15
- data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +0 -31
- data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +0 -19
- data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +0 -11
- data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +0 -30
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +0 -1
- data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +0 -41
- data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +0 -39
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +0 -9
- data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +0 -32
- data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +0 -30
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +0 -7
- data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +0 -109
- data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +0 -6
- data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +0 -3
- data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +0 -33
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +0 -33
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +0 -22
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +0 -26
- data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +0 -27
- data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +0 -46
- data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +0 -29
- data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +0 -23
- data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +0 -21
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +0 -14
- data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +0 -16
- data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +0 -10
- data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'atome/renderers/html/effect'
|
4
|
+
require 'atome/renderers/html/event'
|
5
|
+
require 'atome/renderers/html/geometry'
|
6
|
+
require 'atome/renderers/html/identity'
|
7
|
+
require 'atome/renderers/html/spatial'
|
8
|
+
require 'atome/renderers/html/atome'
|
9
|
+
require 'atome/renderers/html/utility'
|
10
|
+
|
11
|
+
# #html object
|
12
|
+
class Html
|
13
|
+
def initialize
|
14
|
+
html = `document.createElement("div")`
|
15
|
+
`document.body.appendChild(#{html})`
|
16
|
+
`document.body.appendChild(#{html})`
|
17
|
+
@html = html
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_class(class_to_add)
|
21
|
+
`#{@html}.classList.add(#{class_to_add})`
|
22
|
+
end
|
23
|
+
|
24
|
+
def attr(attribute, value)
|
25
|
+
`#{@html}.setAttribute(#{attribute}, #{value})`
|
26
|
+
end
|
27
|
+
|
28
|
+
def style
|
29
|
+
# `#{@html}.style`
|
30
|
+
end
|
31
|
+
def append_shape(parent)
|
32
|
+
parent_found = `document.getElementById(#{parent})`
|
33
|
+
parent_found
|
34
|
+
`#{parent_found}.appendChild(#{@html})`
|
35
|
+
end
|
36
|
+
def append_color(parent)
|
37
|
+
alert "color : #{parent.class}"
|
38
|
+
end
|
39
|
+
def append_to(_node)
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:html_type) do |params|
|
6
|
+
send("html_#{params}", user_proc)
|
7
|
+
end
|
8
|
+
|
9
|
+
generator.build_render_method(:html_parents) do |parents_found|
|
10
|
+
type_found = @atome[:type]
|
11
|
+
parents_found.each do |parent_found|
|
12
|
+
@html_object.send("append_#{type_found}", parent_found)
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
# generator.build_render_method(:html_left) do |_value, user_proc|
|
6
|
+
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
7
|
+
# end
|
8
|
+
#
|
9
|
+
# generator.build_option(:pre_get_left) do
|
10
|
+
# user_proc = @user_proc
|
11
|
+
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
12
|
+
# end
|
13
|
+
|
14
|
+
generator.build_render_method(:html_left) do |value, _user_proc|
|
15
|
+
@html_object.style[:left] = "#{value}px" unless @html_type == :style
|
16
|
+
end
|
17
|
+
|
18
|
+
generator.build_render_method(:html_right) do |value, _user_proc|
|
19
|
+
@html_object.style[:right] = "#{value}px" unless @html_type == :style
|
20
|
+
end
|
21
|
+
|
22
|
+
generator.build_render_method(:html_top) do |value, _user_proc|
|
23
|
+
@html_object.style[:top] = "#{value}px" unless @html_type == :style
|
24
|
+
end
|
25
|
+
|
26
|
+
generator.build_render_method(:html_bottom) do |value, _user_proc|
|
27
|
+
@html_object.style[:bottom] = "#{value}px" unless @html_type == :style
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
generator.build_render_method(:html_bloc)
|
5
|
+
generator.build_render_method(:html_id)
|
6
|
+
generator.build_render_method(:html_render)
|
7
|
+
generator.build_render_method(:html_delete) do
|
8
|
+
html_object&.remove
|
9
|
+
end
|
10
|
+
generator.build_render_method(:html_clear) do
|
11
|
+
@atome[:children].each do |child_found|
|
12
|
+
grab(child_found).html_object&.remove
|
13
|
+
end
|
14
|
+
children([])
|
15
|
+
end
|
16
|
+
generator.build_render_method(:html_schedule)
|
17
|
+
generator.build_render_method(:html_reader)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
def wait(seconds, &proc)
|
4
|
+
if seconds == :kill
|
5
|
+
abort
|
6
|
+
else
|
7
|
+
seconds = seconds.to_f
|
8
|
+
after seconds, &proc if proc.instance_of?(Proc)
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
def repeater(counter, proc)
|
14
|
+
instance_exec(counter, &proc) if proc.is_a?(Proc)
|
15
|
+
end
|
16
|
+
|
17
|
+
def repeat(delay = 1, repeat = 0, &proc)
|
18
|
+
# below we exec the call a first time
|
19
|
+
instance_exec(0, &proc) if proc.is_a?(Proc)
|
20
|
+
# as we exec one time above we subtract one below
|
21
|
+
`
|
22
|
+
var x = 1
|
23
|
+
var intervalID = window.setInterval(function(){ Opal.Object.$repeater(x,#{proc})
|
24
|
+
if (++x ===#{repeat} ) {
|
25
|
+
window.clearInterval(intervalID);
|
26
|
+
}}, #{delay * 1000})
|
27
|
+
`
|
28
|
+
end
|
29
|
+
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
4
|
-
|
5
|
-
|
3
|
+
# Rendering method here
|
4
|
+
class Atome
|
5
|
+
private
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
send(
|
7
|
+
def rendering(element_to_render, content, &user_proc)
|
8
|
+
render_engines = @atome[:renderers]
|
9
|
+
render_engines.each do |render_engine|
|
10
|
+
send("#{render_engine}_#{element_to_render}", content, &user_proc)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'atome/renderers/server/effect'
|
4
|
+
# require 'atome/renderers/server/event'
|
5
|
+
# require 'atome/renderers/server/geometry'
|
6
|
+
# require 'atome/renderers/server/identity'
|
7
|
+
# require 'atome/renderers/server/material'
|
8
|
+
# require 'atome/renderers/server/spatial'
|
9
|
+
# require 'atome/renderers/server/atome'
|
10
|
+
require 'atome/renderers/server/utility'
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -2,49 +2,30 @@
|
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'atome/version'
|
5
|
-
|
6
|
-
|
7
|
-
def eval_protection
|
8
|
-
binding
|
9
|
-
end
|
10
|
-
|
11
|
-
# FIXME: atome run doesnt run the code
|
12
|
-
if RUBY_ENGINE.downcase != 'opal'
|
13
|
-
# FIXME: find a better and more elegant solution to avoid opal to treat require
|
14
|
-
# FIXME: replace eval with a safer option
|
15
|
-
eval "require 'atome/atome_native_extensions'", eval_protection, __FILE__, __LINE__
|
16
|
-
eval "require 'color'", eval_protection, __FILE__, __LINE__
|
17
|
-
end
|
18
|
-
|
5
|
+
require 'atome/genesis/genesis'
|
6
|
+
require 'atome/kernel/essentials'
|
19
7
|
require 'atome/kernel/universe'
|
20
|
-
require 'atome/
|
21
|
-
require 'atome/kernel/helpers/internal_methods'
|
22
|
-
require 'atome/kernel/helpers/utilities'
|
8
|
+
require 'atome/helpers/essentials'
|
23
9
|
require 'atome/renderers/renderer'
|
24
|
-
require 'atome/
|
25
|
-
require 'atome/
|
26
|
-
require 'atome/
|
27
|
-
require 'atome/
|
28
|
-
require 'atome/
|
29
|
-
require 'atome/
|
30
|
-
require 'atome/
|
31
|
-
require 'atome/
|
32
|
-
require 'atome/
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
require 'atome/
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
# TODO: separate the audio in the video
|
47
|
-
# TODO: add mute to video
|
48
|
-
|
49
|
-
|
50
|
-
|
10
|
+
require 'atome/helpers/color_helper/color'
|
11
|
+
require 'atome/atome'
|
12
|
+
require 'atome/processors/utilities'
|
13
|
+
require 'atome/helpers/utilities'
|
14
|
+
require 'atome/helpers/callbacks'
|
15
|
+
require 'atome/genesis/generators/atome'
|
16
|
+
require 'atome/presets/atome'
|
17
|
+
require 'atome/genesis/generators/communication'
|
18
|
+
require 'atome/genesis/generators/effect'
|
19
|
+
require 'atome/genesis/generators/event'
|
20
|
+
require 'atome/genesis/generators/geometry'
|
21
|
+
require 'atome/genesis/generators/identity'
|
22
|
+
require 'atome/genesis/generators/material'
|
23
|
+
require 'atome/genesis/generators/spatial'
|
24
|
+
require 'atome/genesis/generators/utility'
|
25
|
+
require 'atome/renderers/browser/browser'
|
26
|
+
require 'atome/renderers/html/html'
|
27
|
+
require 'atome/renderers/headless/headless'
|
28
|
+
require 'atome/renderers/server/server'
|
29
|
+
require 'atome/extensions/atome'
|
30
|
+
require 'atome/helpers/sanitizer'
|
31
|
+
require 'atome/genesis/sparkle'
|
@@ -0,0 +1 @@
|
|
1
|
+
puts "required file is run"
|
File without changes
|
@@ -68,3 +68,54 @@ html, body {
|
|
68
68
|
-webkit-background-clip: text;
|
69
69
|
}
|
70
70
|
|
71
|
+
.vertical-center {
|
72
|
+
/*font-size: 18px;*/
|
73
|
+
position: absolute;
|
74
|
+
top: 50%;
|
75
|
+
-ms-transform: translateY(-50%);
|
76
|
+
/*transform: translateY(calc(50% - 200px));*/
|
77
|
+
}
|
78
|
+
|
79
|
+
.center {
|
80
|
+
/*font-size: 18px;*/
|
81
|
+
position: absolute;
|
82
|
+
top: 50%;
|
83
|
+
left: 50%;
|
84
|
+
-ms-transform: translateY(-50%);
|
85
|
+
/* #calc is width -border*2 */
|
86
|
+
/*transform: translateX(calc(50% - 200px)) translateY(calc(50% - 200px));*/
|
87
|
+
}
|
88
|
+
|
89
|
+
.horizontal-center {
|
90
|
+
position: absolute;
|
91
|
+
left: 50%;
|
92
|
+
-ms-transform: translateY(-50%);
|
93
|
+
/*transform: translateX(calc(50% - 200px));*/
|
94
|
+
}
|
95
|
+
|
96
|
+
.e_align_h_left {
|
97
|
+
text-align: left;
|
98
|
+
}
|
99
|
+
|
100
|
+
.e_align_h_right {
|
101
|
+
text-align: right;
|
102
|
+
}
|
103
|
+
|
104
|
+
.e_align_h_center {
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
|
108
|
+
.el_align_h {
|
109
|
+
text-align: justify;
|
110
|
+
}
|
111
|
+
|
112
|
+
.el_align_v {
|
113
|
+
display: flex;
|
114
|
+
align-items: center;
|
115
|
+
}
|
116
|
+
|
117
|
+
|
118
|
+
.el_align_v_bottom {
|
119
|
+
display: flex;
|
120
|
+
align-items: flex-end;
|
121
|
+
}
|
@@ -3,29 +3,28 @@
|
|
3
3
|
<head>
|
4
4
|
<meta name='viewport' content='initial-scale=1, width=device-width, viewport-fit=cover'>
|
5
5
|
<meta charset='UTF-8'/>
|
6
|
-
<meta Cross-Origin-Opener-Policy= "same-origin"/>
|
7
|
-
<meta Cross-Origin-Embedder-Policy= "require-corp"/>
|
8
6
|
<meta name="format-detection" content="telephone=no">
|
9
7
|
<meta name="msapplication-tap-highlight" content="no">
|
10
|
-
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
|
11
8
|
<link type="text/css" rel="stylesheet" href="css/style.css">
|
12
|
-
<script type="text/javascript" src="js/third_parties/fabric.min.js"></script>
|
13
|
-
<script type="text/javascript" src="js/third_parties/three.min.js"></script>
|
14
9
|
<script type="text/javascript" src="js/third_parties/interact.min.js"></script>
|
15
10
|
<script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
|
16
11
|
<script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
|
17
12
|
<script type="text/javascript" src="js/third_parties/ping.min.js"></script>
|
18
13
|
<script src='js/third_parties/w3color.js'></script>
|
14
|
+
<script src='js/opal/opal.js'></script>
|
19
15
|
<script src='js/opal/opal_browser.js'></script>
|
20
|
-
|
16
|
+
<!-- TODO: we line below is commented when using stand alone mode and loaded on demand when using server mode-->
|
17
|
+
<!-- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>-->
|
18
|
+
<!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
|
19
|
+
<!-- <script src='js/opal/opal_parser.js'></script>-->
|
21
20
|
<script src='js/aui.js'></script>
|
22
21
|
<script src='js/atome/atome.js' defer></script>
|
23
22
|
<script src='js/atome/kernel.js' defer></script>
|
24
23
|
<script src='js/opal/atome_opal_extensions.js'></script>
|
25
24
|
<title>atome</title>
|
26
|
-
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
25
|
+
<link rel="icon" type="image/x-icon" href="./favicon.ico">
|
27
26
|
</head>
|
28
|
-
<body id='user_view' class='atome' oncontextmenu="return false;"
|
27
|
+
<body id='user_view' class='atome' oncontextmenu="return false;">
|
29
28
|
</body>
|
30
29
|
<script src='js/application.js' defer></script>
|
31
30
|
</html>
|
@@ -1,82 +1,155 @@
|
|
1
|
-
class AtomeDrag {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
//TODO: optimise this passing the proc to the drag callback
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
}
|
1
|
+
// class AtomeDrag {
|
2
|
+
// constructor() {
|
3
|
+
// }
|
4
|
+
//
|
5
|
+
// drag(atome_drag_id) {
|
6
|
+
// // target elements with the "draggable" class
|
7
|
+
// self.current_obj = Opal.Utilities.$grab(atome_drag_id)
|
8
|
+
// interact('.'+atome_drag_id)
|
9
|
+
// .draggable({
|
10
|
+
// // enable inertial throwing
|
11
|
+
// startAxis: 'x',
|
12
|
+
// lockAxis: 'x',
|
13
|
+
// // lockAxis: ''+lock_axis,
|
14
|
+
// inertia: true,
|
15
|
+
// // keep the element within the area of it's parent
|
16
|
+
// modifiers: [
|
17
|
+
// interact.modifiers.restrictRect({
|
18
|
+
// restriction: 'parent',
|
19
|
+
// endOnly: true
|
20
|
+
// })
|
21
|
+
// ],
|
22
|
+
// // enable autoScroll
|
23
|
+
// autoScroll: true,
|
24
|
+
//
|
25
|
+
// listeners: {
|
26
|
+
// // call this function on every dragmove event
|
27
|
+
//
|
28
|
+
// move: dragMoveListener,
|
29
|
+
// start(event) {
|
30
|
+
// //TODO: optimise this passing the proc to the drag callback
|
31
|
+
// // lets get the current atome Object
|
32
|
+
// // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
|
33
|
+
// // now get the grab proc
|
34
|
+
// self.proc_meth = current_obj.bloc
|
35
|
+
// },
|
36
|
+
// // call this function on every dragend event
|
37
|
+
// end(event) {
|
38
|
+
// }
|
39
|
+
// }
|
40
|
+
// })
|
41
|
+
//
|
42
|
+
// function dragMoveListener(event) {
|
43
|
+
// const target = event.target
|
44
|
+
// // the code below can be conditioned to receive the drag event without moving the object
|
45
|
+
// // keep the dragged position in the data-x/data-y attributes
|
46
|
+
// const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
|
47
|
+
// const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
|
48
|
+
// // translate the element
|
49
|
+
// target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
|
50
|
+
// // update the position attributes
|
51
|
+
// target.setAttribute('data-x', x)
|
52
|
+
// target.setAttribute('data-y', y)
|
53
|
+
// // CallBack here
|
54
|
+
// self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
|
55
|
+
// }
|
56
|
+
// }
|
57
|
+
//
|
58
|
+
// }
|
60
59
|
|
61
60
|
// Usage:
|
62
61
|
// let atomeDrag = new AtomeDrag();
|
63
62
|
// atomeDrag.drag('atome_id', 'options');
|
63
|
+
const Atomeanimation = {}
|
64
64
|
|
65
65
|
|
66
|
-
class Atomeanimation {
|
67
|
-
|
68
|
-
|
69
|
-
}
|
70
66
|
|
71
67
|
// TODO: put in a class
|
72
68
|
|
69
|
+
|
73
70
|
const atome = {
|
74
|
-
jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
|
71
|
+
jsSchedule: function (years, months, days, hours, minutes, seconds, atome, proc) {
|
75
72
|
const now = new Date();
|
76
|
-
const
|
77
|
-
const diffTime = Math.abs(
|
73
|
+
const formatDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
74
|
+
const diffTime = Math.abs(formatDate - now);
|
78
75
|
setTimeout(function () {
|
79
|
-
|
76
|
+
atome.$schedule_callback(proc);
|
80
77
|
}, diffTime);
|
78
|
+
},
|
79
|
+
jsReader: function (file, atome, proc) {
|
80
|
+
fetch('medias/' + file)
|
81
|
+
.then(response => response.text())
|
82
|
+
.then(text => atome.$read_callback(text, proc))
|
83
|
+
},
|
84
|
+
js_Fullscreen: function (atome_id){
|
85
|
+
let elem = document.getElementById(atome_id)
|
86
|
+
if (elem.requestFullscreen) {
|
87
|
+
elem.requestFullscreen();
|
88
|
+
} else if (elem.webkitRequestFullscreen) { /* Safari */
|
89
|
+
elem.webkitEnterFullscreen();
|
90
|
+
} else if (elem.msRequestFullscreen) { /* IE11 */
|
91
|
+
elem.msRequestFullscreen();
|
92
|
+
}
|
93
|
+
|
81
94
|
}
|
82
|
-
|
95
|
+
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
// example ruby equivalent in js //
|
100
|
+
Opal.queue(function (Opal) {/* Generated by Opal 1.6.0 */
|
101
|
+
const $klass = Opal.klass, $defs = Opal.defs, $def = Opal.def;
|
102
|
+
// The line below create the AtomicJS cons to simplify access to js object from ruby
|
103
|
+
|
104
|
+
// var $const_set = Opal.const_set, $nesting = [], nil = Opal.nil;
|
105
|
+
// return $const_set($nesting[0], 'AtomicJS', atome)
|
106
|
+
|
107
|
+
(function ($base, $super) {
|
108
|
+
const self = $klass($base, $super, 'Atome_html');
|
109
|
+
$def(self, '$initialize', function $$initialize(val) {
|
110
|
+
// Init code below
|
111
|
+
}, 1);
|
112
|
+
|
113
|
+
$defs(self, '$check_this', function $$check_this(val) {
|
114
|
+
// getter code below
|
115
|
+
return (val);
|
116
|
+
}, 0);
|
117
|
+
|
118
|
+
$def(self, '$way', function $way() {
|
119
|
+
// getter code below
|
120
|
+
return (self.my_var);
|
121
|
+
}, 0);
|
122
|
+
|
123
|
+
return $def(self, '$way=', function $way(val) {
|
124
|
+
//self method example
|
125
|
+
return (self.my_var = val);
|
126
|
+
}, 0);
|
127
|
+
|
128
|
+
|
129
|
+
})();
|
130
|
+
|
131
|
+
// new class below
|
132
|
+
return (function ($base, $super) {
|
133
|
+
const self = $klass($base, $super, 'Atome');
|
134
|
+
|
135
|
+
$defs(self, '$verif', function $$verif(val) {
|
136
|
+
//self method example
|
137
|
+
return (val);
|
138
|
+
}, 0);
|
139
|
+
|
140
|
+
$def(self, '$new_method', function $way() {
|
141
|
+
// getter code below
|
142
|
+
return (self.new_method);
|
143
|
+
}, 0);
|
144
|
+
|
145
|
+
|
146
|
+
return $def(self, '$new_method=', function $way(val) {
|
147
|
+
//setter code below
|
148
|
+
return (self.atome = val);
|
149
|
+
}, 0);
|
150
|
+
|
151
|
+
})();
|
152
|
+
});
|
153
|
+
|
154
|
+
|
155
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Text in object
|
4
|
+
a=Atome.new(code: { type: :code, renderers: [:headless], parents: [], children: [] }) do |params_found|
|
5
|
+
puts "the param is #{params_found}"
|
6
|
+
end
|
7
|
+
a.run(:super)
|
8
|
+
c=element do |params_found|
|
9
|
+
puts "you want me to print: #{params_found}"
|
10
|
+
text({ data: :hello })
|
11
|
+
end
|
12
|
+
|
13
|
+
c.run('it works')
|
File without changes
|