atome 0.5.3.7.8 → 0.5.3.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a4400073c94d3ec5f105403f67d7000f183f1cd43b2de943267f2f4dda09248
4
- data.tar.gz: cd98e412458149fab7088810f96a39d00035f54d2a5c385b88afc16564ad3aa8
3
+ metadata.gz: fd6a8f4f6c72f5e9d1974bcf411e6ce19c3469953d39a1ad7ef7de1497626b60
4
+ data.tar.gz: 2e22cbbe3428e8506c1855fd0dadccfa55e6725912d5adf746963f0754e50884
5
5
  SHA512:
6
- metadata.gz: 4cb7bb2d5da5fa0021bd568b543cf56a7e172457f3bf8e7907dbaacef4a6a15051bc682145da3447f9d051c0c5ac17bfa5d87038e3a6bdee06a63573efa3947b
7
- data.tar.gz: 015efb61571056ffe114372af0bfe87b5a4056ca44ef581d0ec685313598936ea3870ae63d7e47b8017e3d655d77599c279ec540310f82edec50668141678696
6
+ metadata.gz: '0769c9974cf27f2b275d540baf5f5d22a3a30b979be3c41972fbb246400925864f14299e3fddf4acdf07a89952949dbcbaa96056f14439d27fbb0896d4c4a727'
7
+ data.tar.gz: 6450a2fa9015d97cd14ca151324d9a70065a4893bd343f80936032ff6f8197ac7d80180d69eb959e5257a622905cb96830ee05dc03aa35c15820e92ca3fc3709
data/exe/atome CHANGED
@@ -124,11 +124,10 @@ end
124
124
 
125
125
  def browser_case(location)
126
126
  # `cd #{location}/src;open index.html`
127
- guard_check
127
+ # `echo jello`
128
+ # guard_check
128
129
  end
129
130
 
130
- #
131
-
132
131
  def osx_case(location)
133
132
  `cd #{location};cargo tauri dev`
134
133
  end
data/lib/atome/atome.rb CHANGED
@@ -3,34 +3,50 @@
3
3
  # TODO : remove monitoring
4
4
  # TODO : remove child
5
5
  # TODO : remove parents
6
-
6
+ # new({ particle: :type })
7
+ # create_particle(:type, true, true)
7
8
  # main entry here
8
9
  class Atome
9
10
  # TODO : clean or delete @private_atome
10
11
  include Essentials
12
+
11
13
  private
12
14
 
13
15
  def initialize(atomes = {}, &atomes_proc)
16
+ # puts "atome are #{atomes}"
14
17
  atomes.each_value do |elements|
15
18
  # the instance variable below contain the id all any atomes that need to be informed when changes occurs
16
19
  @broadcast = {}
17
20
  # now we store the proc in a an atome's property called :bloc
18
21
  elements[:code] = atomes_proc if atomes_proc
19
22
  @atome = elements
20
- # we initiate the rendering, eg for for browser we will call :browser_type generate method in identity.rb file
21
- create_particle(:type, true, true)
22
- # set type is a particle method it's dynamically generated at : generator/identity.rb
23
- set_type(@atome[:type])
23
+ # we initiate the rendering suing set_type method,
24
+ # eg for for browser we will call :browser_type generate method in identity.rb file
25
+ set_type(@atome[:type], &atomes_proc)
24
26
  collapse
27
+
25
28
  end
26
29
  end
27
30
 
31
+ def set_type(params, &atomes_proc)
32
+ # @atome[params]
33
+ # puts "params is : #{@atome[:children]}"
34
+ # @atome[:children]={shapes: [params]}
35
+ # @atome[:shape]=:poil
36
+ # puts "type is : #{@atome[params].class}"
37
+ # unless @atome[params]
38
+ # @atome[params] = []
39
+ # end
40
+ # @atome[params] << params
41
+ rendering(:type, params, &atomes_proc)
42
+ end
43
+
28
44
  def new_particle(element, store, render, &method_proc)
29
45
  Atome.define_method element do |params = nil, &user_proc|
30
46
  if params || params == false
31
47
  # the line below execute the proc created when using the build_particle method
32
48
  instance_exec(params, user_proc, &method_proc) if method_proc.is_a?(Proc)
33
- params = sanitize(element, params,&user_proc)
49
+ params = sanitize(element, params, &user_proc)
34
50
  create_particle(element, store, render)
35
51
  send("set_#{element}", params, &user_proc)
36
52
  else
@@ -55,19 +71,20 @@ class Atome
55
71
  send("set_#{element}", params, &user_proc)
56
72
  end
57
73
 
58
- def atome_initializer(element, params = {})
59
- temp_default = Essentials.default_params[element] || {}
60
- generated_render = params[:renderers] || []
61
- generated_id = params[:id] || "#{element}_#{Universe.atomes.length}"
62
- generated_parents = params[:parents] || [id.value]
63
- generated_children = params[:children] || []
64
- temp_default[:id] = generated_id
65
- temp_default[:parents] = generated_parents
66
- temp_default[:clones] = []
67
- temp_default[:renderers] = generated_render
68
- temp_default[:children] = generated_children
69
- temp_default.merge(params)
70
- end
74
+ # def atome_initializer(element, params = {})
75
+ # temp_default = Essentials.default_params[element] || {}
76
+ # generated_render = params[:renderers] || []
77
+ # generated_id = params[:id] || identity_generator(:element)
78
+ # alert "generated_parents: #{id.value}"
79
+ # generated_parents = params[:parents] || [id.value]
80
+ # generated_children = params[:children] || []
81
+ # temp_default[:id] = generated_id
82
+ # temp_default[:parents] = generated_parents
83
+ # temp_default[:clones] = []
84
+ # temp_default[:renderers] = generated_render
85
+ # temp_default[:children] = generated_children
86
+ # temp_default.merge(params)
87
+ # end
71
88
 
72
89
  def new_atome(element, &method_proc)
73
90
  Atome.define_method element do |params = nil, &user_proc|
@@ -118,10 +135,10 @@ class Atome
118
135
  # Params is now an instance variable so it should be passed thru different methods
119
136
  instance_variable_set("@#{element}", params) if store
120
137
  run_optional_proc("pre_render_#{element}".to_sym, self, params, &user_proc)
121
- rendering(element,params, &user_proc) if render
138
+ rendering(element, params, &user_proc) if render
122
139
  run_optional_proc("post_render_#{element}".to_sym, self, params, &user_proc)
123
140
  broadcasting(element)
124
- store_value(element) if store
141
+ store_value(element) if store
125
142
  self
126
143
  end
127
144
 
@@ -46,7 +46,8 @@ end
46
46
  def create_method_at_object_level(element)
47
47
 
48
48
  Object.define_method element do |params, &user_proc|
49
- grab(:view).send(element, params, &user_proc)
49
+ default_parent=Essentials.default_params[element][:parents][0]# we get the first parents
50
+ grab(default_parent).send(element, params, &user_proc)
50
51
  end
51
52
 
52
53
  end
@@ -242,7 +242,6 @@ module Matrix
242
242
  default_renderer = Essentials.default_params[:render_engines]
243
243
  atome_type = :matrix
244
244
  generated_render = params[:renderers] || default_renderer
245
- # generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
246
245
  generated_id = params[:id] || identity_generator(:matrix)
247
246
 
248
247
  generated_parents = params[:parents] || [id.value]
@@ -1,18 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- new({ atome: :color })
3
+ new({ atome: :color, type: :hash })
4
4
 
5
5
  new({ sanitizer: :color }) do |params|
6
- # we delete any previous color if there's one
7
- if color.value
8
- attached.value.delete(color.value)
9
- grab(color.value)&.delete(true) # we had the condition because the color may exist but
6
+ parent_found = found_parents_and_renderers[:parent]
7
+ if parent_found == [:black_matter]
8
+
9
+ elsif color.value
10
+ # we delete any previous color if there's one
11
+ detached(color.value)
12
+ grab(color.value)&.delete(true) # we had the condition because the color may exist but
10
13
  # so it is not sanitized so it has no id
11
14
  end
12
- parent_found = found_parents_and_renderers[:parent]
13
- parent_found = [:black_matter] if parent_found == [:view]
15
+
14
16
  render_found = found_parents_and_renderers[:renderers]
15
- default_params = { renderers: render_found, id: "color_#{Universe.atomes.length}", type: :color,
17
+ generated_id = params[:id] || identity_generator(:color)
18
+
19
+ default_params = { renderers: render_found, id: generated_id, type: :color,
16
20
  attach: parent_found,
17
21
  red: 0, green: 0, blue: 0, alpha: 1 }
18
22
  params = create_color_hash(params) unless params.instance_of? Hash
@@ -28,7 +32,8 @@ new({ sanitizer: :image }) do |params|
28
32
  params = { path: "./medias/images/#{params}" }
29
33
  end
30
34
  default_renderer = Essentials.default_params[:render_engines]
31
- generated_id = params[:id] || "image_#{Universe.atomes.length}"
35
+ generated_id = params[:id] || identity_generator(:image)
36
+
32
37
  generated_render = params[:renderers] || default_renderer
33
38
  generated_parents = params[:parents] || id.value
34
39
  # TODO : the line below should get the value from default params Essentials
@@ -41,22 +46,36 @@ new({ atome: :video })
41
46
  new({ sanitizer: :video }) do |params|
42
47
  parent_found = found_parents_and_renderers[:parent]
43
48
  render_found = found_parents_and_renderers[:renderers]
44
- default_params = { renderers: render_found, id: "video_#{Universe.atomes.length}", type: :video,
49
+ generated_id = params[:id] || identity_generator(:video)
50
+
51
+ default_params = { renderers: render_found, id: generated_id, type: :video,
45
52
  parents: parent_found }
46
53
  default_params.merge!(params)
47
54
  end
48
55
  new({ atome: :shadow })
49
56
  new({ sanitizer: :shadow }) do |params|
50
- # we delete any previous shadow if there's one
51
- if shadow.value
52
- attached.value.delete(shadow.value)
53
- grab(shadow.value)&.delete(true) # we had the condition because the color may exist but
57
+
58
+ parent_found = found_parents_and_renderers[:parent]
59
+ if parent_found == [:view]
60
+ parent_found = [:black_matter] if parent_found == [:view]
61
+ elsif shadow.value
62
+ # we delete any previous color if there's one
63
+ detached(shadow.value)
64
+ grab(shadow.value)&.delete(true) # we had the condition because the shadow may exist but
54
65
  # so it is not sanitized so it has no id
55
66
  end
56
- parent_found = found_parents_and_renderers[:parent]
57
- parent_found = [:user_view] if parent_found == [:view]
67
+ ## we delete any previous shadow if there's one
68
+ # if shadow.value
69
+ # attached.value.delete(shadow.value)
70
+ # grab(shadow.value)&.delete(true) # we had the condition because the color may exist but
71
+ # # so it is not sanitized so it has no id
72
+ # end
73
+ # parent_found = found_parents_and_renderers[:parent]
74
+ # parent_found = [:user_view] if parent_found == [:view]
58
75
  render_found = found_parents_and_renderers[:renderers]
59
- default_params = { renderers: render_found, id: "shadow_#{Universe.atomes.length}", type: :shadow,
76
+ generated_id = params[:id] || identity_generator(:shadow)
77
+
78
+ default_params = { renderers: render_found, id: generated_id, type: :shadow,
60
79
  attach: parent_found,
61
80
  red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 }
62
81
  # default_params.merge!(params)
@@ -73,15 +92,17 @@ new({ atome: :element })
73
92
  new({ sanitizer: :element }) do |params|
74
93
  parent_found = found_parents_and_renderers[:parent]
75
94
  render_found = []
76
- default_params = { renderers: render_found, id: "element_#{Universe.atomes.length}", type: :element,
95
+ generated_id = params[:id] || identity_generator(:element)
96
+
97
+ default_params = { renderers: render_found, id: generated_id, type: :element,
77
98
  parents: parent_found, data: '' }
78
99
  default_params.merge!(params)
79
100
  end
80
101
  new({ atome: :web })
81
102
  new({ sanitizer: :web }) do |params|
82
103
  default_renderer = Essentials.default_params[:render_engines]
104
+ generated_id = params[:id] || identity_generator(:web)
83
105
 
84
- generated_id = params[:id] || "web_#{Universe.atomes.length}"
85
106
  generated_render = params[:renderers] || default_renderer
86
107
  generated_parents = params[:parents] || id.value
87
108
  # TODO : the line below should get the value from default params Essentials
@@ -96,19 +117,19 @@ new({ sanitizer: :animation }) do |params|
96
117
  default_renderer = Essentials.default_params[:render_engines]
97
118
  atome_type = :animation
98
119
  generated_render = params[:renderers] || default_renderer
99
- generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
120
+ generated_id = params[:id] || identity_generator(atome_type)
100
121
  generated_parents = params[:parents] || []
101
122
  generated_children = params[:children] || []
102
123
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
103
124
  params
104
125
  end
105
- new({ atome: :text })
126
+ new({ atome: :text, type: :hash })
106
127
  new({ sanitizer: :text }) do |params|
107
128
  params = { data: params } unless params.instance_of? Hash
108
129
  default_renderer = Essentials.default_params[:render_engines]
109
130
  atome_type = :text
110
131
  generated_render = params[:renderers] || default_renderer
111
- generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
132
+ generated_id = params[:id] || identity_generator(atome_type)
112
133
  generated_parents = params[:parents] || [id.value]
113
134
  generated_children = params[:children] || []
114
135
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
@@ -31,6 +31,12 @@ class Atome
31
31
  def build_atome(atome_name, &atome_proc)
32
32
  # we add the new method to the atome's collection of methods
33
33
  Universe.add_to_atome_list(atome_name)
34
+ unless Essentials.default_params[atome_name]
35
+ # if it doesn't exist
36
+ # we create default params for the new created atome, adding the hash to : module essential , @default_params
37
+ Essentials.new_default_params(atome_name => { type: atome_name, children: [], parents: [:view] })
38
+ end
39
+
34
40
  # the line below create an empty atome method for each renderer, eg: browser_left, headless_left, ...
35
41
  auto_render_generator(atome_name)
36
42
  new_atome(atome_name, &atome_proc)
@@ -4,27 +4,27 @@
4
4
  module Essentials
5
5
  @default_params = {
6
6
  render_engines: [:browser],
7
- collector: { type: :element, renderers: [], children: [] },
8
- animation: { type: :animation, children: [] },
9
- element: { type: :element, renderers: [], children: [] },
10
- matrix: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
7
+ collector: { type: :element, renderers: [], children: [], parents: [:black_matter] },
8
+ animation: { type: :animation, children: [] , parents: [:black_matter]},
9
+ element: { type: :element, renderers: [], children: [] , parents: [:black_matter]},
10
+ matrix: { renderers: [], id: '', type: :shape, width: 99, height: 99,
11
11
  attached: [:matrix_color], children: [],
12
- left: 100, top: 100, clones: [], preset: :matrix },
13
- box: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
14
- attached: [:box_color], children: [],
12
+ left: 100, top: 100, clones: [], preset: :matrix, parents: [:view] },
13
+ box: { renderers: [], id: '', type: :shape, width: 99, height: 99,
14
+ attached: [:box_color], children: [], parents: [:view],
15
15
  left: 100, top: 100, clones: [], preset: :box },
16
- circle: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99, smooth: '100%',
17
- attached: [:circle_color], children: [],
16
+ circle: { renderers: [], id: '', type: :shape, width: 99, height: 99, smooth: '100%',
17
+ attached: [:circle_color], children: [], parents: [:view],
18
18
  left: 100, top: 100, clones: [], preset: :circle },
19
- shape: { renderers: [], id: '', type: :shape, parents: [], width: 99, height: 99,
20
- attached: [:shape_color], children: [],
19
+ shape: { renderers: [], id: '', type: :shape, width: 99, height: 99,
20
+ attached: [:shape_color], children: [], parents: [:view],
21
21
  left: 100, top: 100, clones: [] },
22
- text: { renderers: [], id: '', type: :text, parents: [:view], visual: { size: 25 },
23
- attached: [:text_color], children: [],
22
+ text: { renderers: [], id: '', type: :text, visual: { size: 25 },
23
+ attached: [:text_color], children: [], parents: [:view],
24
24
  data: 'this is a text sample', width: 199, height: 33, clones: [] },
25
- drm: { type: :drm },
26
- shadow: {},
27
- color: {}
25
+ drm: { type: :drm,parents: [:black_matter] },
26
+ shadow: {parents: [:black_matter]},
27
+ color: {parents: [:black_matter]}
28
28
  }
29
29
 
30
30
  def self.default_params
@@ -32,6 +32,7 @@ module Essentials
32
32
  end
33
33
 
34
34
  def self.new_default_params(new_default)
35
+ # puts "=====+====> #{new_default}, #{new_default.class}"
35
36
  @default_params.merge!(new_default)
36
37
  end
37
38
 
@@ -6,7 +6,6 @@ class Atome
6
6
 
7
7
  def collapse
8
8
  @atome.each do |element, value|
9
- # puts "=============> #{element}"
10
9
  send(element, value) unless element == :type
11
10
  end
12
11
  end
@@ -89,9 +88,14 @@ class Atome
89
88
  @atome[particle] << value
90
89
  end
91
90
 
91
+ def add_to_atome(atome_found, particle_found, &user_proc)
92
+ puts "we add : #{particle_found} to #{send(atome_found)} "
93
+ send(atome_found,particle_found,:adder, &user_proc)
94
+ end
95
+
92
96
  def add(particles, &user_proc)
93
97
  particles.each do |particle, value|
94
- particle_type = Universe.particle_list[particle]
98
+ particle_type = Universe.particle_list[particle] || 'atome'
95
99
  send("add_to_#{particle_type}", particle, value, &user_proc)
96
100
  end
97
101
  end
@@ -103,7 +107,8 @@ class Atome
103
107
  def collector(params = {}, &bloc)
104
108
  atome_type = :collector
105
109
  generated_render = params[:renderers] || []
106
- generated_id = params[:id] || "#{atome_type}_#{Universe.atomes.length}"
110
+ generated_id = params[:id] || identity_generator(atome_type)
111
+
107
112
  generated_parents = params[:parents] || [id.value]
108
113
  generated_children = params[:children] || []
109
114
  params = atome_common(atome_type, generated_id, generated_render, generated_parents, generated_children, params)
@@ -17,7 +17,6 @@ class Batch
17
17
  end
18
18
 
19
19
  def initialize(params)
20
- # @id = params[:id] || "batch_#{Universe.atomes.length}"
21
20
  @id = params[:id] || identity_generator(:batch)
22
21
  Universe.add_to_atomes(@id, self)
23
22
  Universe.add_to_atomes(@id, self)
@@ -29,7 +28,7 @@ class Batch
29
28
  end
30
29
  end
31
30
 
32
- # TODO: automatise collector methods creation when creato,g a new atome type
31
+ # TODO: automatise collector methods creation when creating a new atome type
33
32
  def color(args, &block)
34
33
 
35
34
  dispatch(:color, args, &block)
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.3.7.8'
4
+ VERSION = '0.5.3.8.1'
5
5
  end
@@ -8,7 +8,7 @@ top touch video wait web width]
8
8
  wait 1 * index do
9
9
  puts toto
10
10
  read("examples/#{toto}.rb", :ruby)
11
- `console.clear()`
11
+ # `console.clear()`
12
12
  end
13
13
  end
14
14
  end
@@ -4,10 +4,10 @@ color({ red: 0.8, green: 0.8, blue: 0.8, id: :active_color })
4
4
  color( { red: 0.3, green: 0.3, blue: 0.3, id: :inactive_color } )
5
5
 
6
6
  b=box
7
- b.attached([:inactive_color])
7
+ b.attached(:inactive_color)
8
8
  puts b.attached
9
9
  b.touch(true) do
10
- b.detached([:inactive_color])
11
- b.attached([:active_color])
10
+ b.detached(:inactive_color)
11
+ b.attached(:active_color)
12
12
  puts b.attached
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3.7.8
4
+ version: 0.5.3.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Eric Godard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-14 00:00:00.000000000 Z
11
+ date: 2023-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arduino_firmata