atome 0.5.2.8 → 0.5.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -1
  3. data/app_builder_helpers/Rakefile +2 -2
  4. data/exe/atome +1 -1
  5. data/lib/atome/atome.rb +28 -26
  6. data/lib/atome/extensions/atome.rb +4 -0
  7. data/lib/atome/extensions/matrix.rb +349 -122
  8. data/lib/atome/genesis/generators/atome.rb +5 -1
  9. data/lib/atome/genesis/generators/identity.rb +43 -13
  10. data/lib/atome/genesis/generators/material.rb +20 -5
  11. data/lib/atome/genesis/generators/time.rb +1 -1
  12. data/lib/atome/genesis/generators/utility.rb +26 -2
  13. data/lib/atome/genesis/genesis.rb +12 -4
  14. data/lib/atome/genesis/sparkle.rb +35 -3
  15. data/lib/atome/helpers/essentials.rb +24 -15
  16. data/lib/atome/helpers/utilities.rb +42 -3
  17. data/lib/atome/kernel/batch.rb +48 -0
  18. data/lib/atome/presets/atome.rb +22 -6
  19. data/lib/atome/renderers/browser/atome.rb +1 -3
  20. data/lib/atome/renderers/browser/browser.rb +14 -1
  21. data/lib/atome/renderers/browser/geometry.rb +10 -2
  22. data/lib/atome/renderers/browser/helpers/video_helper.rb +1 -1
  23. data/lib/atome/renderers/browser/helpers/web_helper.rb +1 -5
  24. data/lib/atome/renderers/browser/identity.rb +7 -11
  25. data/lib/atome/renderers/browser/material.rb +10 -0
  26. data/lib/atome/renderers/html/atome.rb +2 -0
  27. data/lib/atome/renderers/renderer.rb +3 -2
  28. data/lib/atome/version.rb +1 -1
  29. data/lib/atome.rb +2 -1
  30. data/sig/atome.rbs +14 -0
  31. data/vendor/assets/Rakefile +1 -1
  32. data/vendor/assets/src/css/style.css +6 -6
  33. data/vendor/assets/src/medias/rubies/examples/_2_solve.rb +41 -27
  34. data/vendor/assets/src/medias/rubies/examples/_attach.rb +12 -0
  35. data/vendor/assets/src/medias/rubies/examples/_audio.rb +81 -28
  36. data/vendor/assets/src/medias/rubies/examples/_dataset.rb +191 -111
  37. data/vendor/assets/src/medias/rubies/examples/clone.rb +4 -4
  38. data/vendor/assets/src/medias/rubies/examples/delete.rb +2 -2
  39. data/vendor/assets/src/medias/rubies/examples/drag.rb +2 -1
  40. data/vendor/assets/src/medias/rubies/examples/table.rb +479 -0
  41. data/vendor/assets/src/medias/rubies/examples/to_px.rb +10 -0
  42. metadata +7 -4
  43. data/vendor/assets/src/medias/rubies/examples/attach.rb +0 -12
@@ -11,6 +11,25 @@ end
11
11
  generator.build_particle(:broadcast)
12
12
  generator.build_particle(:additional)
13
13
  generator.build_particle(:data)
14
+ # generator.build_particle(:delete) do |params|
15
+ # if params == true
16
+ # # the machine delete the current atome
17
+ # Universe.delete(@atome[:id])
18
+ # elsif params[:id]
19
+ # # the machine try to an atome by it's ID and delete it
20
+ # grab(params[:id]).delete(true)
21
+ # elsif instance_of? Hash
22
+ # # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
23
+ # # with id my_monitor
24
+ # params.each do |param, value|
25
+ # atome[param][value] = nil
26
+ # end
27
+ # else
28
+ # # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
29
+ # send(params,0)
30
+ # end
31
+ # end
32
+
14
33
  generator.build_particle(:delete) do |params|
15
34
  if params == true
16
35
  # the machine delete the current atome
@@ -18,17 +37,18 @@ generator.build_particle(:delete) do |params|
18
37
  elsif params[:id]
19
38
  # the machine try to an atome by it's ID and delete it
20
39
  grab(params[:id]).delete(true)
21
- elsif instance_of? Hash
40
+ elsif params.instance_of? Hash
22
41
  # the machine try to find the sub particle id and remove it eg a.delete(monitor: :my_monitor) remove the monitor
23
42
  # with id my_monitor
24
43
  params.each do |param, value|
25
44
  atome[param][value] = nil
26
45
  end
27
46
  else
28
- # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
47
+ # # the machine try to reset the current particle(params), eg a.delete(:left) => left: 0
29
48
  send(params,0)
30
49
  end
31
50
  end
51
+
32
52
  generator.build_particle(:clear)
33
53
  generator.build_particle(:path)
34
54
  generator.build_particle(:schedule) do |date, proc|
@@ -47,3 +67,7 @@ end
47
67
 
48
68
  generator.build_particle(:cursor)
49
69
 
70
+ generator.build_particle(:preset)
71
+
72
+ generator.build_particle(:relations, { type: :hash })
73
+
@@ -11,14 +11,22 @@ end
11
11
 
12
12
  # Genesis method here
13
13
  class Atome
14
- def build_particle(particle_name,type=:string, &particle_proc)
14
+ def build_particle(particle_name,options={},&particle_proc)
15
+ type = options[:type]
16
+ type = :string if options[:type].nil?
17
+ store = options[:store]
18
+ store = true if options[:store].nil?
19
+ render = options[:render]
20
+ render = true if options[:render].nil?
21
+
15
22
  # we add the new method to the particle's collection of methods
16
23
  Universe.add_to_particle_list(particle_name, type)
17
- auto_render_generator(particle_name)
18
- new_particle(particle_name, &particle_proc)
19
- additional_particle_methods(particle_name, &particle_proc)
24
+ auto_render_generator(particle_name) if render # automatise the creation of an empty render method for current particle
25
+ new_particle(particle_name,store,render , &particle_proc)
26
+ additional_particle_methods(particle_name, store,render ,&particle_proc) # create alternative methods such as create 'method='
20
27
  end
21
28
 
29
+
22
30
  def build_atome(atome_name, &atome_proc)
23
31
  # we add the new method to the atome's collection of methods
24
32
  Universe.add_to_atome_list(atome_name)
@@ -35,11 +35,43 @@ Atome.new(
35
35
  parents: [:eDen], children: [] } }
36
36
  )
37
37
 
38
+ # color creation
39
+ Atome.new(
40
+ { color: { renderers: default_render, id: :view_color, type: :color,
41
+ red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } }
42
+ )
43
+
44
+ Atome.new(
45
+ { color: { renderers: default_render, id: :shape_color, type: :color,
46
+ red: 0.4, green: 0.4, blue: 0.4, alpha: 1 } }
47
+ )
48
+
49
+ Atome.new(
50
+ { color: { renderers: default_render, id: :box_color, type: :color,
51
+ red: 0.5, green: 0.5, blue: 0.5, alpha: 1 } }
52
+ )
53
+
54
+ Atome.new(
55
+ { color: { renderers: default_render, id: :text_color, type: :color,
56
+ red: 0.3, green: 0.3, blue: 0.3, alpha: 1 } }
57
+ )
58
+
59
+ Atome.new(
60
+ { color: { renderers: default_render, id: :circle_color, type: :color,
61
+ red: 0.6, green: 0.6, blue: 0.6, alpha: 1 } }
62
+ )
63
+
64
+ Atome.new(
65
+ { color: { renderers: default_render, id: :matrix_color, type: :color,
66
+ left: 0, top: 0, red: 0.7, green: 0.7, blue: 0.7, alpha: 1, diffusion: :linear } }
67
+ )
68
+
69
+ # view creation
38
70
  Atome.new(
39
71
  { shape: { renderers: default_render, id: :view, type: :shape, parents: [:user_view], children: [],
40
- left: 0, right: 0, top: 0, bottom: 0, overflow: :auto,
41
- color: { renderers: default_render, id: :view_color, type: :color, attach: [:view],
42
- red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } } }
72
+ attached: [:view_color], left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto
73
+ }
74
+ }
43
75
  )
44
76
 
45
77
  # init basic object for atome environment
@@ -4,22 +4,31 @@
4
4
  module Essentials
5
5
  @default_params = {
6
6
  render_engines: [:browser],
7
- animation: { type: :animation },
8
- element: { type: :element, renderers: [] },
9
- box: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99,
10
- color: { left: 0, top: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
11
- left: 100, top: 100 },
12
- circle: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99,
13
- color: { left: 0, top: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
14
- left: 100, top: 100, smooth: '100%' },
15
- shape: { renderers: '', id: '', width: 100, type: :shape, height: 100, left: 100, top: 100,
16
- color: { left: 0, top: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
17
- generator: :manual },
18
- text: { renderers: '', id: '',type: :text, parents: [:view], children: [], visual: { size: 25 },
19
- color: { left: 0, top: 0, red: 0.3, green: 0.3, blue: 0.3, alpha: 1, diffusion: :linear },
20
- data: 'this is a text sample', width: 199, height: 33 },
7
+ animation: { type: :animation, children: [] },
8
+ element: { type: :element, renderers: [], children: [] },
9
+ matrix: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
10
+ attached: [:matrix_color], children: [],
11
+ # color: { left: 0, top: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
12
+ left: 100, top: 100, clones: [], preset: :matrix },
13
+ box: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
14
+ attached: [:box_color], children: [],
15
+ # color: { left: 0, top: 0, red: 1, green: 0.3, blue: 0.3, alpha: 1, diffusion: :linear },
16
+ left: 100, top: 100, clones: [], preset: :box },
17
+ circle: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99, smooth: '100%',
18
+ # color: { left: 0, top: 0, red: 0.3, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
19
+ attached: [:circle_color], children: [],
20
+ left: 100, top: 100, clones: [], preset: :circle },
21
+ shape: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
22
+ attached: [:view_color], children: [],
23
+ # color: { left: 0, top: 0, red: 0.6, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
24
+ left: 100, top: 100, clones: [] },
25
+ text: { renderers: [], id: '', type: :text, parents: [:view], visual: { size: 25 },
26
+ attached: [:text_color], children: [],
27
+ # color: { left: 0, top: 0, red: 0.3, green: 0.3, blue: 0.3, alpha: 1, diffusion: :linear },
28
+ data: 'this is a text sample', width: 199, height: 33, clones: [] },
21
29
  drm: { type: :drm },
22
- shadow: {}
30
+ shadow: {},
31
+ color: {}
23
32
  }
24
33
 
25
34
  def self.default_params
@@ -28,11 +28,12 @@ class Atome
28
28
  "historize : #{property} #{value}"
29
29
  end
30
30
 
31
- def broadcasting(altered_particle, value)
31
+ def broadcasting(element)
32
+ params=instance_variable_get("@#{element}")
32
33
  @broadcast.each_value do |particle_monitored|
33
- if particle_monitored[:particles].include?(altered_particle)
34
+ if particle_monitored[:particles].include?(element)
34
35
  code_found=particle_monitored[:code]
35
- instance_exec(self, altered_particle, value, &code_found) if code_found.is_a?(Proc)
36
+ instance_exec(self, element, params, &code_found) if code_found.is_a?(Proc)
36
37
  end
37
38
  end
38
39
  end
@@ -100,4 +101,42 @@ class Atome
100
101
  def refresh
101
102
  collapse
102
103
  end
104
+
105
+ def collector(params = {}, &bloc)
106
+ atome_type = :collector
107
+ generated_render = params[:renderers] || []
108
+ generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
109
+ generated_parents = params[:parents] || [id.value]
110
+ generated_children = params[:children] || []
111
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
112
+ Batch.new({ atome_type => params }, &bloc)
113
+ end
114
+
115
+ def each(&proc)
116
+ value.each do |val|
117
+ instance_exec(val, &proc) if proc.is_a?(Proc)
118
+ end
119
+ end
120
+
121
+ def [](range)
122
+ if value[range].class == Atome
123
+ return value[range]
124
+ elsif value[range].class == Array
125
+ collector_object = Object.collector({})
126
+ collected_atomes = []
127
+ value[range].each do |atome_found|
128
+ collected_atomes << atome_found
129
+ end
130
+ collector_object.data(collected_atomes)
131
+
132
+ return collector_object
133
+ end
134
+
135
+ end
136
+
137
+ def set(params)
138
+ params.each do |particle, value|
139
+ send(particle, value)
140
+ end
141
+ end
103
142
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Batch
4
+
5
+ def each(&proc)
6
+ value.each do |val|
7
+ instance_exec(val, &proc) if proc.is_a?(Proc)
8
+ end
9
+ end
10
+
11
+ def id(val = nil)
12
+ if val
13
+ @id = val
14
+ else
15
+ @id
16
+ end
17
+ end
18
+
19
+ def initialize(params)
20
+ @id = params[:id] || "batch_#{Universe.atomes.length}"
21
+ Universe.add_to_atomes(@id, self)
22
+ end
23
+
24
+ def dispatch (method, *args, &block)
25
+ @data.each do |atome_found|
26
+ atome_found.send(method, *args, &block)
27
+ end
28
+ end
29
+
30
+ # TODO: automatise collector methods creation when creato,g a new atome type
31
+ def color(args, &block)
32
+
33
+ dispatch(:color, args, &block)
34
+ end
35
+
36
+ def shadow(args, &block)
37
+ dispatch(:color, args, &block)
38
+ end
39
+
40
+ def method_missing(method, *args, &block)
41
+ dispatch(method, args, &block)
42
+ end
43
+
44
+ def data(collection)
45
+ @data = collection
46
+ end
47
+
48
+ end
@@ -7,22 +7,34 @@
7
7
 
8
8
  # shaper creation
9
9
  class Atome
10
- def atome_common(atome_type, generated_id, generated_render, generated_parents, params)
10
+ def atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
11
11
  temp_default = Essentials.default_params[atome_type] || {}
12
12
  temp_default[:id] = generated_id
13
13
  temp_default[:parents] = generated_parents
14
14
  temp_default[:clones] = []
15
15
  temp_default[:renderers] = generated_render
16
+ temp_default[:children] = generated_children.concat(temp_default[:children])
16
17
  temp_default.merge(params)
17
18
  end
18
19
 
20
+
19
21
  def box(params = {}, &bloc)
20
22
  default_renderer = Essentials.default_params[:render_engines]
21
23
  atome_type = :box
22
24
  generated_render = params[:renderers] || default_renderer
23
25
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
24
26
  generated_parents = params[:parents] || [id.value]
25
- params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
27
+ generated_children = params[:children] || []
28
+
29
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
30
+
31
+ # params2 = { renderers: [:browser], id: generated_id, type: :shape, parents: [generated_parents], children: [],
32
+ # width: 99, height: 99,
33
+ # color: { renderers: [:browser], id: "#{params[:id]}_color", type: :color, attach: [params[:id]],
34
+ # red: 0.15, green: 0.30, blue: 0.6, alpha: 1 },
35
+ # left: 100, top: 100, clones: [], preset: :box
36
+ # }
37
+ # params[:children]=[]
26
38
  Atome.new({ atome_type => params }, &bloc)
27
39
  end
28
40
 
@@ -32,7 +44,8 @@ class Atome
32
44
  generated_render = params[:renderers] || default_renderer
33
45
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
34
46
  generated_parents = params[:parents] || [id.value]
35
- params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
47
+ generated_children = params[:children] || []
48
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
36
49
  Atome.new({ atome_type => params }, &bloc)
37
50
  end
38
51
 
@@ -54,7 +67,8 @@ class Atome
54
67
  generated_render = params[:renderers] || default_renderer
55
68
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
56
69
  generated_parents = params[:parents] || [id.value]
57
- params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
70
+ generated_children = params[:children] || []
71
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
58
72
  Atome.new({ atome_type => params }, &bloc)
59
73
  end
60
74
 
@@ -63,7 +77,8 @@ class Atome
63
77
  generated_render = params[:renderers] || []
64
78
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
65
79
  generated_parents = params[:parents] || [id.value]
66
- params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
80
+ generated_children = params[:children] || []
81
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
67
82
  Atome.new({ atome_type => params }, &bloc)
68
83
  end
69
84
 
@@ -86,7 +101,8 @@ class Atome
86
101
  generated_render = params[:renderers] || default_renderer
87
102
  generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
88
103
  generated_parents = params[:parents] || []
89
- params = atome_common(atome_type, generated_id, generated_render, generated_parents, params)
104
+ generated_children = params[:children] || []
105
+ params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
90
106
  Atome.new({ atome_type => params }, &bloc)
91
107
  end
92
108
  end
@@ -6,8 +6,6 @@ DOM = :nil
6
6
 
7
7
  def parents(_val) end
8
8
 
9
- # end dummy code
10
-
11
9
  generator = Genesis.generator
12
10
 
13
11
  generator.build_render(:browser_shape) do
@@ -77,7 +75,7 @@ generator.build_render(:browser_text) do |_value, _user_proc|
77
75
  end
78
76
 
79
77
  generator.build_render(:browser_web) do
80
- @browser_type = :web
78
+ @browser_type = :div
81
79
  id_found = @atome[:id]
82
80
  DOM do
83
81
  iframe({ id: id_found }).atome
@@ -23,7 +23,20 @@ require 'atome/renderers/browser/helpers/video_helper'
23
23
  require 'atome/renderers/browser/helpers/web_helper'
24
24
 
25
25
  class Atome
26
- attr_accessor 'browser_object'
26
+ attr_accessor :browser_object
27
+
28
+ def to_px
29
+ id_found = real_atome[:id]
30
+ property_found=property
31
+ value_get = ''
32
+ `
33
+ div = document.getElementById(#{id_found});
34
+ var style = window.getComputedStyle(div);
35
+ var original_value = style.getPropertyValue(#{property_found});
36
+ #{value_get}= parseInt(original_value);
37
+ `
38
+ value_get
39
+ end
27
40
  end
28
41
 
29
42
  def atome_js
@@ -3,9 +3,17 @@
3
3
  generator = Genesis.generator
4
4
 
5
5
  generator.build_render(:browser_width) do |value|
6
- @browser_object.style[:width] = "#{value}px"
6
+ @browser_object.style[:width] = if value.instance_of? String
7
+ value
8
+ else
9
+ "#{value}px"
10
+ end
7
11
  end
8
12
 
9
13
  generator.build_render(:browser_height) do |value|
10
- @browser_object.style[:height] = "#{value}px"
14
+ @browser_object.style[:height] = if value.instance_of? String
15
+ value
16
+ else
17
+ "#{value}px"
18
+ end
11
19
  end
@@ -24,7 +24,7 @@ module BrowserHelper
24
24
  end
25
25
 
26
26
  def self.browser_play_video(_value, browser_object_found, atome_hash, atome_object, proc)
27
- markers = atome_hash[:markers]
27
+ markers = atome_hash[:markers] ||= {}
28
28
  markers.each_value do |value|
29
29
  value[:end] = value[:begin] + 0.25 unless value[:end]
30
30
  value[:label] = "label_#{atome_hash[:markers].length}" unless value[:label]
@@ -23,8 +23,4 @@ module BrowserHelper
23
23
  browser_object[:src] = value
24
24
  end
25
25
 
26
- def self.browser_attach_web(parents, html_object, _atome)
27
- html_object.append_to(browser_document[parents])
28
- end
29
-
30
- end
26
+ end
@@ -3,6 +3,11 @@
3
3
  generator = Genesis.generator
4
4
 
5
5
  generator.build_render(:browser_id) do |params|
6
+ if @browser_type == :style
7
+ prev_content = @browser_object.inner_html
8
+ new_content = prev_content.sub(@browser_object.id, params)
9
+ @browser_object.inner_html = new_content
10
+ end
6
11
  browser_object.id = params if @atome[:id] != params
7
12
  end
8
13
 
@@ -10,17 +15,8 @@ generator.build_render(:browser_type) do |params|
10
15
  send("browser_#{params}", user_proc)
11
16
  end
12
17
 
13
- generator.build_render(:browser_parents) do |parents_found|
14
- parents_found.each do |parent_found|
15
- BrowserHelper.send("browser_attach_#{@browser_type}", parent_found, @browser_object, @atome)
16
- end
17
- end
18
-
19
- generator.build_option(:pre_render_children) do |children_pass|
20
- children_pass.each do |child_found|
21
- atome_found = grab(child_found)
22
- atome_found.parents([@atome[:id]])
23
- end
18
+ generator.build_render(:browser_family) do |parents_found|
19
+ BrowserHelper.send("browser_attach_#{@browser_type}", parents_found, @browser_object, @atome)
24
20
  end
25
21
 
26
22
  generator.build_render(:browser_attach) do |parents_found|
@@ -9,15 +9,21 @@ generator.build_render(:red) do |value|
9
9
  alpha = @atome[:alpha]
10
10
  color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
11
11
  BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
12
+ # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
13
+ self
12
14
  end
13
15
 
14
16
  generator.build_render(:green) do |value|
17
+ # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
18
+ self
15
19
  red = @atome[:red] * 255
16
20
  green = (@atome[:green] = value) * 255
17
21
  blue = @atome[:blue] * 255
18
22
  alpha = @atome[:alpha]
19
23
  color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
20
24
  BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
25
+ # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
26
+ self
21
27
  end
22
28
 
23
29
  generator.build_render(:blue) do |value|
@@ -27,6 +33,8 @@ generator.build_render(:blue) do |value|
27
33
  alpha = @atome[:alpha]
28
34
  color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
29
35
  BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
36
+ # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
37
+ self
30
38
  end
31
39
 
32
40
  generator.build_render(:alpha) do |value|
@@ -36,6 +44,8 @@ generator.build_render(:alpha) do |value|
36
44
  alpha = (@atome[:alpha] = value)
37
45
  color_updated = "rgba(#{red}, #{green}, #{blue}, #{alpha})"
38
46
  BrowserHelper.send("browser_colorize_#{@atome[:type]}", color_updated, @atome)
47
+ # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
48
+ self
39
49
  end
40
50
 
41
51
  generator.build_render(:visual) do |value|
@@ -11,6 +11,8 @@ generator.build_render(:html_shape) do
11
11
  @html_object.attr('id', id_found)
12
12
  end
13
13
 
14
+ generator.build_render(:html_element)
15
+
14
16
  generator.build_render(:html_color) do |_value|
15
17
  # we remove previous unused style tag
16
18
  opal_document[id]&.remove
@@ -4,10 +4,11 @@
4
4
  class Atome
5
5
  private
6
6
 
7
- def rendering(element_to_render, content, &user_proc)
7
+ def rendering(element, &user_proc)
8
+ params=instance_variable_get("@#{element}")
8
9
  render_engines = @atome[:renderers]
9
10
  render_engines.each do |render_engine|
10
- send("#{render_engine}_#{element_to_render}", content, &user_proc)
11
+ send("#{render_engine}_#{element}", params, &user_proc)
11
12
  end
12
13
  end
13
14
  end
data/lib/atome/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.5.2.8'
4
+ VERSION = '0.5.3.2'
5
5
  end
data/lib/atome.rb CHANGED
@@ -5,12 +5,12 @@ require 'atome/version'
5
5
  require 'atome/genesis/genesis'
6
6
  require 'atome/kernel/essentials'
7
7
  require 'atome/kernel/universe'
8
+ require 'atome/kernel/batch'
8
9
  require 'atome/helpers/essentials'
9
10
  require 'atome/renderers/renderer'
10
11
  require 'atome/helpers/color_helper/color'
11
12
  require 'atome/extensions/atome'
12
13
  require 'atome/atome'
13
- require 'atome/helpers/utilities'
14
14
  require 'atome/helpers/callbacks'
15
15
  require 'atome/genesis/generators/atome'
16
16
  require 'atome/presets/atome'
@@ -23,6 +23,7 @@ require 'atome/genesis/generators/material'
23
23
  require 'atome/genesis/generators/spatial'
24
24
  require 'atome/genesis/generators/time'
25
25
  require 'atome/genesis/generators/utility'
26
+ require 'atome/helpers/utilities'
26
27
  if RUBY_ENGINE.downcase == 'opal'
27
28
  require 'atome/renderers/browser/browser'
28
29
  require 'atome/renderers/html/html'
data/sig/atome.rbs CHANGED
@@ -7,5 +7,19 @@ module Atome
7
7
 
8
8
  def add_to_hash: -> untyped
9
9
 
10
+ def apply_style: -> untyped
11
+
12
+ def format_matrix: -> untyped
13
+
14
+ def get_column: -> untyped
15
+
16
+ def get_column_or_row: -> untyped
17
+
18
+ def get_row: -> untyped
19
+
20
+ def matrix: -> untyped
21
+
22
+ def set: -> untyped
23
+
10
24
  def sort_callback: -> untyped
11
25
  end
@@ -1,3 +1,3 @@
1
1
  task :build do
2
- `atome build;open build/index.html`
2
+ `atome build;open src/index.html`
3
3
  end
@@ -19,14 +19,14 @@ html, body {
19
19
 
20
20
 
21
21
  #view {
22
- left: 0;
22
+ left: 0px;
23
23
  font-size: 25px;
24
- right: 0;
25
- top: 0;
26
- bottom: 0;
27
- width: 100%;
24
+ right: 0px;
25
+ top: 0px;
26
+ bottom: 0px;
27
+ width: auto;
28
28
  display: block;
29
- height: 100%;
29
+ height: auto;
30
30
  overflow: hidden;
31
31
  position: absolute;
32
32
  -webkit-overflow-scrolling: touch;