atome 0.4.5.4 → 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 -3
- data/README.md +7 -4
- data/Rakefile +22 -12
- data/app_builder_helpers/Rakefile +65 -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/extensions/ping.rb +15 -11
- data/lib/atome/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 +77 -20
- 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/extensions/geolocation.rb +0 -1
- data/lib/atome/renderers/opal/opal.rb +4 -0
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +22 -54
- 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 +55 -0
- data/vendor/assets/build/index.html +12 -7
- data/vendor/assets/build/js/atome/atome.js +72 -58
- data/vendor/assets/build/js/third_parties/interact.min.js +2 -3
- data/vendor/assets/build/js/{ping.min.js → third_parties/ping.min.js} +0 -0
- data/vendor/assets/build/js/{utilities → third_parties}/w3color.js +0 -0
- data/vendor/assets/build/js/third_parties/zim.min.js +1 -0
- data/vendor/assets/build/medias/rubies/examples/!run.rb +16 -0
- 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 +18 -0
- data/vendor/assets/build/medias/rubies/examples/_read.rb +5 -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 +23 -1
- data/vendor/assets/build/medias/rubies/examples/circle.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/clear.rb +10 -0
- 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 +43 -4
- 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 +8 -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 +30 -3
- data/vendor/assets/build/medias/rubies/examples/touch.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +51 -3
- data/vendor/assets/build/medias/rubies/examples/web.rb +3 -2
- data/vendor/assets/server/atome_server.rb +3 -5
- metadata +78 -166
- data/lib/atome/atome_native_extensions.rb +0 -5
- data/lib/atome/extensions/helper.rb +0 -123
- data/lib/atome/extensions/utilities.rb +0 -39
- data/lib/atome/kernel/atome.rb +0 -98
- data/lib/atome/kernel/generators/generator.rb +0 -387
- data/lib/atome/kernel/generators/genesis.rb +0 -265
- data/lib/atome/kernel/generators/sanitizer.rb +0 -77
- data/lib/atome/kernel/generators/shapes.rb +0 -40
- data/lib/atome/kernel/properties/essential.rb +0 -43
- data/lib/atome/kernel/sparkle.rb +0 -37
- data/lib/atome/renderers/opal/properties/generator.rb +0 -1
- data/lib/atome/renderers/renderer.rb +0 -12
- data/lib/atome/renderers/server/properties/generator.rb +0 -9
- data/vendor/assets/build/js/application.js +0 -0
- data/vendor/assets/build/js/third_parties/createjs.min.js +0 -19
- 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/link.rb +0 -13
- data/vendor/assets/build/medias/rubies/examples/read.rb +0 -3
@@ -1,387 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# generators
|
4
|
-
|
5
|
-
Genesis.particle_creator(:html_type)
|
6
|
-
Genesis.particle_creator(:html_object)
|
7
|
-
|
8
|
-
|
9
|
-
Genesis.atome_creator(:shape)
|
10
|
-
|
11
|
-
Genesis.atome_creator(:shadow)
|
12
|
-
# Genesis.atome_creator(:additional)
|
13
|
-
Genesis.atome_creator(:content)
|
14
|
-
|
15
|
-
Genesis.atome_creator(:color)
|
16
|
-
|
17
|
-
Genesis.atome_creator_option(:color_sanitizer_proc) do |params, atome|
|
18
|
-
unless params.instance_of? Hash
|
19
|
-
if RUBY_ENGINE.downcase == 'opal'
|
20
|
-
rgb_color = `d = document.createElement("div");
|
21
|
-
d.style.color = #{params};
|
22
|
-
document.body.appendChild(d)
|
23
|
-
rgb_color=(window.getComputedStyle(d).color);
|
24
|
-
d.remove();
|
25
|
-
`
|
26
|
-
color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
|
27
|
-
rgb_color.gsub("rgb(", "").gsub(")", "").split(",").each_with_index do |component, index|
|
28
|
-
color_converted[color_converted.keys[index]] = component.to_i / 255
|
29
|
-
end
|
30
|
-
else
|
31
|
-
rgb_color = Color::CSS["red"].css_rgb
|
32
|
-
color_converted = { red: 0, green: 0, blue: 0, alpha: 1 }
|
33
|
-
rgb_color.gsub("rgb(", "").gsub(")", "").gsub("%", "").split(",").each_with_index do |component, index|
|
34
|
-
component = component.to_i / 100
|
35
|
-
color_converted[color_converted.keys[index]] = component
|
36
|
-
end
|
37
|
-
end
|
38
|
-
params = { render: [:html], id: "color_#{atome.id}", type: :color }.merge(color_converted)
|
39
|
-
end
|
40
|
-
params
|
41
|
-
end
|
42
|
-
|
43
|
-
Genesis.atome_creator(:shadow)
|
44
|
-
|
45
|
-
# Example below
|
46
|
-
|
47
|
-
# Genesis.atome_creator(:color) do |params|
|
48
|
-
# # puts "extra color code executed!! : #{params}"
|
49
|
-
# end
|
50
|
-
# Genesis.atome_creator_option(:color_pre_save_proc) do |params|
|
51
|
-
# puts "1- optional color_pre_save_proc: #{params}\n"
|
52
|
-
# end
|
53
|
-
#
|
54
|
-
# Genesis.atome_creator_option(:color_post_save_proc) do |params|
|
55
|
-
# puts "2- optional color_post_save_proc: #{params}\n"
|
56
|
-
# end
|
57
|
-
# #
|
58
|
-
# Genesis.atome_creator_option(:left_pre_render_proc) do
|
59
|
-
# puts "3 - optional color_pre_render_proc\n"
|
60
|
-
# end
|
61
|
-
# Genesis.atome_creator_option(:left_post_render_proc) do
|
62
|
-
# puts "4 - optional color_post_render_proc\n"
|
63
|
-
# end
|
64
|
-
#
|
65
|
-
# Genesis.atome_creator_option(:color_post_render_proc) do
|
66
|
-
# # puts "optional color_post_render_proc\n"
|
67
|
-
# end
|
68
|
-
#
|
69
|
-
# Genesis.atome_creator_option(:color_getter_pre_proc) do
|
70
|
-
# # puts "optional color_getter_pre_proc\n"
|
71
|
-
# end
|
72
|
-
|
73
|
-
Genesis.particle_creator(:id) do
|
74
|
-
end
|
75
|
-
Genesis.particle_creator(:left)
|
76
|
-
Genesis.particle_creator(:right)
|
77
|
-
Genesis.particle_creator(:top)
|
78
|
-
Genesis.particle_creator(:bottom)
|
79
|
-
Genesis.particle_creator(:width)
|
80
|
-
Genesis.particle_creator(:height)
|
81
|
-
Genesis.particle_creator(:red)
|
82
|
-
Genesis.particle_creator(:green)
|
83
|
-
Genesis.particle_creator(:blue)
|
84
|
-
Genesis.particle_creator(:alpha)
|
85
|
-
Genesis.particle_creator(:type)
|
86
|
-
Genesis.particle_creator(:smooth)
|
87
|
-
Genesis.particle_creator(:blur)
|
88
|
-
Genesis.particle_creator(:touch)
|
89
|
-
# Genesis.atome_creator_option(:type_pre_render_proc) do |params|
|
90
|
-
# # alert "it works and get #{params}"
|
91
|
-
# params[:value]
|
92
|
-
# end
|
93
|
-
|
94
|
-
# important exemple below how to prevent rendering
|
95
|
-
# Genesis.atome_creator_option(:top_render_proc) do |params|
|
96
|
-
# puts "====---> Hurrey no rendering : #{params}"
|
97
|
-
# end
|
98
|
-
|
99
|
-
Genesis.particle_creator(:render)
|
100
|
-
Genesis.particle_creator(:drm)
|
101
|
-
Genesis.particle_creator(:parent)
|
102
|
-
|
103
|
-
Genesis.atome_creator_option(:parent_pre_render_proc) do |params|
|
104
|
-
unless params[:value].instance_of? Array
|
105
|
-
params[:value] = [params[:value]]
|
106
|
-
end
|
107
|
-
params[:value]
|
108
|
-
end
|
109
|
-
Genesis.particle_creator(:date)
|
110
|
-
Genesis.particle_creator(:location)
|
111
|
-
|
112
|
-
# generate renderers
|
113
|
-
|
114
|
-
Genesis.generate_html_renderer(:type) do |value, atome, proc|
|
115
|
-
send("#{value}_html", value, atome, proc)
|
116
|
-
end
|
117
|
-
|
118
|
-
Genesis.generate_html_renderer(:shape) do |value, atome, proc|
|
119
|
-
id_found = id
|
120
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
121
|
-
DOM do
|
122
|
-
div(id: id_found).atome
|
123
|
-
end.append_to($document[:user_view])
|
124
|
-
@html_object = $document[id_found]
|
125
|
-
@html_type = :div
|
126
|
-
end
|
127
|
-
|
128
|
-
Genesis.generate_html_renderer(:color) do |value, atome, proc|
|
129
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
130
|
-
@html_type = :style
|
131
|
-
$document.head << DOM("<style atome='#{type}' id='#{id}'></style>")
|
132
|
-
end
|
133
|
-
|
134
|
-
Genesis.generate_html_renderer(:red) do |value, atome, proc|
|
135
|
-
green_found = green
|
136
|
-
green_found ||= 0
|
137
|
-
blue_found = blue
|
138
|
-
blue_found ||= 0
|
139
|
-
alpha_found = alpha
|
140
|
-
alpha_found ||= 0
|
141
|
-
$document[id].inner_html = "\n.#{id}{background-color: rgba(#{value * 255},#{green_found * 255},#{blue_found * 255},#{alpha_found})}\n"
|
142
|
-
|
143
|
-
end
|
144
|
-
Genesis.generate_html_renderer(:green) do |value, atome, proc|
|
145
|
-
red_found = red
|
146
|
-
red_found ||= 0
|
147
|
-
blue_found = blue
|
148
|
-
blue_found ||= 0
|
149
|
-
alpha_found = alpha
|
150
|
-
alpha_found ||= 0
|
151
|
-
$document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{value * 255},#{blue_found * 255},#{alpha_found})}\n"
|
152
|
-
|
153
|
-
end
|
154
|
-
|
155
|
-
Genesis.generate_html_renderer(:blue) do |value, atome, proc|
|
156
|
-
red_found = red
|
157
|
-
red_found ||= 0
|
158
|
-
green_found = green
|
159
|
-
green_found ||= 0
|
160
|
-
alpha_found = alpha
|
161
|
-
alpha_found ||= 0
|
162
|
-
$document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{value * 255},#{alpha_found})}\n"
|
163
|
-
|
164
|
-
end
|
165
|
-
|
166
|
-
Genesis.generate_html_renderer(:alpha) do |value, atome, proc|
|
167
|
-
red_found = red
|
168
|
-
red_found ||= 0
|
169
|
-
green_found = green
|
170
|
-
green_found ||= 0
|
171
|
-
blue_found = blue
|
172
|
-
blue_found ||= 0
|
173
|
-
$document[id].inner_html = "\n.#{id}{background-color: rgba(#{red_found * 255},#{green_found * 255},#{blue_found * 255},#{value})}\n"
|
174
|
-
end
|
175
|
-
|
176
|
-
Genesis.generate_html_renderer(:drm) do |value, atome, proc|
|
177
|
-
# instance_exec(&proc) if proc.is_a?(Proc)
|
178
|
-
end
|
179
|
-
|
180
|
-
Genesis.generate_html_renderer(:parent) do |values, atome, proc|
|
181
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
182
|
-
values.each do |value|
|
183
|
-
if @html_type == :style
|
184
|
-
# we remove previous class if the are of the same type of the type
|
185
|
-
# ex if there's a color already assign we remove it to allow the new one to be visible
|
186
|
-
html_parent = grab(value).instance_variable_get("@html_object")
|
187
|
-
html_parent.class_names.each do |class_name|
|
188
|
-
if $document[class_name] && $document[class_name].attributes[:atome]
|
189
|
-
class_to_remove = $document[class_name].attributes[:id]
|
190
|
-
html_parent.remove_class(class_to_remove)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
$document[value].add_class(id)
|
194
|
-
else
|
195
|
-
@html_object.append_to($document[value])
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|
199
|
-
Genesis.generate_html_renderer(:id) do |value, atome, proc|
|
200
|
-
# send("#{value}_html", value, atome, proc)
|
201
|
-
end
|
202
|
-
|
203
|
-
Genesis.generate_html_renderer(:left) do |value, atome, proc|
|
204
|
-
@html_object.style[:left] = "#{value}px" unless @html_type == :style
|
205
|
-
end
|
206
|
-
|
207
|
-
Genesis.generate_html_renderer(:right) do |value, atome, proc|
|
208
|
-
@html_object.style[:right] = "#{value}px" unless @html_type == :style
|
209
|
-
end
|
210
|
-
|
211
|
-
Genesis.generate_html_renderer(:top) do |value, atome, proc|
|
212
|
-
@html_object.style[:top] = "#{value}px" unless @html_type == :style
|
213
|
-
end
|
214
|
-
|
215
|
-
Genesis.generate_html_renderer(:bottom) do |value, atome, proc|
|
216
|
-
@html_object.style[:bottom] = "#{value}px" unless @html_type == :style
|
217
|
-
end
|
218
|
-
|
219
|
-
Genesis.generate_html_renderer(:width) do |value, atome, proc|
|
220
|
-
@html_object.style[:width] = "#{value}px" unless @html_type == :style
|
221
|
-
end
|
222
|
-
|
223
|
-
Genesis.generate_html_renderer(:height) do |value, atome, proc|
|
224
|
-
@html_object.style[:height] = "#{value}px" unless @html_type == :style
|
225
|
-
end
|
226
|
-
|
227
|
-
Genesis.particle_creator(:rotate) do |params, atome, &proc|
|
228
|
-
# puts atome
|
229
|
-
# alert :pl
|
230
|
-
instance_exec(method_name, params, atome, &proc) if proc.is_a?(Proc)
|
231
|
-
end
|
232
|
-
Genesis.generate_html_renderer(:rotate) do |value, atome, proc|
|
233
|
-
@html_object.style[:transform] = "rotate(#{value}deg)" unless @html_type == :style
|
234
|
-
end
|
235
|
-
|
236
|
-
Genesis.generate_html_renderer(:smooth) do |value, atome, proc|
|
237
|
-
formated_params = case value
|
238
|
-
when Array
|
239
|
-
properties = []
|
240
|
-
value.each do |param|
|
241
|
-
properties << "#{param}px"
|
242
|
-
end
|
243
|
-
properties.join(' ').to_s
|
244
|
-
when Integer
|
245
|
-
"#{value}px"
|
246
|
-
else
|
247
|
-
value
|
248
|
-
end
|
249
|
-
@html_object.style['border-radius'] = formated_params unless @html_type == :style
|
250
|
-
end
|
251
|
-
|
252
|
-
Genesis.generate_html_renderer(:touch) do |value, atome, proc|
|
253
|
-
@html_object.on :click do |e|
|
254
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
255
|
-
end
|
256
|
-
end
|
257
|
-
|
258
|
-
#drag
|
259
|
-
def dragCallback(page_x, page_y, x, y, current_object, proc)
|
260
|
-
current_object.instance_variable_set('@left', x)
|
261
|
-
current_object.instance_variable_set('@top', y)
|
262
|
-
instance_exec(page_x, page_y, &proc) if proc.is_a?(Proc)
|
263
|
-
end
|
264
|
-
|
265
|
-
Genesis.particle_creator(:drag)
|
266
|
-
|
267
|
-
Genesis.generate_headless_renderer(:drag) do |value, atome, user_proc|
|
268
|
-
puts "msg from headless drag method: value is #{value} , atome class is #{atome.class}"
|
269
|
-
instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
270
|
-
end
|
271
|
-
|
272
|
-
Genesis.generate_html_renderer(:drag) do |value, atome, user_proc|
|
273
|
-
# FIXME: we should find a s solution to pass the proc to the dragCallback toavoid the test below
|
274
|
-
@html_drag = user_proc if user_proc
|
275
|
-
if value == :remove
|
276
|
-
@html_object.remove_class(:draggable)
|
277
|
-
else
|
278
|
-
@html_object.add_class(:draggable)
|
279
|
-
end
|
280
|
-
end
|
281
|
-
|
282
|
-
Genesis.particle_creator(:overflow)
|
283
|
-
Genesis.generate_html_renderer(:overflow) do |value, atome, proc|
|
284
|
-
@html_object.style[:overflow] = value unless @html_type == :style
|
285
|
-
end
|
286
|
-
|
287
|
-
Genesis.particle_creator(:bloc)
|
288
|
-
|
289
|
-
# image
|
290
|
-
|
291
|
-
Genesis.atome_creator(:image)
|
292
|
-
Genesis.particle_creator(:path)
|
293
|
-
Genesis.generate_html_renderer(:path) do |value, atome, proc|
|
294
|
-
@html_object[:src] = value
|
295
|
-
end
|
296
|
-
Genesis.generate_html_renderer(:image) do |value, atome, proc|
|
297
|
-
id_found = id
|
298
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
299
|
-
DOM do
|
300
|
-
img({ id: id_found }).atome
|
301
|
-
end.append_to($document[:user_view])
|
302
|
-
@html_object = $document[id_found]
|
303
|
-
@html_type = :image
|
304
|
-
end
|
305
|
-
|
306
|
-
# text
|
307
|
-
|
308
|
-
Genesis.atome_creator(:text)
|
309
|
-
Genesis.particle_creator(:string)
|
310
|
-
|
311
|
-
Genesis.generate_html_renderer(:string) do |value, atome, proc|
|
312
|
-
@html_object.text = value
|
313
|
-
end
|
314
|
-
Genesis.particle_creator(:visual)
|
315
|
-
Genesis.generate_html_renderer(:visual) do |value, atome, proc|
|
316
|
-
@html_object.style['font-size'] = "#{value[:size]}px"
|
317
|
-
end
|
318
|
-
Genesis.generate_html_renderer(:text) do |value, atome, proc|
|
319
|
-
id_found = id
|
320
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
321
|
-
DOM do
|
322
|
-
div(id: id_found).atome
|
323
|
-
end.append_to($document[:user_view])
|
324
|
-
@html_object = $document[id_found]
|
325
|
-
@html_type = :text
|
326
|
-
end
|
327
|
-
|
328
|
-
|
329
|
-
# video
|
330
|
-
Genesis.atome_creator(:video)
|
331
|
-
Genesis.generate_html_renderer(:video) do |value, atome, proc|
|
332
|
-
id_found = id
|
333
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
334
|
-
DOM do
|
335
|
-
video({ id: id_found, autoplay: true }).atome
|
336
|
-
end.append_to($document[:user_view])
|
337
|
-
@html_object = $document[id_found]
|
338
|
-
@html_type = :video
|
339
|
-
end
|
340
|
-
|
341
|
-
|
342
|
-
# particles method below to allow to retrieve all particles for an atome
|
343
|
-
Genesis.particle_creator(:particles)
|
344
|
-
Genesis.atome_creator_option(:particles_getter_pre_proc) do |params|
|
345
|
-
atome_found = params[:atome]
|
346
|
-
particles_hash = {}
|
347
|
-
atome_found.instance_variables.each do |particle_found|
|
348
|
-
particle_content = atome_found.instance_variable_get(particle_found)
|
349
|
-
particles_hash[particle_found] = particle_content
|
350
|
-
end
|
351
|
-
particles_hash
|
352
|
-
end
|
353
|
-
|
354
|
-
|
355
|
-
# link
|
356
|
-
Genesis.particle_creator(:link)
|
357
|
-
Genesis.atome_creator_option(:link_pre_render_proc) do |params|
|
358
|
-
atome_found = params[:atome]
|
359
|
-
atome_to_link = grab(params[:value])
|
360
|
-
particles_found = atome_to_link.particles
|
361
|
-
atome_type = particles_found.delete('@type')
|
362
|
-
sanitized_particles = {}
|
363
|
-
particles_found.each do |particle_name, value|
|
364
|
-
particle_name = particle_name.gsub('@', '')
|
365
|
-
sanitized_particles[particle_name] = value
|
366
|
-
end
|
367
|
-
sanitized_particles[:parent]=[atome_found.id]
|
368
|
-
atome_found.send(atome_type, sanitized_particles)
|
369
|
-
params[:value]
|
370
|
-
end
|
371
|
-
Genesis.atome_creator(:web)
|
372
|
-
Genesis.particle_creator(:path)
|
373
|
-
Genesis.generate_html_renderer(:path) do |value, atome, proc|
|
374
|
-
@html_object[:src] = value
|
375
|
-
end
|
376
|
-
Genesis.generate_html_renderer(:web) do |value, atome, proc|
|
377
|
-
id_found = id
|
378
|
-
instance_exec(&proc) if proc.is_a?(Proc)
|
379
|
-
DOM do
|
380
|
-
iframe({ id: id_found }).atome
|
381
|
-
end.append_to($document[:user_view])
|
382
|
-
@html_object = $document[id_found]
|
383
|
-
@html_object.attributes[:allow]='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
|
384
|
-
@html_object.attributes[:allowfullscreen]=true
|
385
|
-
@html_type = :web
|
386
|
-
end
|
387
|
-
|
@@ -1,265 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# TODO: parent are not set correctly if not explicitly specified when attaching a child ex: b=box();c=b.box, c is not
|
3
|
-
# attached to b
|
4
|
-
# Genesis helper
|
5
|
-
module GenesisHelper
|
6
|
-
def broadcaster(property, value)
|
7
|
-
"broadcast : #{property} #{value}"
|
8
|
-
end
|
9
|
-
|
10
|
-
def history(property, value)
|
11
|
-
"historize : #{property} #{value}"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# genesis kernel
|
16
|
-
module GenesisKernel
|
17
|
-
# particle's methods
|
18
|
-
def set_new_particle(particle, value, &proc)
|
19
|
-
return false unless validation(particle)
|
20
|
-
|
21
|
-
# instance_exec({ options: value }, &proc) if proc.is_a?(Proc)
|
22
|
-
# now we exec the first optional method
|
23
|
-
value = Genesis.run_optional_methods_helper("#{particle}_pre_render_proc".to_sym,
|
24
|
-
{ method: particle, value: value, atome: self, proc: proc })
|
25
|
-
# render option below
|
26
|
-
Genesis.run_optional_methods_helper("#{particle}_render_proc".to_sym,
|
27
|
-
{ method: particle, value: value, atome: self, proc: proc })
|
28
|
-
# now we exec post render optional proc
|
29
|
-
value = Genesis.run_optional_methods_helper("#{particle}_post_render_proc".to_sym,
|
30
|
-
{ method: particle, value: value, proc: proc })
|
31
|
-
broadcaster(particle, value)
|
32
|
-
history(particle, value)
|
33
|
-
self
|
34
|
-
end
|
35
|
-
|
36
|
-
def get_new_particle(particle)
|
37
|
-
return false unless validation(particle)
|
38
|
-
particle_instance_variable = "@#{particle}"
|
39
|
-
value_getted=instance_variable_get(particle_instance_variable)
|
40
|
-
Genesis.run_optional_methods_helper("#{particle}_getter_pre_proc".to_sym, { value: value_getted, atome: self })
|
41
|
-
end
|
42
|
-
|
43
|
-
def new_particle(particle, params, proc)
|
44
|
-
if params
|
45
|
-
set_new_particle(particle, params, &proc)
|
46
|
-
else
|
47
|
-
get_new_particle(particle)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# atome's methods
|
52
|
-
|
53
|
-
def create_new_atomes(params, instance_var, _atome)
|
54
|
-
new_atome = Atome.new({})
|
55
|
-
instance_variable_set(instance_var, new_atome)
|
56
|
-
# FIXME : move this to sanitizer and ensure that no reorder happen for "id" and "render" when
|
57
|
-
params.each do |param, value|
|
58
|
-
new_atome.send(param, value)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def set_new_atome(atome, params, proc)
|
63
|
-
return false unless validation(atome)
|
64
|
-
|
65
|
-
instance_var = "@#{atome}"
|
66
|
-
# now we exec the first optional method
|
67
|
-
params=Genesis.run_optional_methods_helper("#{atome}_pre_save_proc".to_sym, { value: params, proc: proc })
|
68
|
-
create_new_atomes(params[:value], instance_var, atome)
|
69
|
-
# now we exec the second optional method
|
70
|
-
Genesis.run_optional_methods_helper("#{atome}_post_save_proc".to_sym, { value: params, proc: proc })
|
71
|
-
@dna = "#{Atome.current_user}_#{Universe.app_identity}_#{Universe.atomes.length}"
|
72
|
-
self
|
73
|
-
end
|
74
|
-
|
75
|
-
def get_new_atome(atome)
|
76
|
-
return false unless validation(atome)
|
77
|
-
|
78
|
-
# Genesis.run_optional_methods_helper("#{atome}_getter_pre_proc".to_sym, { value: false })
|
79
|
-
atome_instance_variable = "@#{atome}"
|
80
|
-
value_getted=instance_variable_get(atome_instance_variable)
|
81
|
-
Genesis.run_optional_methods_helper("#{atome}_getter_pre_proc".to_sym, { value: value_getted })
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
def new_atome(atome, params, proc)
|
86
|
-
if params
|
87
|
-
params = add_essential_properties(atome, params)
|
88
|
-
params = sanitizer(params)
|
89
|
-
set_new_atome(atome, params, proc)
|
90
|
-
else
|
91
|
-
get_new_atome(atome)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def additional_atomes(atome, params)
|
96
|
-
atome_instance_variable = "@#{atome}"
|
97
|
-
if params
|
98
|
-
instance_variable_get(atome_instance_variable).additional(params)
|
99
|
-
else
|
100
|
-
instance_variable_get(atome_instance_variable).additional
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
# main entry for genesis
|
106
|
-
module Genesis
|
107
|
-
include GenesisHelper
|
108
|
-
include GenesisKernel
|
109
|
-
|
110
|
-
# include ParticleGenesis
|
111
|
-
@optionals_methods = {}
|
112
|
-
|
113
|
-
def self.atome_creator_option(property_name, &proc)
|
114
|
-
@optionals_methods[property_name] = proc
|
115
|
-
end
|
116
|
-
|
117
|
-
def self.run_optional_methods_helper(method_name, params, atome=nil)
|
118
|
-
proc = nil
|
119
|
-
proc = @optionals_methods[method_name] if @optionals_methods
|
120
|
-
instance_exec(params,atome, &proc) if proc.is_a?(Proc)
|
121
|
-
end
|
122
|
-
|
123
|
-
# #fIXME : we may have to remove the 2 methods below its only for test
|
124
|
-
|
125
|
-
# render methods generator
|
126
|
-
def self.generate_html_renderer(method_name, &methods_proc)
|
127
|
-
current_renderer = :html
|
128
|
-
generated_method_name = "#{method_name}_#{current_renderer}".to_sym
|
129
|
-
Atome.define_method generated_method_name do |value, atome, &user_proc|
|
130
|
-
instance_exec(value, atome, user_proc, &methods_proc) if methods_proc.is_a?(Proc)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
def self.generate_server_renderer(method_name, &methods_proc)
|
135
|
-
current_renderer = :headless
|
136
|
-
generated_method_name = "#{method_name}_#{current_renderer}".to_sym
|
137
|
-
Atome.define_method generated_method_name do |value, atome, &user_proc|
|
138
|
-
instance_exec(value, atome, user_proc, &methods_proc) if methods_proc.is_a?(Proc)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
# rendering methods are generated below:
|
143
|
-
def self.generate_renderers_methods(method_name)
|
144
|
-
# now we auto generate all rendering methods
|
145
|
-
Utilities.renderer_list.each do |render_method|
|
146
|
-
define_singleton_method("generate_#{render_method}_renderer") do |method_name, &methods_proc|
|
147
|
-
current_renderer = render_method
|
148
|
-
generated_method_name = "#{method_name}_#{current_renderer}".to_sym
|
149
|
-
Atome.define_method generated_method_name do |value, atome, &user_proc|
|
150
|
-
instance_exec(value, atome, user_proc, &methods_proc) if methods_proc.is_a?(Proc)
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
send("generate_#{render_method}_renderer", method_name)
|
155
|
-
end
|
156
|
-
|
157
|
-
Genesis.atome_creator_option("#{method_name}_post_render_proc".to_sym) do |params|
|
158
|
-
# we return the value
|
159
|
-
params[:value]
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
def self.optional_atome_methods(method_name)
|
164
|
-
Genesis.atome_creator_option("#{method_name}_pre_save_proc".to_sym) do |params, proc|
|
165
|
-
# we return the value
|
166
|
-
params
|
167
|
-
end
|
168
|
-
|
169
|
-
Genesis.atome_creator_option("#{method_name}_sanitizer_proc".to_sym) do |params,atome, proc|
|
170
|
-
# we return the value
|
171
|
-
params
|
172
|
-
end
|
173
|
-
|
174
|
-
Genesis.atome_creator_option("#{method_name}_getter_pre_proc".to_sym) do |params,atome, proc|
|
175
|
-
# we return the value
|
176
|
-
params[:value]
|
177
|
-
end
|
178
|
-
|
179
|
-
end
|
180
|
-
|
181
|
-
def self.additional_atome_methods(method_name)
|
182
|
-
# here is the pluralized
|
183
|
-
Atome.define_method "#{method_name}s" do |params = nil|
|
184
|
-
additional_atomes(method_name, params)
|
185
|
-
end
|
186
|
-
# here is the fast methods
|
187
|
-
Atome.define_method "set_#{method_name}" do |params = nil, &proc|
|
188
|
-
set_new_atome(method_name, params, proc)
|
189
|
-
end
|
190
|
-
Atome.define_method "get_#{method_name}" do
|
191
|
-
get_new_atome(method_name)
|
192
|
-
end
|
193
|
-
generate_renderers_methods(method_name)
|
194
|
-
end
|
195
|
-
|
196
|
-
# we create the easy methods here : ¬
|
197
|
-
def self.atome_creator(method_name, &proc)
|
198
|
-
instance_exec(method_name, &proc) if proc.is_a?(Proc)
|
199
|
-
# we add the new method to the atome's collection of methods
|
200
|
-
Utilities.atome_list(method_name)
|
201
|
-
# we define many methods : easy, method=,pluralised and the fasts one, here is the easy
|
202
|
-
Atome.define_method method_name do |params = nil, &user_proc|
|
203
|
-
new_atome(method_name, params, user_proc)
|
204
|
-
end
|
205
|
-
# no we also add the method= for easy setting
|
206
|
-
Atome.define_method("#{method_name}=") do |params, &user_proc|
|
207
|
-
new_atome(method_name, params, user_proc)
|
208
|
-
end
|
209
|
-
optional_atome_methods(method_name)
|
210
|
-
additional_atome_methods(method_name)
|
211
|
-
end
|
212
|
-
|
213
|
-
def self.optional_particle_methods(method_name)
|
214
|
-
# The rendering occur here setting up the optional rendering by default
|
215
|
-
Genesis.atome_creator_option("#{method_name}_render_proc".to_sym) do |params|
|
216
|
-
params[:atome].render_engine(params[:method], params[:value], params[:atome], ¶ms[:proc])
|
217
|
-
# we return the value
|
218
|
-
params[:value]
|
219
|
-
end
|
220
|
-
Genesis.atome_creator_option("#{method_name}_pre_render_proc".to_sym) do |params|
|
221
|
-
particle_instance_variable = "@#{params[:method]}"
|
222
|
-
params[:atome].instance_variable_set(particle_instance_variable, params[:value])
|
223
|
-
# we return the value
|
224
|
-
params[:value]
|
225
|
-
end
|
226
|
-
Genesis.atome_creator_option("#{method_name}_post_render_proc".to_sym) do |params|
|
227
|
-
# we return the value
|
228
|
-
params[:value]
|
229
|
-
end
|
230
|
-
Genesis.atome_creator_option("#{method_name}_getter_pre_proc".to_sym) do |params|
|
231
|
-
# we return the value
|
232
|
-
params[:value]
|
233
|
-
end
|
234
|
-
|
235
|
-
end
|
236
|
-
|
237
|
-
def self.additional_particle_methods(method_name)
|
238
|
-
# here is the fast methods
|
239
|
-
Atome.define_method "set_#{method_name}" do |params, &proc|
|
240
|
-
set_new_particle(method_name, params, &proc)
|
241
|
-
end
|
242
|
-
|
243
|
-
Atome.define_method "get_#{method_name}" do
|
244
|
-
get_new_particle(method_name)
|
245
|
-
end
|
246
|
-
# now we generate all basic default rendering methods
|
247
|
-
generate_renderers_methods(method_name)
|
248
|
-
# now we generate all optional methods
|
249
|
-
optional_particle_methods(method_name)
|
250
|
-
end
|
251
|
-
|
252
|
-
def self.particle_creator(method_name, &proc)
|
253
|
-
instance_exec(method_name, &proc) if proc.is_a?(Proc)
|
254
|
-
# we add the new method to the particle's collection of methods
|
255
|
-
Utilities.particle_list(method_name)
|
256
|
-
Atome.define_method method_name do |params = nil, &user_proc|
|
257
|
-
new_particle(method_name, params, user_proc)
|
258
|
-
end
|
259
|
-
# no we also add the method= for easy setting
|
260
|
-
Atome.define_method("#{method_name}=") do |params, &user_proc|
|
261
|
-
new_particle(method_name, params, user_proc)
|
262
|
-
end
|
263
|
-
additional_particle_methods(method_name)
|
264
|
-
end
|
265
|
-
end
|