atome 0.5.1.1 → 0.5.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -5
  3. data/app_builder_helpers/Rakefile +1 -1
  4. data/exe/atome +1 -1
  5. data/lib/atome/{atome_meta_engine.rb → atome.rb} +14 -17
  6. data/lib/atome/extensions/atome.rb +2 -2
  7. data/lib/atome/genesis/generators/atome.rb +25 -0
  8. data/lib/atome/genesis/generators/event.rb +5 -0
  9. data/lib/atome/genesis/generators/identity.rb +15 -1
  10. data/lib/atome/genesis/generators/spatial.rb +1 -0
  11. data/lib/atome/genesis/generators/utility.rb +18 -1
  12. data/lib/atome/genesis/genesis.rb +4 -9
  13. data/lib/atome/helpers/callbacks.rb +12 -0
  14. data/lib/atome/helpers/essentials.rb +2 -2
  15. data/lib/atome/helpers/sanitizer.rb +1 -20
  16. data/lib/atome/helpers/utilities.rb +8 -11
  17. data/lib/atome/kernel/essentials.rb +0 -7
  18. data/lib/atome/kernel/universe.rb +27 -10
  19. data/lib/atome/presets/atome.rb +26 -4
  20. data/lib/atome/renderers/browser/atome.rb +29 -16
  21. data/lib/atome/renderers/browser/browser.rb +158 -91
  22. data/lib/atome/renderers/browser/event.rb +29 -1
  23. data/lib/atome/renderers/browser/identity.rb +5 -1
  24. data/lib/atome/renderers/browser/spatial.rb +4 -3
  25. data/lib/atome/renderers/browser/utility.rb +17 -4
  26. data/lib/atome/renderers/headless/headless.rb +10 -0
  27. data/lib/atome/renderers/headless/utility.rb +6 -0
  28. data/lib/atome/renderers/html/spatial.rb +1 -1
  29. data/lib/atome/renderers/html/utility.rb +2 -0
  30. data/lib/atome/renderers/renderer.rb +13 -0
  31. data/lib/atome/renderers/server/server.rb +10 -0
  32. data/lib/atome/renderers/server/utility.rb +6 -0
  33. data/lib/atome/version.rb +1 -1
  34. data/lib/atome.rb +5 -1
  35. data/vendor/assets/build/index.html +1 -5
  36. data/vendor/assets/build/js/atome/atome.js +81 -8
  37. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +13 -0
  38. data/vendor/assets/build/medias/rubies/examples/{drag.rb → _drag.rb} +0 -0
  39. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
  40. data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
  41. data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
  42. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  43. data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
  44. data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
  45. data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
  46. data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
  47. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
  48. data/vendor/assets/build/medias/rubies/examples/on.rb +20 -0
  49. data/vendor/assets/build/medias/rubies/examples/{_read.rb → read.rb} +4 -2
  50. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  51. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
  52. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  53. data/vendor/assets/build/medias/rubies/examples/schedule.rb +8 -7
  54. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  55. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  56. data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
  57. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  58. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  59. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  60. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  61. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  62. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  63. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  64. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
  65. metadata +22 -10
  66. data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
  67. data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
  68. data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
  69. data/vendor/assets/build/medias/rubies/examples/_refresh.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62c07cd1f5c087a9dfe4e36b06cf4422e614657aa98cfee2e419f794e51f2eeb
4
- data.tar.gz: b2d2eb46ba7599080b0f2d515a62659696375514579ce007721d8a012de15e18
3
+ metadata.gz: 64c8921a4ed715c0ed422e430ca3e9b6ead122f06e81032d0e8843b9fa2e0e4c
4
+ data.tar.gz: 7920b914b719630b1a930d1f27616d31161e8befe33fd409098a55a90cf30ced
5
5
  SHA512:
6
- metadata.gz: ddd934acb39f162de762e634e3cc7f81cee597ccdba358cef0b294ace259b4766a9257c84704232447a85bf36cb4bbd331db9d486d979b5319ff4bdf6343c210
7
- data.tar.gz: 38ce69c494f2b55e667329e72c2e87bf80ac1b8a8787cea5d3c378f7c46cd7814fbfd6b3ac868d428deeaa07b594cb64ac1482f23817122e3a236f8c7cc3bc2f
6
+ metadata.gz: 2d1fe5f8e8967e1869da808953904dbcd41327676bf644cf19b260cc56f0febdf38a3d3673056ab51406ca0b6743708dcf2c5b1d8fb6e20cd7f8f8b94d425ebd
7
+ data.tar.gz: 314bec01e683e3bcf0e57abfe1bc273bf38a91650da89f277449226b8f23dc7626c1d3d76e0d8408bdc7e82f5c337e8beb2fae3e73b23cd827102374d8b62c24
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
- t.libs << "test"
8
- t.libs << "lib"
9
- t.test_files = FileList["test/**/test_*.rb"]
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/test_*.rb']
10
10
  end
11
11
 
12
12
  task default: :test
@@ -107,6 +107,7 @@ def build_user_code(user_project_path, source_code)
107
107
  File.open(application_js, 'w') do |f|
108
108
  f.puts application_content
109
109
  end
110
+ # minimize_application(user_project_path)
110
111
  end
111
112
 
112
113
  def minimize_aui(user_project_path)
@@ -215,7 +216,6 @@ task :build_user_code, :user_project_path, :production do |_t, args|
215
216
  user_project_path = args[:user_project_path]
216
217
  source_code = "#{user_project_path}/application/index.rb"
217
218
  build_user_code(user_project_path, source_code)
218
- minimize_application(user_project_path)
219
219
  end
220
220
 
221
221
  task :system_builder, :user_project_path, :production do |_t, args|
data/exe/atome CHANGED
@@ -145,7 +145,7 @@ def test_native(build_target)
145
145
  when :windows
146
146
  # windows
147
147
  else
148
- puts :freebsd
148
+ # freebsd
149
149
  end
150
150
  end
151
151
 
@@ -13,12 +13,14 @@ class Atome
13
13
 
14
14
  def initialize(atomes = {}, &atomes_proc)
15
15
  atomes.each_value do |elements|
16
+ # the instance variable below contain the id all any atomes that need to be informed when changes occurs
16
17
  @broadcast = {}
17
- Universe.add_to_atomes({ elements[:id] => self })
18
- elements[:bloc] = atomes_proc if atomes_proc
18
+ # now we store the proc in a an atome's property called :bloc
19
+ elements[:code] = atomes_proc if atomes_proc
19
20
  @atome = elements
20
- # now we initiate the rendering eg for for browser will call :browser_type generated method in identity.rb file
21
- type(@atome[:type])
21
+ # we initiate the rendering, eg for for browser we will call :browser_type generate method in identity.rb file
22
+ create_particle(:type, @atome[:type])
23
+ collapse
22
24
  end
23
25
  end
24
26
 
@@ -27,7 +29,8 @@ class Atome
27
29
  if params
28
30
  # the line below execute the proc created when using the build_particle method
29
31
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
30
- sanitize_particle(element, params, &user_proc)
32
+ params = sanitize(element, params)
33
+ create_particle(element, params, &user_proc)
31
34
  else
32
35
  get_particle(element, &user_proc)
33
36
  end
@@ -37,7 +40,8 @@ class Atome
37
40
  def additional_particle_methods(element, &method_proc)
38
41
  Atome.define_method "#{element}=" do |params = nil, &user_proc|
39
42
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
40
- sanitize_particle(element, params, &user_proc)
43
+ params = sanitize(element, params)
44
+ create_particle(element, params, &user_proc)
41
45
  end
42
46
  end
43
47
 
@@ -45,7 +49,7 @@ class Atome
45
49
  Atome.define_method element do |params = nil, &user_proc|
46
50
  if params
47
51
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
48
- params = atome_sanitizer(element, params)
52
+ params = sanitize(element, params)
49
53
  Atome.new({ element => params })
50
54
  else
51
55
  get_atome(element, &user_proc)
@@ -59,14 +63,8 @@ class Atome
59
63
  end
60
64
  end
61
65
 
62
- def new_atome_sanitizer(sanitizer_name)
63
- Atome.define_method sanitizer_name do |params = {}|
64
- params
65
- end
66
- end
67
-
68
66
  def run_optional_proc(proc_name, atome = self, value = '')
69
- option_found = Universe.get_optionals_methods(proc_name)
67
+ option_found = Universe.get_optional_method(proc_name)
70
68
  atome.instance_exec(value, &option_found) if option_found.is_a?(Proc)
71
69
  end
72
70
 
@@ -93,11 +91,10 @@ class Atome
93
91
  def create_particle(element, value, &user_proc)
94
92
  return false unless security_pass(element, value)
95
93
 
96
- run_optional_proc("pre_save_#{element}".to_sym, self, value)
97
- store_value(element, value)
98
- run_optional_proc("post_save_#{element}".to_sym, self, value)
94
+ run_optional_proc("pre_render_#{element}".to_sym, self, value)
99
95
  rendering(element, value, &user_proc)
100
96
  run_optional_proc("post_render_#{element}".to_sym, self, value)
97
+ store_value(element, value)
101
98
  self
102
99
  end
103
100
 
@@ -36,6 +36,6 @@ def shadow(params = {}, &bloc)
36
36
  grab(:view).shadow(params, &bloc)
37
37
  end
38
38
 
39
- def code(params = {}, &bloc)
40
- grab(:view).code(params, &bloc)
39
+ def web(params = {}, &bloc)
40
+ grab(:view).web(params, bloc)
41
41
  end
@@ -3,6 +3,23 @@
3
3
  generator = Genesis.generator
4
4
 
5
5
  generator.build_atome(:color)
6
+ generator.build_sanitizer(:color) do |params|
7
+ parent_found = found_parents_and_renderers[:parent]
8
+ render_found = found_parents_and_renderers[:renderers]
9
+ default_params = { renderers: render_found, id: "color_#{Universe.atomes.length}", type: :color,
10
+ parents: parent_found,
11
+ red: 0, green: 0, blue: 0, alpha: 1 }
12
+ params = create_color_hash(params) unless params.instance_of? Hash
13
+ default_params.merge!(params)
14
+ end
15
+
16
+ generator.build_sanitizer(:video) do |params|
17
+ parent_found = found_parents_and_renderers[:parent]
18
+ render_found = found_parents_and_renderers[:renderers]
19
+ default_params = { renderers: render_found, id: "video_#{Universe.atomes.length}", type: :video,
20
+ parents: parent_found }
21
+ default_params.merge!(params)
22
+ end
6
23
  generator.build_atome(:shadow)
7
24
  generator.build_atome(:shape)
8
25
  generator.build_atome(:text)
@@ -11,3 +28,11 @@ generator.build_atome(:video)
11
28
  generator.build_atome(:code)
12
29
  generator.build_atome(:audio)
13
30
  generator.build_atome(:element)
31
+ generator.build_atome(:web)
32
+ generator.build_sanitizer(:element) do |params|
33
+ parent_found = found_parents_and_renderers[:parent]
34
+ render_found = []
35
+ default_params = { renderers: render_found, id: "element_#{Universe.atomes.length}", type: :element,
36
+ parents: parent_found }
37
+ default_params.merge!(params)
38
+ end
@@ -3,3 +3,8 @@
3
3
  generator = Genesis.generator
4
4
 
5
5
  generator.build_particle(:touch)
6
+ generator.build_particle(:play)
7
+ generator.build_particle(:time)
8
+ generator.build_particle(:pause)
9
+ generator.build_particle(:on)
10
+ generator.build_particle(:fullscreen)
@@ -5,9 +5,23 @@ generator = Genesis.generator
5
5
  generator.build_particle(:type)
6
6
  generator.build_particle(:parents)
7
7
  generator.build_particle(:children)
8
+ generator.build_particle(:link) do |child_id|
9
+ child_found = grab(child_id)
10
+ child_found.atome[:parents] << @atome[:id]
11
+ child_found.refresh
12
+ end
13
+
8
14
  generator.build_particle(:id)
15
+ generator.build_sanitizer(:id) do |params|
16
+ if @atome[:id] != params
17
+ Universe.update_atome_id(params, self, @atome[:id])
18
+ else
19
+ Universe.add_to_atomes(params, self)
20
+ end
21
+ params
22
+ end
9
23
 
10
- generator.build_optional_methods(:pre_save_parents) do |parents_id_found|
24
+ generator.build_option(:pre_render_parents) do |parents_id_found|
11
25
  parents_id_found.each do |parents_id|
12
26
  parents_found = grab(parents_id)
13
27
  parents_found.children << id if parents_found
@@ -9,4 +9,5 @@ end
9
9
  generator.build_particle(:right)
10
10
  generator.build_particle(:top)
11
11
  generator.build_particle(:bottom)
12
+ generator.build_particle(:rotate)
12
13
  generator.build_particle(:direction)
@@ -3,7 +3,11 @@
3
3
  generator = Genesis.generator
4
4
 
5
5
  generator.build_particle(:renderers)
6
- generator.build_particle(:bloc)
6
+ generator.build_particle(:code)
7
+ generator.build_particle(:run) do |params|
8
+ code_found = @atome[:code]
9
+ instance_exec(params, &code_found) if code_found.is_a?(Proc)
10
+ end
7
11
  generator.build_particle(:broadcast)
8
12
  generator.build_particle(:additional)
9
13
  generator.build_particle(:data)
@@ -12,3 +16,16 @@ generator.build_particle(:delete) do
12
16
  end
13
17
  generator.build_particle(:clear)
14
18
  generator.build_particle(:path)
19
+ generator.build_particle(:schedule) do |date, proc|
20
+ date = date.to_s
21
+ delimiters = [',', ' ', ':', '-']
22
+ format_date = date.split(Regexp.union(delimiters))
23
+ Universe.renderer_list.each do |renderer|
24
+ send("#{renderer}_schedule", format_date, &proc)
25
+ end
26
+ end
27
+ generator.build_particle(:read) do |file, proc|
28
+ Universe.renderer_list.each do |renderer|
29
+ send("#{renderer}_reader", file, &proc)
30
+ end
31
+ end
@@ -23,13 +23,9 @@ class Atome
23
23
  # we add the new method to the atome's collection of methods
24
24
  Universe.add_to_atome_list(atome_name)
25
25
  auto_render_generator(atome_name)
26
- auto_sanitizer_generator(atome_name)
27
26
  new_atome(atome_name, &atome_proc)
28
27
  end
29
28
 
30
- def auto_sanitizer_generator(element)
31
- build_sanitizer_method("sanitize_#{element}")
32
- end
33
29
  def auto_render_generator(element)
34
30
  Universe.renderer_list.each do |render_engine|
35
31
  build_render_method("#{render_engine}_#{element}")
@@ -40,12 +36,11 @@ class Atome
40
36
  new_render_engine(renderer_name, &method_proc)
41
37
  end
42
38
 
43
- def build_sanitizer_method(sanitizer_name)
44
- new_atome_sanitizer(sanitizer_name)
39
+ def build_sanitizer(method_name, &method_proc)
40
+ Universe.add_sanitizer_method(method_name.to_sym, &method_proc)
45
41
  end
46
42
 
47
-
48
- def build_optional_methods(method_name, &method_proc)
49
- Universe.add_optionals_methods(method_name.to_sym, &method_proc)
43
+ def build_option(method_name, &method_proc)
44
+ Universe.add_optional_method(method_name.to_sym, &method_proc)
50
45
  end
51
46
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # callbacks methods here
4
+ class Atome
5
+ def schedule_callback(proc)
6
+ instance_exec(&proc) if proc.is_a?(Proc)
7
+ end
8
+
9
+ def read_callback(file, proc)
10
+ instance_exec(file, &proc) if proc.is_a?(Proc)
11
+ end
12
+ end
@@ -6,13 +6,13 @@ module Essentials
6
6
  render_engines: [:browser],
7
7
  element: { type: :element, renderers: [] },
8
8
  box: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99 },
9
- circle: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99, left: 12, top: 12,
9
+ circle: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99,
10
10
  smooth: '100%' },
11
11
  shape: { renderers: '', id: '', width: 100, type: :shape, height: 100, left: 100, top: 100,
12
12
  color: { left: 0, top: 0, z: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
13
13
  generator: :manual },
14
14
  text: { type: :text, parents: [:view], children: [], visual: { size: 25 },
15
- data: 'this is a text sample', left: 300, top: 33, width: 199, height: 33 },
15
+ data: 'this is a text sample', width: 199, height: 33 },
16
16
  drm: { type: :drm },
17
17
  shadow: {}
18
18
  }
@@ -10,7 +10,7 @@ class Atome
10
10
  { red: split_data[0].to_f / 100, green: split_data[1].to_f / 100, blue: split_data[2].to_f / 100 }
11
11
  end
12
12
 
13
- def found_parent_and_render
13
+ def found_parents_and_renderers
14
14
  if @atome
15
15
  parent_found = [@atome[:id]]
16
16
  render_found = @atome[:renderers]
@@ -20,23 +20,4 @@ class Atome
20
20
  end
21
21
  { parent: parent_found, renderers: render_found }
22
22
  end
23
-
24
- def sanitize_element(params)
25
- parent_found = found_parent_and_render[:parent]
26
- render_found = found_parent_and_render[:renderers]
27
- default_params = { renderers: render_found, id: "element_#{Universe.atomes.length}", type: :element,
28
- parents: parent_found }
29
- default_params.merge!(params)
30
- end
31
-
32
- def sanitize_color(params)
33
- parent_found = found_parent_and_render[:parent]
34
- render_found = found_parent_and_render[:renderers]
35
- default_params = { renderers: render_found, id: "color_#{Universe.atomes.length}", type: :color,
36
- parents: parent_found,
37
- red: 0, green: 0, blue: 0, alpha: 1 }
38
- params = create_color_hash(params) unless params.instance_of? Hash
39
- default_params.merge!(params)
40
- end
41
-
42
23
  end
@@ -4,7 +4,7 @@
4
4
  class Atome
5
5
  private
6
6
 
7
- def a_render
7
+ def collapse
8
8
  @atome.each do |element, value|
9
9
  send(element, value) unless element == :type
10
10
  end
@@ -14,19 +14,12 @@ class Atome
14
14
  true
15
15
  end
16
16
 
17
- def particle_sanitizer(_element, params)
17
+ def sanitize(element, params)
18
+ bloc_found = Universe.get_sanitizer_method(element)
19
+ params = instance_exec(params, &bloc_found) if bloc_found.is_a?(Proc)
18
20
  params
19
21
  end
20
22
 
21
- def atome_sanitizer(element, params)
22
- send("sanitize_#{element}", params)
23
- end
24
-
25
- def sanitize_particle(element, value, &user_proc)
26
- value = particle_sanitizer(element, value)
27
- create_particle(element, value, &user_proc)
28
- end
29
-
30
23
  def identity_generator
31
24
  { date: Time.now, location: geolocation }
32
25
  end
@@ -54,4 +47,8 @@ class Atome
54
47
  value = particle.value
55
48
  real_atome[property] << value
56
49
  end
50
+
51
+ def refresh
52
+ collapse
53
+ end
57
54
  end
@@ -4,13 +4,6 @@
4
4
  class Atome
5
5
  private
6
6
 
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
- end
12
- end
13
-
14
7
  def get(element)
15
8
  @atome[element]
16
9
  end
@@ -6,7 +6,8 @@ class Universe
6
6
  @atome_list = []
7
7
  @particle_list = []
8
8
  @renderer_list = %i[html browser headless server]
9
- @optionals_methods = {}
9
+ @options = {}
10
+ @sanitizers = {}
10
11
 
11
12
  class << self
12
13
  attr_reader :atomes, :renderer_list, :atome_list, :particle_list
@@ -15,22 +16,38 @@ class Universe
15
16
  instance_variable_get('@particle_list').push(particle)
16
17
  end
17
18
 
18
- def add_optionals_methods(method_name, &method_proc)
19
+ def add_optional_method(method_name, &method_proc)
19
20
  # this method is used to add optional methods
20
- instance_variable_get('@optionals_methods').merge!({ method_name => method_proc })
21
+ instance_variable_get('@options').merge!({ method_name => method_proc })
21
22
  end
22
23
 
23
- def get_optionals_methods(method_name)
24
+ def get_optional_method(method_name)
24
25
  # this method is used to add optional methods
25
- instance_variable_get('@optionals_methods')[method_name]
26
+ instance_variable_get('@options')[method_name]
27
+ end
28
+
29
+ def add_sanitizer_method(method_name, &method_proc)
30
+ # this method is used to add sanitizer methods
31
+ instance_variable_get('@sanitizers').merge!({ method_name => method_proc })
32
+ end
33
+
34
+ def get_sanitizer_method(method_name)
35
+ # this method is used to add optional methods
36
+ instance_variable_get('@sanitizers')[method_name]
26
37
  end
27
38
 
28
39
  def add_to_atome_list(atome)
29
40
  instance_variable_get('@atome_list').push(atome)
30
41
  end
31
42
 
32
- def add_to_atomes(atome)
33
- instance_variable_get('@atomes').merge!(atome)
43
+ def add_to_atomes(id, atome)
44
+ # instance_variable_get('@atomes').merge!(atome)
45
+ @atomes[id] = atome
46
+ end
47
+
48
+ def update_atome_id(id, atome, prev_id)
49
+ @atomes[id] = atome
50
+ @atomes.delete(prev_id)
34
51
  end
35
52
 
36
53
  def app_identity
@@ -41,9 +58,9 @@ class Universe
41
58
  # and finally the object is 3 as this the third object created by the main server
42
59
  end
43
60
 
44
- def change_atome_id(prev_id, new_id)
45
- @atomes[new_id] = @atomes.delete(prev_id)
46
- end
61
+ # def change_atome_id(prev_id, new_id)
62
+ # @atomes[new_id] = @atomes.delete(prev_id)
63
+ # end
47
64
 
48
65
  def delete(id)
49
66
  @atomes.delete(id)
@@ -22,7 +22,7 @@ class Atome
22
22
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
23
23
  generated_parents = params[:parents] || [id.value]
24
24
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
25
- color_generated = sanitize_color({ parents: [generated_id], red: 0.3, green: 0.3, blue: 0.3 })
25
+ color_generated = sanitize(:color, { parents: [generated_id], red: 0.3, green: 0.3, blue: 0.3 })
26
26
  params[:color] = color_generated
27
27
  Atome.new({ atome_type => params }, &bloc)
28
28
  end
@@ -34,7 +34,7 @@ class Atome
34
34
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
35
35
  generated_parents = params[:parents] || [id.value]
36
36
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
37
- color_generated = sanitize_color({ parents: [generated_id], red: 0.6, green: 0.6, blue: 0.6 })
37
+ color_generated = sanitize(:color, { parents: [generated_id], red: 0.6, green: 0.6, blue: 0.6 })
38
38
  params[:color] = color_generated
39
39
  Atome.new({ atome_type => params }, &bloc)
40
40
  end
@@ -45,7 +45,7 @@ class Atome
45
45
  generated_id = params[:id] || "image_#{Universe.atomes.length}"
46
46
  generated_render = params[:renderers] || default_renderer
47
47
  generated_parents = params[:parents] || id.value
48
-
48
+ # TODO : the line below should get the value from default params Essentials
49
49
  temp_default = { renderers: generated_render, id: generated_id, type: :image, parents: [generated_parents],
50
50
  children: [], width: 99, height: 99, path: './medias/images/atome.svg' }
51
51
  params = temp_default.merge(params)
@@ -59,8 +59,30 @@ class Atome
59
59
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
60
60
  generated_parents = params[:parents] || [id.value]
61
61
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
62
- color_generated = sanitize_color({ parents: [generated_id], red: 0.9, green: 0.9, blue: 0.9 })
62
+ color_generated = sanitize(:color, { parents: [generated_id], red: 0.9, green: 0.9, blue: 0.9 })
63
63
  params[:color] = color_generated
64
64
  Atome.new({ atome_type => params }, &bloc)
65
65
  end
66
+
67
+ def element(params = {}, &bloc)
68
+ atome_type = :element
69
+ generated_render = params[:renderers] || []
70
+ generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
71
+ generated_parents = params[:parents] || [id.value]
72
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
73
+ Atome.new({ atome_type => params }, &bloc)
74
+ end
75
+
76
+ def web(params = {}, &bloc)
77
+ default_renderer = Essentials.default_params[:render_engines]
78
+
79
+ generated_id = params[:id] || "web_#{Universe.atomes.length}"
80
+ generated_render = params[:renderers] || default_renderer
81
+ generated_parents = params[:parents] || id.value
82
+ # TODO : the line below should get the value from default params Essentials
83
+ temp_default = { renderers: generated_render, id: generated_id, type: :web, parents: [generated_parents],
84
+ children: [], width: 120, height: 120, path: 'https://www.youtube.com/embed/usQDazZKWAk' }
85
+ params = temp_default.merge(params)
86
+ Atome.new({ image: params }, &bloc)
87
+ end
66
88
  end
@@ -18,7 +18,7 @@ generator.build_render_method(:browser_shape) do
18
18
  end.append_to(BrowserHelper.browser_document[:user_view])
19
19
  @browser_object = BrowserHelper.browser_document[id_found]
20
20
  # Render particles below
21
- a_render
21
+ # collapse
22
22
  end
23
23
 
24
24
  generator.build_render_method(:browser_color) do |_value|
@@ -37,8 +37,9 @@ generator.build_render_method(:browser_color) do |_value|
37
37
  # TODO/ use the code below to modify the style tag
38
38
  @browser_object = BrowserHelper.browser_document[id_found]
39
39
  # now we just have to attach the color atome
40
- parents(@atome[:parents])
41
- children(@atome[:children])
40
+ # parents(@atome[:parents])
41
+ # children(@atome[:children])
42
+ # collapse
42
43
  end
43
44
 
44
45
  generator.build_render_method(:browser_shadow) do |_value|
@@ -65,31 +66,43 @@ end
65
66
 
66
67
  generator.build_render_method(:browser_image) do |_user_prc|
67
68
  @browser_type = :div
68
- id_found = id
69
+ id_found = @atome[:id]
69
70
  DOM do
70
71
  img({ id: id_found }).atome
71
72
  end.append_to(BrowserHelper.browser_document[:user_view])
72
73
  @browser_object = BrowserHelper.browser_document[id_found]
73
74
  # 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]
75
+ # collapse
84
76
  end
85
77
 
86
78
  generator.build_render_method(:browser_text) do |_value, _user_proc|
87
- id_found = id
79
+ id_found = @atome[:id]
88
80
  DOM do
89
81
  div(id: id_found).atome.text
90
82
  end.append_to(BrowserHelper.browser_document[:user_view])
91
83
  @browser_object = BrowserHelper.browser_document[id_found]
92
84
  @browser_type = :div
93
85
  # Render particles below
94
- a_render
86
+ # collapse
87
+ end
88
+
89
+ generator.build_render_method(:browser_web) do
90
+ @browser_type = :web
91
+ id_found = @atome[:id]
92
+ DOM do
93
+ iframe({ id: id_found }).atome
94
+ end.append_to(BrowserHelper.browser_document[:user_view])
95
+ @browser_object = BrowserHelper.browser_document[id_found]
96
+ @browser_object.attributes[:allow] = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
97
+ @browser_object.attributes[:allowfullscreen] = true
98
+ @html_type = :web
95
99
  end
100
+
101
+ generator.build_render_method(:browser_video) do |_value, _user_proc|
102
+ @browser_type = :div
103
+ id_found = @atome[:id]
104
+ DOM do
105
+ video({ id: id_found, autoplay: false, loop: false, muted: true }).atome
106
+ end.append_to(BrowserHelper.browser_document[:user_view])
107
+ @browser_object = BrowserHelper.browser_document[id_found]
108
+ end