atome 0.5.1.1 → 0.5.1.4

Sign up to get free protection for your applications and to get access to all the features.
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