atome 0.4.7.0 → 0.5.1.1
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_meta_engine.rb +132 -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 +13 -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 +5 -0
- data/lib/atome/genesis/generators/geometry.rb +6 -0
- data/lib/atome/genesis/generators/identity.rb +15 -0
- data/lib/atome/genesis/generators/material.rb +10 -0
- data/lib/atome/genesis/generators/spatial.rb +12 -0
- data/lib/atome/genesis/generators/utility.rb +14 -0
- data/lib/atome/genesis/genesis.rb +51 -0
- data/lib/atome/genesis/sparkle.rb +58 -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 +42 -0
- data/lib/atome/helpers/utilities.rb +57 -0
- data/lib/atome/kernel/essentials.rb +30 -0
- data/lib/atome/kernel/universe.rb +75 -26
- data/lib/atome/presets/atome.rb +66 -0
- data/lib/atome/processors/utilities.rb +10 -0
- data/lib/atome/renderers/browser/atome.rb +95 -0
- data/lib/atome/renderers/browser/browser.rb +158 -0
- data/lib/atome/renderers/browser/effect.rb +23 -0
- data/lib/atome/renderers/browser/event.rb +9 -0
- data/lib/atome/renderers/browser/geometry.rb +11 -0
- data/lib/atome/renderers/browser/identity.rb +20 -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 +22 -0
- data/lib/atome/renderers/browser/utility.rb +26 -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 +15 -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/version.rb +1 -2
- data/lib/atome.rb +22 -45
- data/vendor/assets/application/index.rb +3 -1
- data/vendor/assets/application/required_example.rb +1 -0
- data/{lib/atome/renderers/headless/headless.rb → vendor/assets/aui.rb} +0 -0
- data/vendor/assets/build/css/style.css +51 -0
- data/vendor/assets/build/index.html +10 -7
- data/vendor/assets/build/js/atome/atome.js +61 -61
- data/{lib/atome/renderers/server/server.rb → vendor/assets/build/medias/rubies/examples/_animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/_code.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/_id.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/_link.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/{on.rb → _on.rb} +3 -1
- data/vendor/assets/build/medias/rubies/examples/{read.rb → _read.rb} +2 -0
- data/vendor/assets/build/medias/rubies/examples/_refresh.rb +9 -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 +15 -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/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/drag.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/element.rb +6 -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 +2 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +6 -2
- data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/parent.rb +7 -5
- 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/schedule.rb +0 -4
- data/vendor/assets/build/medias/rubies/examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +21 -7
- data/vendor/assets/build/medias/rubies/examples/touch.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +2 -2
- data/vendor/assets/build/medias/rubies/examples/web.rb +2 -2
- data/vendor/assets/server/atome_server.rb +3 -5
- metadata +74 -174
- 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/renderer.rb +0 -13
- data/lib/atome/renderers/server/properties/generator.rb +0 -9
- data/vendor/assets/build/js/application.js +0 -0
- 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/rubies/examples/animation.rb +0 -0
- data/vendor/assets/build/medias/rubies/examples/code.rb +0 -5
- data/vendor/assets/build/medias/rubies/examples/link.rb +0 -11
- data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
- data/vendor/assets/build/medias/videos/lion_king.mp4 +0 -0
- data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
- data/vendor/assets/build/medias/videos/starwars.mov +0 -0
- data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# TODO : remove the DOM const and the parents methods there's just there to satisfy Rubocop
|
4
|
+
# start dummy code
|
5
|
+
DOM = :nil
|
6
|
+
|
7
|
+
def parents(_val) end
|
8
|
+
|
9
|
+
# end dummy code
|
10
|
+
|
11
|
+
generator = Genesis.generator
|
12
|
+
|
13
|
+
generator.build_render_method(:browser_shape) do
|
14
|
+
@browser_type = :div
|
15
|
+
id_found = @atome[:id]
|
16
|
+
DOM do
|
17
|
+
div(id: id_found).atome
|
18
|
+
end.append_to(BrowserHelper.browser_document[:user_view])
|
19
|
+
@browser_object = BrowserHelper.browser_document[id_found]
|
20
|
+
# Render particles below
|
21
|
+
a_render
|
22
|
+
end
|
23
|
+
|
24
|
+
generator.build_render_method(:browser_color) do |_value|
|
25
|
+
@browser_type = :style
|
26
|
+
id_found = @atome[:id]
|
27
|
+
type_found = @atome[:type]
|
28
|
+
# we remove previous unused style tag
|
29
|
+
BrowserHelper.browser_document[id]&.remove
|
30
|
+
red_found = @atome[:red]
|
31
|
+
blue_found = @atome[:blue]
|
32
|
+
green_found = @atome[:green]
|
33
|
+
alpha_found = @atome[:alpha]
|
34
|
+
BrowserHelper.browser_document.head << Browser.DOM("<style atome='#{type_found}'
|
35
|
+
id='#{id_found}'>.#{id_found}{background-color: rgba(#{red_found * 255},
|
36
|
+
#{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
|
37
|
+
# TODO/ use the code below to modify the style tag
|
38
|
+
@browser_object = BrowserHelper.browser_document[id_found]
|
39
|
+
# now we just have to attach the color atome
|
40
|
+
parents(@atome[:parents])
|
41
|
+
children(@atome[:children])
|
42
|
+
end
|
43
|
+
|
44
|
+
generator.build_render_method(:browser_shadow) do |_value|
|
45
|
+
@browser_type = :style
|
46
|
+
id_found = @atome[:id]
|
47
|
+
type_found = @atome[:type]
|
48
|
+
# we remove previous unused style tag
|
49
|
+
BrowserHelper.browser_document[id]&.remove
|
50
|
+
red_found = @atome[:red]
|
51
|
+
blue_found = @atome[:blue]
|
52
|
+
green_found = @atome[:green]
|
53
|
+
alpha_found = @atome[:alpha]
|
54
|
+
blur = @atome[:blur]
|
55
|
+
left = @atome[:left]
|
56
|
+
top = @atome[:top]
|
57
|
+
inset = @atome[:direction]
|
58
|
+
|
59
|
+
BrowserHelper.browser_document.head << Browser.DOM("<style atome='#{type_found}'
|
60
|
+
id='#{id_found}'>.#{id_found}{box-shadow: #{left}px #{top}px #{blur}px #{inset} rgba(#{red_found * 255},
|
61
|
+
#{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
|
62
|
+
# TODO/ use the code below to modify the style tag
|
63
|
+
@browser_object = BrowserHelper.browser_document[id_found]
|
64
|
+
end
|
65
|
+
|
66
|
+
generator.build_render_method(:browser_image) do |_user_prc|
|
67
|
+
@browser_type = :div
|
68
|
+
id_found = id
|
69
|
+
DOM do
|
70
|
+
img({ id: id_found }).atome
|
71
|
+
end.append_to(BrowserHelper.browser_document[:user_view])
|
72
|
+
@browser_object = BrowserHelper.browser_document[id_found]
|
73
|
+
# Render particles below
|
74
|
+
a_render
|
75
|
+
end
|
76
|
+
|
77
|
+
generator.build_render_method(:browser_video) do |_value, _user_proc|
|
78
|
+
# @browser_type = :div
|
79
|
+
# id_found = id
|
80
|
+
# DOM do
|
81
|
+
# video({ id: id_found, autoplay: true, loop: false, muted: true }).atome
|
82
|
+
# end.append_to(BrowserHelper.browser_document[:user_view])
|
83
|
+
# @browser_object = BrowserHelper.browser_document[id_found]
|
84
|
+
end
|
85
|
+
|
86
|
+
generator.build_render_method(:browser_text) do |_value, _user_proc|
|
87
|
+
id_found = id
|
88
|
+
DOM do
|
89
|
+
div(id: id_found).atome.text
|
90
|
+
end.append_to(BrowserHelper.browser_document[:user_view])
|
91
|
+
@browser_object = BrowserHelper.browser_document[id_found]
|
92
|
+
@browser_type = :div
|
93
|
+
# Render particles below
|
94
|
+
a_render
|
95
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'atome/renderers/browser/effect'
|
4
|
+
require 'atome/renderers/browser/event'
|
5
|
+
require 'atome/renderers/browser/geometry'
|
6
|
+
require 'atome/renderers/browser/identity'
|
7
|
+
require 'atome/renderers/browser/material'
|
8
|
+
require 'atome/renderers/browser/spatial'
|
9
|
+
require 'atome/renderers/browser/atome'
|
10
|
+
require 'atome/renderers/browser/utility'
|
11
|
+
|
12
|
+
class Atome
|
13
|
+
attr_accessor :browser_object
|
14
|
+
end
|
15
|
+
|
16
|
+
# for opal rendering
|
17
|
+
class BrowserHelper
|
18
|
+
def self.browser_document
|
19
|
+
# Work because of the patched versioo of opal-browser(0.39)
|
20
|
+
Browser.window
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.browser_attach_div(parents, html_object, _atome)
|
24
|
+
html_object.append_to(browser_document[parents])
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.browser_attach_style(parents, _html_object, atome)
|
28
|
+
browser_document[parents].add_class(atome[:id])
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.browser_blur_style(_browser_object, value, atome)
|
32
|
+
b_left = "#{atome[:left]}px"
|
33
|
+
b_top = "#{atome[:top]}px"
|
34
|
+
b_blur = "#{atome[:blur] = value}px"
|
35
|
+
b_red = atome[:red] * 255
|
36
|
+
b_green = atome[:green] * 255
|
37
|
+
b_blue = (atome[:blue]) * 255
|
38
|
+
b_direction = atome[:direction]
|
39
|
+
b_alpha = atome[:alpha]
|
40
|
+
|
41
|
+
shadow_updated = "#{b_left} #{b_top} #{b_blur} rgba(#{b_red}, #{b_green}, #{b_blue}, #{b_alpha}) #{b_direction}"
|
42
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.browser_blur_div(browser_object, value, _atome)
|
46
|
+
browser_object.style[:filter] = "blur(#{value}px)"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def browser_colorize_color(color_updated, atome)
|
51
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
|
52
|
+
end
|
53
|
+
|
54
|
+
def browser_colorize_shadow(color_updated, atome)
|
55
|
+
left = atome[:left]
|
56
|
+
top = atome[:top]
|
57
|
+
blur = atome[:blur]
|
58
|
+
direction = atome[:direction]
|
59
|
+
shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
|
60
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
61
|
+
end
|
62
|
+
|
63
|
+
def browser_left_shape(value, browser_object, _atome)
|
64
|
+
browser_object.style[:left] = "#{value}px"
|
65
|
+
end
|
66
|
+
|
67
|
+
def browser_right_shape(value, browser_object, _atome)
|
68
|
+
browser_object.style[:right] = "#{value}px"
|
69
|
+
end
|
70
|
+
|
71
|
+
def browser_top_shape(value, browser_object, _atome)
|
72
|
+
browser_object.style[:top] = "#{value}px"
|
73
|
+
end
|
74
|
+
|
75
|
+
def browser_bottom_shape(value, browser_object, _atome)
|
76
|
+
browser_object.style[:bottom] = "#{value}px"
|
77
|
+
end
|
78
|
+
|
79
|
+
def browser_left_image(value, browser_object, _atome)
|
80
|
+
browser_object.style[:left] = "#{value}px"
|
81
|
+
end
|
82
|
+
|
83
|
+
def browser_right_image(value, browser_object, _atome)
|
84
|
+
browser_object.style[:right] = "#{value}px"
|
85
|
+
end
|
86
|
+
|
87
|
+
def browser_top_image(value, browser_object, _atome)
|
88
|
+
browser_object.style[:top] = "#{value}px"
|
89
|
+
end
|
90
|
+
|
91
|
+
def browser_bottom_image(value, browser_object, _atome)
|
92
|
+
browser_object.style[:bottom] = "#{value}px"
|
93
|
+
end
|
94
|
+
|
95
|
+
def browser_left_shadow(value, _browser_object, atome)
|
96
|
+
ls_left = "#{atome[:left] = value}px"
|
97
|
+
ls_top = "#{atome[:top]}px"
|
98
|
+
ls_blur = "#{atome[:blur]}px"
|
99
|
+
red = atome[:red] * 255
|
100
|
+
green = atome[:green] * 255
|
101
|
+
blue = (atome[:blue]) * 255
|
102
|
+
direction = atome[:direction]
|
103
|
+
alpha = atome[:alpha]
|
104
|
+
|
105
|
+
shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
106
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
107
|
+
end
|
108
|
+
|
109
|
+
def browser_top_shadow(value, _browser_object, atome)
|
110
|
+
rs_left = "#{atome[:left]}px"
|
111
|
+
rs_top = "#{atome[:top] = value}px"
|
112
|
+
rs_blur = "#{atome[:blur]}px"
|
113
|
+
red = atome[:red] * 255
|
114
|
+
green = atome[:green] * 255
|
115
|
+
blue = (atome[:blue]) * 255
|
116
|
+
direction = atome[:direction]
|
117
|
+
alpha = atome[:alpha]
|
118
|
+
|
119
|
+
shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
120
|
+
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
121
|
+
end
|
122
|
+
|
123
|
+
def browser_left_color(_value, _browser_object, _atome)
|
124
|
+
puts 'code to write when implementing gradient'
|
125
|
+
end
|
126
|
+
|
127
|
+
def browser_right_color(_value, _browser_object, _atome)
|
128
|
+
puts 'code to write when implementing gradient'
|
129
|
+
end
|
130
|
+
|
131
|
+
def browser_top_color(_value, _browser_object, _atome)
|
132
|
+
puts 'code to write when implementing gradient'
|
133
|
+
end
|
134
|
+
|
135
|
+
def browser_bottom_color(_value, _browser_object, _atome)
|
136
|
+
puts 'code to write when implementing gradient'
|
137
|
+
end
|
138
|
+
|
139
|
+
# text
|
140
|
+
def browser_left_text(value, browser_object, _atome)
|
141
|
+
browser_object.style[:left] = "#{value}px"
|
142
|
+
end
|
143
|
+
|
144
|
+
def browser_right_text(value, browser_object, _atome)
|
145
|
+
browser_object.style[:right] = "#{value}px"
|
146
|
+
end
|
147
|
+
|
148
|
+
def browser_top_text(value, browser_object, _atome)
|
149
|
+
browser_object.style[:top] = "#{value}px"
|
150
|
+
end
|
151
|
+
|
152
|
+
def browser_bottom_text(value, browser_object, _atome)
|
153
|
+
browser_object.style[:bottom] = "#{value}px"
|
154
|
+
end
|
155
|
+
|
156
|
+
def browser_data_text(value)
|
157
|
+
browser_object.text = value
|
158
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:browser_smooth) do |value|
|
6
|
+
format_params = case value
|
7
|
+
when Array
|
8
|
+
properties = []
|
9
|
+
value.each do |param|
|
10
|
+
properties << "#{param}px"
|
11
|
+
end
|
12
|
+
properties.join(' ').to_s
|
13
|
+
when Integer
|
14
|
+
"#{value}px"
|
15
|
+
else
|
16
|
+
value
|
17
|
+
end
|
18
|
+
@browser_object.style['border-radius'] = format_params
|
19
|
+
end
|
20
|
+
|
21
|
+
generator.build_render_method(:browser_blur) do |value|
|
22
|
+
BrowserHelper.send("browser_blur_#{@browser_type}", @browser_object, value, @atome)
|
23
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:browser_width) do |value|
|
6
|
+
@browser_object.style[:width] = "#{value}px"
|
7
|
+
end
|
8
|
+
|
9
|
+
generator.build_render_method(:browser_height) do |value|
|
10
|
+
@browser_object.style[:height] = "#{value}px"
|
11
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:browser_type) do |params|
|
6
|
+
send("browser_#{params}", user_proc)
|
7
|
+
end
|
8
|
+
|
9
|
+
generator.build_render_method(:browser_parents) do |parents_found|
|
10
|
+
parents_found.each do |parent_found|
|
11
|
+
BrowserHelper.send("browser_attach_#{@browser_type}", parent_found, @browser_object, @atome)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
generator.build_optional_methods(:pre_save_children) do |children_pass|
|
16
|
+
children_pass.each do |child_found|
|
17
|
+
atome_found = grab(child_found)
|
18
|
+
atome_found.parents([@atome[:id]])
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:red) do |value|
|
6
|
+
red = ((@atome[:red] = value) * 255)
|
7
|
+
green = @atome[:green] * 255
|
8
|
+
blue = @atome[:blue] * 255
|
9
|
+
alpha = @atome[:alpha]
|
10
|
+
color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
|
11
|
+
BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
|
12
|
+
end
|
13
|
+
|
14
|
+
generator.build_render_method(:green) do |value|
|
15
|
+
red = @atome[:red] * 255
|
16
|
+
green = (@atome[:green] = value) * 255
|
17
|
+
blue = @atome[:blue] * 255
|
18
|
+
alpha = @atome[:alpha]
|
19
|
+
color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
|
20
|
+
BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
|
21
|
+
end
|
22
|
+
|
23
|
+
generator.build_render_method(:blue) do |value|
|
24
|
+
red = @atome[:red] * 255
|
25
|
+
green = @atome[:green] * 255
|
26
|
+
blue = (@atome[:blue] = value) * 255
|
27
|
+
alpha = @atome[:alpha]
|
28
|
+
color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
|
29
|
+
BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
|
30
|
+
end
|
31
|
+
|
32
|
+
generator.build_render_method(:alpha) do |value|
|
33
|
+
red = @atome[:red] * 255
|
34
|
+
green = @atome[:green] * 255
|
35
|
+
blue = @atome[:blue] * 255
|
36
|
+
alpha = (@atome[:alpha] = value)
|
37
|
+
color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
|
38
|
+
BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
|
39
|
+
end
|
40
|
+
|
41
|
+
generator.build_render_method(:visual) do |value|
|
42
|
+
browser_object.style['font-size'] = "#{value[:size]}px"
|
43
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:browser_left) do |value, _user_proc|
|
6
|
+
BrowserHelper.send("browser_left_#{@atome[:type]}", value, @browser_object, @atome)
|
7
|
+
end
|
8
|
+
|
9
|
+
generator.build_render_method(:browser_right) do |value, _user_proc|
|
10
|
+
BrowserHelper.send("browser_right_#{@atome[:type]}", value, @browser_object, @atome)
|
11
|
+
# @browser_object.style[:right] = "#{value}px"
|
12
|
+
end
|
13
|
+
|
14
|
+
generator.build_render_method(:browser_top) do |value, _user_proc|
|
15
|
+
BrowserHelper.send("browser_top_#{@atome[:type]}", value, @browser_object, @atome)
|
16
|
+
# @browser_object.style[:top] = "#{value}px"
|
17
|
+
end
|
18
|
+
|
19
|
+
generator.build_render_method(:browser_bottom) do |value, _user_proc|
|
20
|
+
BrowserHelper.send("browser_bottom_#{@atome[:type]}", value, @browser_object, @atome)
|
21
|
+
# @browser_object.style[:bottom] = "#{value}px"
|
22
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
generator.build_render_method(:browser_bloc)
|
5
|
+
generator.build_render_method(:browser_id)
|
6
|
+
generator.build_render_method(:browser_render)
|
7
|
+
generator.build_render_method(:browser_delete) do
|
8
|
+
browser_object&.remove
|
9
|
+
end
|
10
|
+
|
11
|
+
generator.build_render_method(:browser_clear) do
|
12
|
+
@atome[:children].each do |child_found|
|
13
|
+
grab(child_found).browser_object&.remove
|
14
|
+
end
|
15
|
+
children([])
|
16
|
+
end
|
17
|
+
|
18
|
+
generator.build_render_method(:path) do |value|
|
19
|
+
@browser_object[:src] = value
|
20
|
+
end
|
21
|
+
|
22
|
+
generator.build_render_method(:data) do |data|
|
23
|
+
# according to the type we send the data to different operator
|
24
|
+
type_found = @atome[:type]
|
25
|
+
send("browser_data_#{type_found}", data)
|
26
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
4
|
+
generator = Genesis.generator
|
5
|
+
|
6
|
+
generator.build_render_method(:html_shape) do
|
7
|
+
current_atome = @atome
|
8
|
+
id_found = current_atome[:id]
|
9
|
+
@html_object = Html.new
|
10
|
+
@html_object.add_class('atome')
|
11
|
+
@html_object.attr('id', id_found)
|
12
|
+
end
|
13
|
+
|
14
|
+
generator.build_render_method(:html_color) do |_value|
|
15
|
+
# we remove previous unused style tag
|
16
|
+
opal_document[id]&.remove
|
17
|
+
red_found = @atome[:red]
|
18
|
+
blue_found = @atome[:blue]
|
19
|
+
green_found = @atome[:green]
|
20
|
+
alpha_found = @atome[:alpha]
|
21
|
+
opal_document.head << DOM("<style atome='#{type}' id='#{id}'>.#{id}{background-color: rgba(#{red_found * 255},
|
22
|
+
#{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
|
23
|
+
# TODO/ use the code below to modify the style tag
|
24
|
+
# `document.getElementById(#{id}).sheet.cssRules[0].style.backgroundColor = 'red'`
|
25
|
+
end
|
26
|
+
|
27
|
+
generator.build_render_method(:html_image) do |_user_prc|
|
28
|
+
# id_found = id
|
29
|
+
# instance_exec(&proc) if proc.is_a?(Proc)
|
30
|
+
# DOM do
|
31
|
+
# img({ id: id_found }).atome
|
32
|
+
# end.append_to($document[:user_view])
|
33
|
+
# @html_object = $document[id_found]
|
34
|
+
# @html_type = :image
|
35
|
+
end
|
36
|
+
|
37
|
+
generator.build_render_method(:html_shadow) do
|
38
|
+
end
|
39
|
+
|
40
|
+
generator.build_render_method(:html_video) do |_value, _user_proc|
|
41
|
+
# id_found = id
|
42
|
+
# # instance_exec(&proc) if proc.is_a?(Proc)
|
43
|
+
# DOM do
|
44
|
+
# video({ id: id_found, autoplay: true ,loop: false, muted: true }).atome
|
45
|
+
# end.append_to($document[:user_view])
|
46
|
+
# @html_object = $document[id_found]
|
47
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:html_smooth) do |value|
|
6
|
+
formated_params = case value
|
7
|
+
when Array
|
8
|
+
properties = []
|
9
|
+
value.each do |param|
|
10
|
+
properties << "#{param}px"
|
11
|
+
end
|
12
|
+
properties.join(' ').to_s
|
13
|
+
when Integer
|
14
|
+
"#{value}px"
|
15
|
+
else
|
16
|
+
value
|
17
|
+
end
|
18
|
+
@html_object.style['border-radius'] = formated_params unless @html_type == :style
|
19
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
generator = Genesis.generator
|
4
|
+
|
5
|
+
generator.build_render_method(:html_width) do |value|
|
6
|
+
@html_object.style[:width] = "#{value}px" unless @html_type == :style
|
7
|
+
end
|
8
|
+
|
9
|
+
generator.build_render_method(:html_height) do |value|
|
10
|
+
@html_object.style[:height] = "#{value}px" unless @html_type == :style
|
11
|
+
end
|
@@ -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_optional_methods(: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,15 @@
|
|
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
|
@@ -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
|
+
|