atome 0.5.6.3.6 → 0.5.6.4.0

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: 20722d91d136a2fd78db940d9e88b1f03acc424d1c24f2c1ee1d320155850c54
4
- data.tar.gz: 556db76963cf17c7efc5c0cc5fc04be69968b551dd5e1046c10980b273745dab
3
+ metadata.gz: 155b40eec80fff72a131cbe7477280a2b199e36f443f55d754eb740277af3925
4
+ data.tar.gz: 252b75fca3bcef7e79d5e0b0d91b38fa1f13dbac75facc46e69807277c325c10
5
5
  SHA512:
6
- metadata.gz: 15415de0349a7164ce7df84aff2b3d6f54662273f711800344b6ba20299782f0bc113c1af7b8a71dcc5a44b018089118368d1bc34ab674619dc9fe217215ff1a
7
- data.tar.gz: ec830d22185342e871e2989726356cd69b8a44d50550c3970ab6eaf8cabca64ccd0bf807a52291b8ddc79c7420199ad095a2b69c80926cfd3d99a70c63cde19f
6
+ metadata.gz: 762b8f9035bc10f086d5686f7986f230d8ea37760d99585370462265c5baac244e1ba9cede31b4b194491f7d92fc6779df267e72e1e965909603599a20bf444a
7
+ data.tar.gz: aabaf5a1ee343093b1f89b0991296567a01e60ec2170cf2d6f2c52c1b8e7f603b57f131bddd13407b068f687a5f35cdb1e4b98aeda03f5058b49f77ea67515c1
data/atome.gemspec ADDED
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/atome/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'atome'
7
+ spec.version = Atome::VERSION
8
+ spec.authors = ['Jean-Eric Godard']
9
+ spec.email = ['jeezs@atome.one']
10
+
11
+ spec.summary = 'the creative framework'
12
+ spec.description = 'the creative framework.'
13
+ spec.homepage = 'https://atome.one'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = '>= 3.1'
16
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
17
+
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/atomecorp/atome'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/atomecorp/atome/changelog'
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+
25
+ # spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ # `git ls-files -z`.split("\x0").reject do |f|
27
+ # (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
28
+ # end
29
+ # end
30
+ # spec.files = Dir.chdir(File.expand_path(__dir__)) do
31
+ # # Utilisez git ls-files pour récupérer les fichiers, puis filtrez-les selon vos besoins
32
+ # git_files = `git ls-files -z`.split("\x0").reject do |f|
33
+ # (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
34
+ # end
35
+ #
36
+ # # Ajoutez manuellement les fichiers du dossier lib/eVe
37
+ # eve_files = Dir['lib/eVe/**/*']
38
+ #
39
+ # # Combine les deux listes de fichiers
40
+ # git_files + eve_files
41
+ # end
42
+
43
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
44
+ # Utilisez git ls-files pour récupérer les fichiers, puis filtrez-les selon vos besoins
45
+ `git ls-files -z`.split("\x0").reject do |f|
46
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
47
+ end
48
+ end
49
+
50
+ spec.bindir = 'exe'
51
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
52
+ spec.require_paths = ['lib']
53
+
54
+
55
+ spec.add_runtime_dependency 'artoo', '~> 1.8.2'
56
+ # spec.add_runtime_dependency 'arduino_firmata', '~> 0.3'
57
+ # spec.add_runtime_dependency 'eVe', '~> 0.1.0'
58
+ spec.add_runtime_dependency 'eventmachine', '~> 1.2.7'
59
+ spec.add_runtime_dependency 'faye-websocket', '~> 0.1'
60
+ spec.add_runtime_dependency 'geocoder', '~> 1.8'
61
+ spec.add_runtime_dependency 'guard', '~> 2.1'
62
+ # spec.add_runtime_dependency 'guard-shell', '~> 0.7.2'
63
+ # spec.add_runtime_dependency 'guard-puma', '~> 0.8.1'
64
+ # spec.add_runtime_dependency 'shotgun', '~> 0.9.2'
65
+ spec.add_runtime_dependency 'gems', '~> 1.2'
66
+ spec.add_runtime_dependency 'guard-rake', '~> 1.0'
67
+ # spec.add_runtime_dependency 'rerun', '~> 0.14.0'
68
+ spec.add_runtime_dependency 'image_size', '~> 3.0'
69
+ spec.add_runtime_dependency 'mail', '~> 2.1'
70
+ spec.add_runtime_dependency 'net-ping', '~> 2.0'
71
+ spec.add_runtime_dependency "opal", "~> 1.8"
72
+ spec.add_runtime_dependency 'parser', '~> 3.1'
73
+ spec.add_runtime_dependency 'puma', '~> 6.0'
74
+ spec.add_runtime_dependency 'rack', '~> 2.2'
75
+ spec.add_runtime_dependency 'rack-unreloader', '~> 1.8'
76
+ spec.add_runtime_dependency 'rake', '~> 13.0'
77
+ spec.add_runtime_dependency 'roda', '~> 3.5'
78
+ spec.add_runtime_dependency 'ruby2js', '~> 5.0'
79
+ spec.add_runtime_dependency 'rufus-scheduler', '~> 3.8'
80
+ spec.add_runtime_dependency 'securerandom', '~> 0.2'
81
+ spec.add_runtime_dependency 'sequel', '~> 5.5'
82
+ spec.add_runtime_dependency 'sqlite3', '~> 1.4'
83
+ spec.add_runtime_dependency 'uglifier', '~> 0.1'
84
+ # spec.add_runtime_dependency 'atome_eVe', '>= 0.1.0.0.7'
85
+ # spec.add_runtime_dependency 'webrick', '~> 1.7.0'
86
+ # the gem below are need to make the atome server works on Windows
87
+ spec.add_runtime_dependency 'tzinfo-data', '~> 1.2023.4'
88
+ spec.add_runtime_dependency 'win32-security', '~> 0.5.0'
89
+ spec.add_runtime_dependency 'wdm', '>= 0.1.0' if Gem.win_platform?
90
+
91
+ # patch because guard have bad dependency
92
+ # spec.add_runtime_dependency 'pry', '>= 0.14.2'
93
+
94
+ # Uncomment to register a new dependency of your gem
95
+ # spec.add_dependency "example-gem", "~> 1.0"
96
+
97
+ # For more information and examples about making a new gem, check out our
98
+ # guide at: https://bundler.io/guides/creating_gem.html
99
+ end
data/lib/atome/atome.rb CHANGED
@@ -7,40 +7,52 @@ class Atome
7
7
  def aid(_v=nil)
8
8
  @aid
9
9
  end
10
+
10
11
  def initialize(new_atome = {}, &atomes_proc)
11
12
  # TODO: atome format should always be as followed : {value: 0.44, unit: :px, opt1: 554}
12
13
  # when using optimised version of atome you must type eg : a.set({left: {value: 33, unit: '%', reference: :center}})
14
+ # if Universe.atomes[new_atome[:id]]
15
+ # # puts "------ 2 #{new_atome[:id]} => #{Universe.atomes[new_atome[:id]]}"
16
+ # # puts 'atome_id already exist'
17
+ # # old_atome= grab(new_atome[:id])
18
+ # # new_atome.each do |element, value|
19
+ # # old_atome.send(element, value)
20
+ # # end
21
+ # # return false
22
+ # alert "atome found : #{ grab(new_atome[:id])}"
23
+ # grab(new_atome[:id])
24
+ # else
25
+ # the keys :renderers, :type and :id should be placed in the first position in the hash
26
+ @history = {}
27
+ # @language = :english
28
+ # @callback = {}
29
+ @tag = {}
30
+ @selected = false
31
+ #@metrics = {}
32
+ @unit = {}
33
+ @collect = {}
34
+ @collect = {}
35
+ @int8= {}
36
+ @css = {}
37
+ @aid = identity_generator(:a)
38
+ Universe.add_to_atomes( @aid, self)
39
+ @id = new_atome[:id] || @aid
40
+ Universe.id_to_aid(@id,@aid)
41
+ @type = new_atome[:type] || :element
42
+ @attached = []
43
+ @category = []
44
+ # @display = { mode: :default }
45
+ # @backup={} # mainly used to restore particle when using grid /table /list display mode
46
+ @html = HTML.new(@id, self)
47
+ @headless = Headless.new(@id, self)
48
+ # now we store the proc in a an atome's property called :bloc
49
+ new_atome[:code] = atomes_proc if atomes_proc
50
+ # we reorder the hash
51
+ reordered_atome =reorder_particles(new_atome)
52
+ # FIXME : try to remove the condition below (it crash in the method : def generator ... in genesis.rb)
53
+ collapse(reordered_atome)
54
+ # end
13
55
 
14
- # the keys :renderers, :type and :id should be placed in the first position in the hash
15
- @history = {}
16
- # @language = :english
17
- # @callback = {}
18
- @tag = {}
19
- @selected = false
20
- #@metrics = {}
21
- @unit = {}
22
- @collect = {}
23
- @collect = {}
24
- @int8= {}
25
- @css = {}
26
- @aid = identity_generator(:a)
27
- Universe.add_to_atomes( @aid, self)
28
- @id = new_atome[:id] || @aid
29
- Universe.id_to_aid(@id,@aid)
30
- @type = new_atome[:type] || :element
31
- @attached = []
32
- @category = []
33
- # @display = { mode: :default }
34
- # @backup={} # mainly used to restore particle when using grid /table /list display mode
35
- @html = HTML.new(@id, self)
36
- @headless = Headless.new(@id, self)
37
- # now we store the proc in a an atome's property called :bloc
38
- new_atome[:code] = atomes_proc if atomes_proc
39
- # we reorder the hash
40
- reordered_atome =reorder_particles(new_atome)
41
-
42
- # FIXME : try to remove the condition below (it crash in the method : def generator ... in genesis.rb)
43
- collapse(reordered_atome)
44
56
  end
45
57
 
46
58
  def js
@@ -1,5 +1,18 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  new({ atome: :color, type: :hash })
4
+
5
+ # new({ atome: :color, type: :hash })do |params|
6
+ # puts "1 #{params}______"
7
+ # params
8
+ # end
9
+
10
+ # new ({post: :color}) do |params|
11
+ # # # TODO : hack must call it properly thru renderer
12
+ # # params[:affect].each do |affected|
13
+ # # grab(affected).html.reset_background
14
+ # # end
15
+ # end
3
16
  new({ sanitizer: :color }) do |params|
4
17
  params = create_color_hash(params) unless params.instance_of? Hash
5
18
  # the condition below is to prevent the creation of multiple unwanted colors with same property and no ID specified
@@ -22,6 +35,7 @@ new({ sanitizer: :image }) do |params|
22
35
  end
23
36
  # TODO : the line below should get the value from default params Essentials
24
37
  params
38
+
25
39
  end
26
40
  new({ post: :image }) do
27
41
  # we have find the size od the image to set it in the atome
@@ -6,7 +6,7 @@ class Genesis
6
6
 
7
7
  def create_particle(element, store, render)
8
8
  Atome.define_method "set_#{element}" do |params, &user_proc|
9
- particle_creation(element, params, store, render, &user_proc)
9
+ particle_creation(element, params, store, render, &user_proc)
10
10
  end
11
11
  end
12
12
 
@@ -72,8 +72,17 @@ class Genesis
72
72
  end
73
73
 
74
74
  def new_particle(element, store, render, &_method_proc)
75
+ # unless @id
76
+ # alert self.id
77
+ # end
78
+
75
79
  Atome.define_method element do |params = nil, &user_proc|
80
+ # if @id
81
+ # alert "======> #{self.class}"
76
82
  @history[element] ||= []
83
+ # else
84
+ # alert "======> #{self.inspect}"
85
+ # end
77
86
  if (params || params == false) && write_auth(element)
78
87
  params = particle_sanitizer(element, params, &user_proc)
79
88
  # the line below execute the main code when creating a new particle
@@ -87,7 +96,7 @@ class Genesis
87
96
  end
88
97
  end
89
98
 
90
- computed_params= send("set_#{element}", params, &user_proc) # sent to : create_particle / Atome.define_method "set_#{element}"
99
+ computed_params = send("set_#{element}", params, &user_proc) # sent to : create_particle / Atome.define_method "set_#{element}"
91
100
 
92
101
  # we historicize all write action below
93
102
  # we add the changes to the stack that must be synchronised
@@ -108,7 +117,9 @@ class Genesis
108
117
  else
109
118
  "send a valid password to read #{element} value"
110
119
  end
111
-
120
+ # else
121
+ #
122
+ # end
112
123
  end
113
124
  end
114
125
 
@@ -150,8 +161,9 @@ class Genesis
150
161
  collected_atomes << attached_atome if grab(attached_atome).type.to_sym == element.to_sym
151
162
  end
152
163
  end
153
- group({ collect: collected_atomes })
154
-
164
+ # TODO/ FIXME : potential problem with group here"
165
+ # group({ collect: collected_atomes })
166
+ collected_atomes
155
167
  end
156
168
  end
157
169
 
@@ -161,7 +173,14 @@ class Genesis
161
173
  # Object.const_set(element, Module.new)
162
174
  # we add the newly created atome to the list of "child in it's category, eg if it's a shape we add the new atome
163
175
  # to the shape particles list : @!atome[:shape] << params[:id]
164
- Atome.new(params, &user_proc)
176
+ # Atome.new(params, &user_proc)
177
+
178
+ if Universe.atomes[params[:id]]
179
+ # if atome id already exist we grab the previous one
180
+ grab(params[:id])
181
+ else
182
+ Atome.new(params, &user_proc)
183
+ end
165
184
  # Now we return the newly created atome instead of the current atome that is the parent cf: b=box; c=b.circle
166
185
  end
167
186
 
@@ -51,6 +51,8 @@ end
51
51
 
52
52
  new({ particle: :apply, category: :hierarchy, type: :string, render: false, store: false }) do |parents_ids, &user_proc|
53
53
  # TODO: optimize the 2 lines below:
54
+ # html.reset_background
55
+ # alert :ok
54
56
  @apply ||= []
55
57
  parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
56
58
  parents_ids.each do |parent_id|
@@ -81,8 +83,17 @@ end
81
83
  new({ particle: :affect, category: :hierarchy, type: :string, render: false }) do |children_ids, &user_proc|
82
84
  children_ids = [children_ids] unless children_ids.instance_of? Array
83
85
  children_ids.each do |child_id|
86
+ # params[:affect].each do |affected|
87
+ # end
88
+
84
89
  child_found = grab(child_id)
85
- child_found&.apply([id], &user_proc)
90
+ # alert "must exist : #{child_found.id}"
91
+ # puts "correct condition below #{id}"
92
+ #FIXME : found why it crash when removing the conditon below
93
+ unless child_found.id == :black_matter
94
+ child_found.remove({all: :paint})
95
+ end
96
+ child_found&.apply([id], &user_proc)
86
97
  end
87
98
  children_ids
88
99
  end
@@ -2,24 +2,25 @@
2
2
 
3
3
  new({ particle: :real, category: :identity, type: :string })
4
4
  new({ particle: :type, category: :identity, type: :string })
5
- new({ particle: :id, category: :identity, type: :int })
5
+ new({ particle: :id, category: :identity, type: :string })
6
6
  new({ sanitizer: :id }) do |params|
7
7
  # first we sanitize the the id below
8
8
 
9
9
  params = params.to_sym
10
- # we check id is already assign
11
- if Universe.atomes[params]
12
- # we reassign the old id
13
- puts "the id : #{params} is already used"
14
- params = @id
15
- else
10
+ # # we check id is already assign
11
+ # if Universe.atomes[params]
12
+ # # we reassign the old id
13
+ # puts "the id : #{params} is already used"
14
+ # params = @id
15
+ # # return false
16
+ # else
16
17
  if @id.to_sym != params
17
18
  Universe.update_atome_id(params, self, @id)
18
19
  else
19
20
  Universe.add_to_atomes(params, self)
20
21
  end
21
22
 
22
- end
23
+ # end
23
24
  params
24
25
  end
25
26
  new({ particle: :name, category: :identity, type: :string })
@@ -60,6 +60,7 @@ new({ particle: :delete, category: :utility, type: :boolean, render: false }) do
60
60
  # we check if the params passed is an atome to treat it in a different way
61
61
  puts "write code here : #{apply} , #{attached}"
62
62
  else
63
+ # alert grab(params).delete(true)
63
64
  send(params, 0) unless params == :id
64
65
  end
65
66
  end
@@ -103,8 +103,8 @@ Atome.new({ renderers: [:html], id: :selector, collect: [], type: :group, tag: {
103
103
  # atome infos
104
104
  def atome_infos
105
105
  puts "atome version: #{Atome::VERSION}"
106
- puts "device identity: #{Universe.app_identity}"
107
- puts "application identity: #{Atome::aui}"
106
+ puts "device identity: #{Atome::aui}"
107
+ puts "application identity: #{Universe.app_identity}"
108
108
  puts "host framework: #{Atome::host}"
109
109
  puts "engine: #{Universe.engine}"
110
110
  puts "users: #{Universe.users}"
@@ -123,10 +123,15 @@ class Universe
123
123
  end
124
124
  collected_id
125
125
  end
126
-
126
+ def generate_uuid
127
+ uuid = SecureRandom.uuid.gsub('-','')
128
+ formatted_time = Time.now.strftime("%Y%m%d%H%M%S")
129
+ "#{uuid}#{formatted_time}"
130
+ end
127
131
  def app_identity
128
- # each app hav its own identity, this allow to generate new user identities from th
129
- @app_identity = 369
132
+ # each app hav its own identity, this allow to generate new user identities from the
133
+ # unique_id = generate_unique_id_with_timestamp
134
+ @app_identity = generate_uuid
130
135
  # the identity is define as follow : parentsCreatorID_softwareInstanceID_objetID
131
136
  # in this case parents is eve so 0, Software instance number is main eVe server which is also 0,
132
137
  # and finally the object is 3 as this the third object created by the main server
@@ -8,6 +8,7 @@
8
8
  # additional Atome methods
9
9
  class Atome
10
10
  def atome_common(atome_preset, params)
11
+
11
12
  basic_params = { renderers: [] }
12
13
  # TODO : remove Essentials.default_params[atome_preset] || {} as it is
13
14
  # applied twice because preset is now a particle
@@ -15,12 +16,13 @@ class Atome
15
16
 
16
17
  basic_params[:type] = preset_params[:type] || :element
17
18
  # basic_params[:aid] = identity_generator(:a)
18
- basic_params[:id] = params[:id] || identity_generator(atome_preset)
19
+ basic_params[:id] = params[:id]|| identity_generator(atome_preset)
19
20
  basic_params[:renderers] = @renderers || preset_params[:renderers]
20
21
  essential_params = basic_params.merge(preset_params)
22
+ #
21
23
  reordered_params = essential_params.reject { |key, _| params.has_key?(key) }
22
24
  params = reordered_params.merge(params)
23
-
25
+ params[:id]=params[:id].to_sym
24
26
  # condition to handle color/shadow/paint atomes that shouldn't be attach to view
25
27
  # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
26
28
  # then add condition same things fo code in genesis new_atome
@@ -43,7 +45,12 @@ class Atome
43
45
  def preset_common(params, &bloc)
44
46
  ## if an atome with current id exist we update the ID in the params
45
47
  # params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
48
+ # if Universe.atomes[params[:id]]
49
+ # alert "atome found : #{ grab(params[:id])}"
50
+ # grab(params[:id])
51
+ # else
46
52
  Atome.new(params, &bloc)
53
+ # end
47
54
  end
48
55
 
49
56
  def box(params = {}, &bloc)
data/lib/atome/version.rb CHANGED
@@ -2,6 +2,5 @@
2
2
 
3
3
  # return atome version
4
4
  class Atome
5
- VERSION = '0.5.6.3.6'
5
+ VERSION = '0.5.6.4.0'
6
6
  end
7
-
data/lib/atome.rb CHANGED
@@ -13,7 +13,7 @@ require 'atome/helpers/color_helper/color'
13
13
  require 'atome/extensions/atome'
14
14
  require 'atome/extensions/mathematics'
15
15
  require 'atome/atome'
16
- require 'atome/genesis/atome'
16
+ require 'atome/genesis/atomes'
17
17
  require 'atome/presets/atome'
18
18
  require 'atome/genesis/particles/atome'
19
19
  require 'atome/genesis/particles/communication'
@@ -12,7 +12,7 @@ require_relative './atome/helpers/color_helper/color'
12
12
  require_relative './atome/extensions/atome'
13
13
  require_relative './atome/extensions/mathematics'
14
14
  require_relative './atome/atome'
15
- require_relative './atome/genesis/atome'
15
+ require_relative './atome/genesis/atomes'
16
16
  require_relative './atome/presets/atome'
17
17
  require_relative './atome/genesis/particles/atome'
18
18
  require_relative './atome/genesis/particles/communication'
@@ -38,7 +38,7 @@ module Molecule
38
38
  end
39
39
 
40
40
  # tests
41
- new({application: :compose, header: true, footer: true })
41
+ # new({application: :compose, header: true, footer: true })
42
42
  #
43
43
  # new(page: {name: :home, application: :compose, attach: :root })
44
44
  #
@@ -1445,6 +1445,21 @@ class HTML
1445
1445
  end
1446
1446
  end
1447
1447
 
1448
+ def reset_background
1449
+ style(:background, 'black')
1450
+ end
1451
+
1452
+ def remove(params)
1453
+ #TODO: FIXME: "html : must create a case here #{params} (#{@original_atome.id})"
1454
+
1455
+ # puts @original_atome.color[0]
1456
+
1457
+ reset_background
1458
+ # style(:background, '')
1459
+ # style(:background, 'black')
1460
+ # @original_atome.color(:red)
1461
+ # @original_atome.apply(@original_atome.color[0])
1462
+ end
1448
1463
  # atomisation!
1449
1464
  def atomized(html_object)
1450
1465
  html_object = html_object[0] if html_object.instance_of? Array
@@ -25,14 +25,29 @@ end
25
25
  new({ method: :border, type: :hash, renderer: :html }) do |value, _user_proc|
26
26
  thickness = value[:thickness] || 5
27
27
  type = value[:pattern] || :solid
28
- color = if value[:color]
29
- color_found = value[:color]
30
- "#{color_found.red * 255},#{color_found.green * 255},#{color_found.blue * 255},#{color_found.alpha} "
31
- else
32
- "0,0,0,1"
33
- end
28
+ # color = if value[:color]
29
+ # color_found = value[:color]
30
+ # "#{color_found.red * 255},#{color_found.green * 255},#{color_found.blue * 255},#{color_found.alpha} "
31
+ # else
32
+ # "0,0,0,1"
33
+ # end
34
+ if value[:color].instance_of? Atome
35
+ color_found= value[:color]
36
+ else
37
+ color_found=grab('black_matter').color(value[:color])
38
+ end
34
39
 
35
- html.style(:border, "#{type} #{thickness}px rgba(#{color})")
40
+ # alert "atome found 2 : #{color_found}"
41
+ red = color_found.red* 255
42
+ green = color_found.green* 255
43
+ blue = color_found.blue* 255
44
+ alpha = color_found.alpha
45
+ # alert "rgba(#{red},#{green},#{blue},#{alpha})"
46
+ # color_found= "#{1 * 255},#{color_found.green * 255},#{0 * 255},#{0.3} "
47
+
48
+ html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
49
+ # html.style(:border, "#{type} #{thickness}px rgba(#{color_found})")
50
+ # html.style(:border, "solid 12px rgba(255, 255, 120, 0,3)")
36
51
  end
37
52
 
38
53
  new({ method: :clean, renderer: :html, type: :hash }) do |params|
@@ -45,6 +60,7 @@ end
45
60
 
46
61
  new({ method: :remove, renderer: :html, type: :hash }) do |params|
47
62
  html.table_remove(params)
63
+ html.remove(params)
48
64
  end
49
65
 
50
66
  new({ method: :sort, renderer: :html, type: :hash }) do |params|
@@ -1,6 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
 
4
-
4
+ col=color({red: 1, blue: 1, id: :the_col})
5
5
  c=circle
6
- c.border({ thickness: 5, color: color(:blue), pattern: :dotted })
6
+ b=box({left: 333})
7
+ c2=circle({top: 190, width: 99, height: 99})
8
+ # let's add the border
9
+ c2.border({ thickness: 5, color: :blue, pattern: :dotted })
10
+ c.border({ thickness: 5, color: col, pattern: :dotted })
11
+ b.border({ thickness: 5, color: col, pattern: :dotted })
12
+
13
+ wait 3 do
14
+ c2.border({ thickness: 5, color: :green, pattern: :dotted })
15
+ c.border({ thickness: 5, color: :green, pattern: :dotted })
16
+ b.border({ thickness: 5, color: :green, pattern: :dotted })
17
+ end
18
+
19
+ b.touch(true) do
20
+
21
+ b.border({ thickness: 5, color: { red: 1, green: 0 }, pattern: :dotted })
22
+
23
+ end
24
+ # wait 6 do
25
+ # iamge(:red_planet)
26
+ # end
27
+
28
+ # # frozen_string_literal: true
29
+ #
30
+ # col=color({red: 1, blue: 1, id: :the_col})
31
+ #
32
+ #
33
+ # c=circle
34
+ # b=box({left: 333})
35
+ # # b.attached([col.id])
36
+ # c.border({ thickness: 5, pattern: :dotted })
37
+ # b.border({ thickness: 5, attached: col.id, pattern: :dotted })
@@ -17,8 +17,12 @@ wait 0.5 do
17
17
  wait 0.5 do
18
18
  painter = circ.paint({ id: :the_painter2, gradient: [col_1.id, col_2.id, col_3.id], direction: :left })
19
19
  wait 0.5 do
20
- circ.color(:blue)
20
+ # circ.color(:blue)
21
21
  circ.paint({ gradient: [col_4.id, col_5.id], diffusion: :conic })
22
+ wait 1 do
23
+ circ.color(:blue)
24
+ # circ.paint({ gradient: [col_5.id, col_5.id], diffusion: :conic })
25
+ end
22
26
  end
23
27
  end
24
28
  end
@@ -32,4 +36,4 @@ the_text.left(333)
32
36
 
33
37
  the_text.paint({ gradient: [col_1.id, col_2.id], direction: :left , id: :painted_love })
34
38
 
35
- # #TODO : gradient on text!
39
+
@@ -5,17 +5,23 @@ c=circle({drag: true, id: :the_circle})
5
5
  c1=c.color(:white).id
6
6
  c2=c.color(:red).id
7
7
  c3=c.color(:yellow).id
8
- color({id: :toto, red: 1 , alpha: 0.5})
8
+ color({id: :my_col1, red: 1 , alpha: 0.5})
9
9
  wait 0.5 do
10
10
  c.paint({ gradient: [c1,c2], direction: :left })
11
11
  wait 0.5 do
12
- c.paint({ gradient: [c1,c2, c3], direction: :left })
13
12
  wait 0.5 do
14
13
  c.paint({ gradient: [c1,c2], diffusion: :radial })
15
14
  wait 0.5 do
16
- c.paint({ gradient: [c1,c2, c3], diffusion: :conic })
15
+ cc= c.paint({ gradient: [c1,c2, c3], diffusion: :conic })
17
16
  wait 0.5 do
17
+ # cc.delete(true)
18
+ # alert c.paint
18
19
  c.remove({all: :paint})
20
+ # alert c.paint
21
+ wait 0.6 do
22
+ c.color(:red)
23
+ end
24
+ # c.paint({ gradient: [c3, c3], diffusion: :conic })
19
25
  end
20
26
  end
21
27
  end
@@ -1 +1,2 @@
1
- # frozen_string_literal: true
1
+ puts 'hello'
2
+ puts Universe.particle_list
@@ -107,20 +107,30 @@ class EDen
107
107
 
108
108
  def insert(data, message_id)
109
109
  table = data['table'].to_sym
110
- particle = data['particle'].to_sym
111
- data = data['data']
110
+ particles = data['particles']
111
+
112
112
  if db_access.table_exists?(table)
113
113
  schema = db_access.schema(table)
114
- if schema.any? { |col_def| col_def.first == particle }
115
- identity_table = db_access[table.to_sym]
116
- identity_table.insert(particle => data)
117
- { data: { message: "column : #{particle}, in table : #{table}, updated with : #{data}" }, message_id: message_id }
114
+ insert_data = {}
115
+
116
+ particles.each do |particle, value|
117
+ particle_sym = particle.to_sym
118
+ if schema.any? { |col_def| col_def.first == particle_sym }
119
+ insert_data[particle_sym] = value
120
+ else
121
+ return { data: { message: "column not found: #{particle}" }, message_id: message_id }
122
+ end
123
+ end
124
+
125
+ if insert_data.any?
126
+ identity_table = db_access[table]
127
+ identity_table.insert(insert_data)
128
+ { data: { message: "Data inserted in table: #{table}" }, message_id: message_id }
118
129
  else
119
- { data: { message: "column not found: #{particle.class}" }, message_id: message_id }
130
+ { data: { message: "No valid columns provided" }, message_id: message_id }
120
131
  end
121
132
  else
122
- { data: { message: "table not found: #{table.class}" }, message_id: message_id }
123
-
133
+ { data: { message: "table not found: #{table}" }, message_id: message_id }
124
134
  end
125
135
  end
126
136
 
@@ -123,6 +123,6 @@ const communication = {
123
123
 
124
124
 
125
125
  function controller_message(msg) {
126
- let json_msg = JSON.parse(msg);
127
- console.log(json_msg);
126
+ // let json_msgs = JSON.parse(msg);
127
+ rubyVMCallback("A.receptor("+msg+")")
128
128
  }
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.6.3.6
4
+ version: 0.5.6.4.0
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: 2024-02-27 00:00:00.000000000 Z
11
+ date: 2024-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: artoo
@@ -374,6 +374,7 @@ files:
374
374
  - LICENSE.txt
375
375
  - README.md
376
376
  - Rakefile
377
+ - atome.gemspec
377
378
  - documentation/atome.md
378
379
  - documentation/basic.md
379
380
  - documentation/database.JPG
@@ -419,7 +420,7 @@ files:
419
420
  - lib/atome/extensions/mathematics.rb
420
421
  - lib/atome/extensions/ping.rb
421
422
  - lib/atome/extensions/sha.rb
422
- - lib/atome/genesis/atome.rb
423
+ - lib/atome/genesis/atomes.rb
423
424
  - lib/atome/genesis/genesis.rb
424
425
  - lib/atome/genesis/particles/atome.rb
425
426
  - lib/atome/genesis/particles/communication.rb