atome 0.5.6.5.7 → 0.5.6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/atome/atome.rb +27 -2
- data/lib/atome/extensions/atome.rb +9 -4
- data/lib/atome/genesis/atomes.rb +4 -0
- data/lib/atome/genesis/particles/atome.rb +1 -1
- data/lib/atome/genesis/particles/property.rb +5 -0
- data/lib/atome/genesis/particles/utility.rb +9 -34
- data/lib/atome/genesis/sparkle.rb +4 -1
- data/lib/atome/kernel/universe.rb +19 -17
- data/lib/atome/utilities/utilities.rb +45 -27
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +1 -2
- data/lib/atome_relative.rb +1 -2
- data/lib/molecules/intuition/toolbox.rb +274 -272
- data/lib/renderers/html/html.rb +8 -3
- data/lib/renderers/html/property.rb +9 -0
- data/lib/renderers/html/utility.rb +2 -2
- data/vendor/assets/application/examples/border.rb +17 -40
- data/vendor/assets/application/examples/duplicate.rb +6 -2
- data/vendor/assets/application/examples/history.rb +16 -15
- data/vendor/assets/application/examples/layout.rb +0 -13
- data/vendor/assets/application/examples/matrix.rb +1 -1
- data/vendor/assets/application/examples/preset.rb +1 -1
- data/vendor/assets/application/examples/sub_atome_manipulation.rb +5 -2
- data/vendor/assets/application/examples/sync.rb +16 -17
- data/vendor/assets/application/examples/table.rb +2 -2
- data/vendor/assets/application/examples/test.rb +1 -2
- data/vendor/assets/src/css/style.css +1 -0
- metadata +2 -3
- data/vendor/assets/application/examples/callback.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e69d3973a46163db0b12ee3798bf424a134ddd776fefe6073565a89b0ede0424
|
4
|
+
data.tar.gz: 282f0b4f60cfd45aa0347742bc43e58397276ecc2d1d01fc89733100f5f6a4c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec25093999f6c76f352800e9dd49b30babe2cf5d2816e2a0e3f43c93592be2a76bded2a1327916d1037c582fd08234db9f937c4a87a2ae52c87161822ef6d086
|
7
|
+
data.tar.gz: f61645010752da69b7d3e2c62bfb92f8c237e5f3b731f12077949e6daafc466f0c14f3b21982878850a57f006f80e68c989c1b4b29692a0c1304f3587268ec4c
|
data/lib/atome/atome.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# main Atome entry here
|
4
|
+
# used as a callback when the atome is ready
|
5
|
+
# Atome.instance_variable_set('@initialized',{})
|
4
6
|
class Atome
|
5
7
|
include Essentials
|
6
8
|
|
@@ -8,6 +10,14 @@ class Atome
|
|
8
10
|
@aid
|
9
11
|
end
|
10
12
|
|
13
|
+
# dummy method to catch a method get all instance variable and try to call a method but initialized is only an
|
14
|
+
# instance variable not a method
|
15
|
+
# FIXME : replace all
|
16
|
+
# def initialized(*_msg)
|
17
|
+
#
|
18
|
+
# end
|
19
|
+
|
20
|
+
|
11
21
|
def initialize(new_atome = {}, &atomes_proc)
|
12
22
|
# TODO: atome format should always be as followed : {value: 0.44, unit: :px, opt1: 554}
|
13
23
|
# when using optimised version of atome you must type eg : a.set({left: {value: 33, unit: '%', reference: :center}})
|
@@ -19,7 +29,6 @@ class Atome
|
|
19
29
|
# # old_atome.send(element, value)
|
20
30
|
# # end
|
21
31
|
# # return false
|
22
|
-
# alert "atome found : #{ grab(new_atome[:id])}"
|
23
32
|
# grab(new_atome[:id])
|
24
33
|
# else
|
25
34
|
# the keys :renderers, :type and :id should be placed in the first position in the hash
|
@@ -46,6 +55,8 @@ class Atome
|
|
46
55
|
# @backup={} # mainly used to restore particle when using grid /table /list display mode
|
47
56
|
@html = HTML.new(@id, self)
|
48
57
|
@headless = Headless.new(@id, self)
|
58
|
+
@initialized={}
|
59
|
+
@creator= Universe.current_user
|
49
60
|
# now we store the proc in a an atome's property called :bloc
|
50
61
|
new_atome[:code] = atomes_proc if atomes_proc
|
51
62
|
# we reorder the hash
|
@@ -53,6 +64,18 @@ class Atome
|
|
53
64
|
# FIXME : try to remove the condition below (it crash in the method : def generator ... in genesis.rb)
|
54
65
|
collapse(reordered_atome)
|
55
66
|
# end
|
67
|
+
# puts "@initialized : #{Atome.instance_variable_get('@initialized')}"
|
68
|
+
# puts "****> #{Atome.instance_variable_get('@initialized')}"
|
69
|
+
|
70
|
+
# if Atome.instance_variable_get('@initialized')
|
71
|
+
# puts "-----> #{Atome.instance_variable_get('@initialized')}"
|
72
|
+
# Atome.instance_variable_get('@initialized').each do |p_found, bloc|
|
73
|
+
# # puts "==> #{p_found}"
|
74
|
+
# # instance_exec.call
|
75
|
+
# # instance_exec(p_found, &bloc) if bloc.is_a?(Proc)
|
76
|
+
# end
|
77
|
+
# end
|
78
|
+
|
56
79
|
|
57
80
|
end
|
58
81
|
|
@@ -76,7 +99,7 @@ class Atome
|
|
76
99
|
# post rendering processor
|
77
100
|
params = particle_post(element, params, &user_proc)
|
78
101
|
instance_variable_set("@#{element}", params) if store
|
79
|
-
#
|
102
|
+
# after storage processor
|
80
103
|
particle_after(element, params, &user_proc)
|
81
104
|
|
82
105
|
# self
|
@@ -91,3 +114,5 @@ class Atome
|
|
91
114
|
"#<#{self.class}: #{content}>"
|
92
115
|
end
|
93
116
|
end
|
117
|
+
|
118
|
+
|
@@ -4,12 +4,12 @@ module ObjectExtension
|
|
4
4
|
def new(params, &bloc)
|
5
5
|
# Genesis = Genesis.Genesis
|
6
6
|
if params.key?(:atome)
|
7
|
-
if Universe.atome_list.include?(params[:atome])
|
8
|
-
|
9
|
-
else
|
7
|
+
# if Universe.atome_list.include?(params[:atome])
|
8
|
+
# puts "atome #{params[:atome]} already exist you can't create it"
|
9
|
+
# else
|
10
10
|
Universe.add_atomes_specificities params[:atome]
|
11
11
|
Genesis.build_atome(params[:atome], &bloc)
|
12
|
-
end
|
12
|
+
# end
|
13
13
|
elsif params.key?(:particle)
|
14
14
|
if Universe.particle_list[params[:particle]]
|
15
15
|
puts "particle #{params[:particle]} already exist you can't create it"
|
@@ -31,6 +31,8 @@ module ObjectExtension
|
|
31
31
|
Atome.instance_variable_set("@post_#{params[:post]}", bloc)
|
32
32
|
elsif params.key?(:after)
|
33
33
|
Atome.instance_variable_set("@after_#{params[:after]}", bloc)
|
34
|
+
elsif params.key?(:initialized)
|
35
|
+
Atome.initialized[params[:initialized]] = bloc
|
34
36
|
elsif params.key?(:read)
|
35
37
|
Atome.instance_variable_set("@read_#{params[:read]}", bloc)
|
36
38
|
elsif params[:renderer]
|
@@ -440,9 +442,12 @@ class Object
|
|
440
442
|
particle_list.delete(:password)
|
441
443
|
particle_list.delete(:selection)
|
442
444
|
infos = {}
|
445
|
+
particle_list[:css]=:poil
|
443
446
|
particle_list.each do |particle_found|
|
444
447
|
infos[particle_found[0]] = send(particle_found[0]) unless send(particle_found[0]).nil?
|
445
448
|
end
|
449
|
+
# we convert CssProxy object to hash below
|
450
|
+
infos[:css]=eval(infos[:css].to_s)
|
446
451
|
infos
|
447
452
|
end
|
448
453
|
|
data/lib/atome/genesis/atomes.rb
CHANGED
@@ -82,6 +82,10 @@ new({ atome: :border }) do |params|
|
|
82
82
|
end
|
83
83
|
params
|
84
84
|
end
|
85
|
+
new({ post: :border }) do |params|
|
86
|
+
# in order to apply the color to the atome border if a color is passed
|
87
|
+
color(params[:color])
|
88
|
+
end
|
85
89
|
new({ atome: :raw })
|
86
90
|
new({ atome: :shape })
|
87
91
|
new({ atome: :code })
|
@@ -86,11 +86,7 @@ new({ particle: :schedule, category: :utility, type: :string }) do |date, proc|
|
|
86
86
|
send("#{renderer}_schedule", format_date, &proc)
|
87
87
|
end
|
88
88
|
end
|
89
|
-
|
90
|
-
# Universe.renderer_list.each do |renderer|
|
91
|
-
# send("#{renderer}_reader", file, &proc)
|
92
|
-
# end
|
93
|
-
# end
|
89
|
+
|
94
90
|
new({ particle: :cursor, category: :utility, type: :string })
|
95
91
|
|
96
92
|
new({ particle: :preset, category: :utility, type: :string }) do |params|
|
@@ -154,27 +150,8 @@ new({ particle: :duplicate, category: :utility, type: :string, store: false }) d
|
|
154
150
|
else
|
155
151
|
0
|
156
152
|
end
|
157
|
-
new_atome_id = "#{@id}_copy_#{copy_number}"
|
158
|
-
new_atome = Atome.new({ type: @type, renderers: @renderers, id: new_atome_id })
|
159
|
-
|
160
153
|
attached_atomes = []
|
161
154
|
attached_found = attached.dup
|
162
|
-
particles_found = instance_variables.dup
|
163
|
-
|
164
|
-
keys_to_delete = [:@history, :@callback, :@duplicate, :@copy, :@paste, :@touch_code, :@html, :@attached, :@id]
|
165
|
-
keys_to_delete.each { |key| particles_found.delete(key) }
|
166
|
-
params[:id] = new_atome_id
|
167
|
-
|
168
|
-
particles_found.each do |particle_found|
|
169
|
-
particle_name = particle_found.to_s.sub('@', '')
|
170
|
-
|
171
|
-
particle_content = self.send(particle_name)
|
172
|
-
# FIXME: find a better to attach object when false is found
|
173
|
-
particle_content = :view if particle_content == false
|
174
|
-
new_atome.set(particle_name => particle_content)
|
175
|
-
# new_atome.instance_variable_set('@touch_code',touch_code)
|
176
|
-
end
|
177
|
-
|
178
155
|
attached_found.each do |child_id_found|
|
179
156
|
child_found = grab(child_id_found)
|
180
157
|
if child_found
|
@@ -183,19 +160,17 @@ new({ particle: :duplicate, category: :utility, type: :string, store: false }) d
|
|
183
160
|
end
|
184
161
|
end
|
185
162
|
params[:attached] = attached_atomes
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
end
|
194
|
-
|
163
|
+
infos_found =infos.dup
|
164
|
+
keys_to_delete = [ :history, :callback, :duplicate, :copy, :paste, :touch_code, :html, :attached, :aid]
|
165
|
+
keys_to_delete.each { |key| infos_found.delete(key) }
|
166
|
+
new_atome_id = "#{@id}_copy_#{copy_number}".to_sym
|
167
|
+
infos_found[:id]=new_atome_id
|
168
|
+
infos_found=infos_found.merge(params)
|
169
|
+
new_atome =Atome.new( infos_found)
|
195
170
|
@duplicate ||= {}
|
196
171
|
@duplicate[new_atome_id] = new_atome
|
197
|
-
|
198
172
|
new_atome
|
173
|
+
|
199
174
|
end
|
200
175
|
|
201
176
|
new({ after: :duplicate }) do |params|
|
@@ -113,6 +113,7 @@ def atome_infos
|
|
113
113
|
server = Universe.current_server
|
114
114
|
server ||= 'disconnected'
|
115
115
|
puts "server: #{server}"
|
116
|
+
|
116
117
|
end
|
117
118
|
|
118
119
|
# help and example below :
|
@@ -207,6 +208,8 @@ def user_login
|
|
207
208
|
sync({ action: :authorization, data: { password: password } }) do |pass|
|
208
209
|
puts "password received : #{pass}"
|
209
210
|
end
|
211
|
+
|
210
212
|
end
|
211
213
|
|
212
|
-
|
214
|
+
puts '------------------------'
|
215
|
+
Universe.allow_history=true
|
@@ -242,9 +242,10 @@ class Universe
|
|
242
242
|
|
243
243
|
def historicize(id, operation, element, params)
|
244
244
|
|
245
|
-
if @allow_history && @database_ready
|
246
|
-
|
247
|
-
|
245
|
+
# if @allow_history && @database_ready
|
246
|
+
if @allow_history
|
247
|
+
# A.sync({ action: :historicize, data: { table: :user } }) do |_db_state|
|
248
|
+
# end
|
248
249
|
operation_timing = Time.now.strftime("%Y%m%d%H%M%S%3N") + @increment.to_s
|
249
250
|
@increment += 1
|
250
251
|
@increment = @increment % 100
|
@@ -253,20 +254,21 @@ class Universe
|
|
253
254
|
end
|
254
255
|
end
|
255
256
|
|
256
|
-
def story
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
end
|
269
|
-
|
257
|
+
def story
|
258
|
+
@history
|
259
|
+
# # temp algo awaiting db to be ready, just for POC and tests
|
260
|
+
# return unless filter
|
261
|
+
#
|
262
|
+
# operation = filter[:operation]
|
263
|
+
# atome_id = filter[:id]
|
264
|
+
# particle = filter[:particle]
|
265
|
+
# filtered_history = []
|
266
|
+
# @history.each do |operation_number, alteration|
|
267
|
+
# if alteration[atome_id] && (alteration[atome_id][operation]) && (alteration[atome_id][operation][particle])
|
268
|
+
# filtered_history << { operation: operation_number, filter[:particle] => alteration[atome_id][operation][particle], sync: alteration[:sync], time: alteration[:time] }
|
269
|
+
# end
|
270
|
+
# end
|
271
|
+
# filtered_history
|
270
272
|
end
|
271
273
|
|
272
274
|
end
|
@@ -5,10 +5,9 @@ require 'json'
|
|
5
5
|
|
6
6
|
class Atome
|
7
7
|
class << self
|
8
|
+
attr_accessor :initialized
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
# end
|
12
11
|
def file_handler(parent, content, bloc)
|
13
12
|
grab(parent).instance_exec(content, &bloc)
|
14
13
|
end
|
@@ -56,6 +55,8 @@ class Atome
|
|
56
55
|
|
57
56
|
end
|
58
57
|
|
58
|
+
@initialized = {}
|
59
|
+
|
59
60
|
def help(particle, &doc)
|
60
61
|
if doc
|
61
62
|
Universe.set_help(particle, &doc)
|
@@ -92,10 +93,21 @@ class Atome
|
|
92
93
|
end
|
93
94
|
|
94
95
|
def collapse(new_atome)
|
95
|
-
|
96
|
+
initialized_procs = []
|
97
|
+
initialized = Atome.initialized
|
98
|
+
|
96
99
|
new_atome.each do |element, value|
|
97
100
|
send(element, value)
|
101
|
+
initialized_proc = initialized[element]
|
102
|
+
initialized_procs << {value => initialized_proc } if initialized_proc.is_a?(Proc)
|
103
|
+
end
|
104
|
+
|
105
|
+
initialized_procs.each do |value|
|
106
|
+
value.each do |val, proc|
|
107
|
+
instance_exec(val, &proc)
|
108
|
+
end
|
98
109
|
end
|
110
|
+
|
99
111
|
end
|
100
112
|
|
101
113
|
def particle_main(element, params, &user_proc)
|
@@ -154,7 +166,7 @@ class Atome
|
|
154
166
|
end
|
155
167
|
|
156
168
|
def atome_sanitizer(element, params, &user_proc)
|
157
|
-
# Attention: the method is the same as the one used for the
|
169
|
+
# Attention: the method is the same as the one used for the particle
|
158
170
|
particle_sanitizer(element, params)
|
159
171
|
end
|
160
172
|
|
@@ -188,9 +200,14 @@ class Atome
|
|
188
200
|
#
|
189
201
|
# end
|
190
202
|
|
191
|
-
def history(filter = {})
|
192
|
-
|
193
|
-
|
203
|
+
# def history(filter = {})
|
204
|
+
#
|
205
|
+
# filter[:id] = @id
|
206
|
+
# Universe.story(filter)
|
207
|
+
# end
|
208
|
+
|
209
|
+
def history
|
210
|
+
Universe.story
|
194
211
|
end
|
195
212
|
|
196
213
|
# def broadcasting(element)
|
@@ -294,10 +311,10 @@ class Atome
|
|
294
311
|
end
|
295
312
|
end
|
296
313
|
|
297
|
-
def
|
314
|
+
def particles_to_hash
|
298
315
|
hash = {}
|
299
316
|
instance_variables.each do |var|
|
300
|
-
next if %i[@html_object @history].include?(var)
|
317
|
+
next if %i[@html_object @history, @initialized].include?(var)
|
301
318
|
|
302
319
|
hash[var.to_s.delete('@').to_sym] = instance_variable_get(var)
|
303
320
|
end
|
@@ -306,13 +323,13 @@ class Atome
|
|
306
323
|
|
307
324
|
def refresh
|
308
325
|
# we get the current color because they will be removed
|
309
|
-
particles_found =
|
326
|
+
particles_found = particles_to_hash
|
310
327
|
particles_found.each do |particle_found, value_found|
|
311
328
|
send(particle_found, value_found)
|
312
329
|
end
|
313
|
-
|
314
|
-
|
315
|
-
|
330
|
+
color.each do |col|
|
331
|
+
apply(col)
|
332
|
+
end
|
316
333
|
end
|
317
334
|
|
318
335
|
def each(&proc)
|
@@ -404,10 +421,11 @@ class Atome
|
|
404
421
|
# Digest::SHA256.hexdigest(string)
|
405
422
|
# end
|
406
423
|
end
|
424
|
+
|
407
425
|
def get_localstorage_content
|
408
|
-
storage= JS.global[:localStorage]
|
409
|
-
storage_array= storage.to_a
|
410
|
-
storage_items={}
|
426
|
+
storage = JS.global[:localStorage]
|
427
|
+
storage_array = storage.to_a
|
428
|
+
storage_items = {}
|
411
429
|
storage_array.each_with_index do |_i, index|
|
412
430
|
key = JS.global[:localStorage].key(index)
|
413
431
|
value = JS.global[:localStorage].getItem(key)
|
@@ -417,7 +435,7 @@ class Atome
|
|
417
435
|
end
|
418
436
|
|
419
437
|
def sanitize_data_for_json(data)
|
420
|
-
data=data.gsub('"', '\\"')
|
438
|
+
data = data.gsub('"', '\\"')
|
421
439
|
# case data
|
422
440
|
# when String
|
423
441
|
# data.gsub('"', '\\"')
|
@@ -432,8 +450,8 @@ class Atome
|
|
432
450
|
end
|
433
451
|
|
434
452
|
def send_localstorage_content
|
435
|
-
storage= JS.global[:localStorage]
|
436
|
-
storage_array= storage.to_a
|
453
|
+
storage = JS.global[:localStorage]
|
454
|
+
storage_array = storage.to_a
|
437
455
|
# storage_items={}
|
438
456
|
storage_array.each_with_index do |_i, index|
|
439
457
|
key = JS.global[:localStorage].key(index)
|
@@ -450,16 +468,16 @@ class Atome
|
|
450
468
|
# end
|
451
469
|
end
|
452
470
|
|
453
|
-
def to_sym
|
454
|
-
|
455
|
-
|
456
|
-
end
|
471
|
+
# def to_sym
|
472
|
+
# puts "sanitizer temp patch when an atome is passed instead of an id"
|
473
|
+
# @id
|
474
|
+
# end
|
457
475
|
|
458
476
|
def sync(params, &bloc)
|
459
477
|
params = { data: params } unless params.instance_of? Hash
|
460
|
-
message_id= "msg_#{Universe.messages.length}"
|
461
|
-
params[:message_id]=message_id
|
462
|
-
Universe.store_messages({msg_nb:message_id, proc: bloc })
|
478
|
+
message_id = "msg_#{Universe.messages.length}"
|
479
|
+
params[:message_id] = message_id
|
480
|
+
Universe.store_messages({ msg_nb: message_id, proc: bloc })
|
463
481
|
html.send_message(params)
|
464
482
|
end
|
465
483
|
end
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -15,6 +15,7 @@ require 'atome/extensions/mathematics'
|
|
15
15
|
require 'atome/atome'
|
16
16
|
require 'atome/genesis/atomes'
|
17
17
|
require 'atome/presets/atome'
|
18
|
+
require 'atome/utilities/utilities'
|
18
19
|
require 'atome/genesis/particles/atome'
|
19
20
|
require 'atome/genesis/particles/communication'
|
20
21
|
require 'atome/genesis/particles/effect'
|
@@ -28,7 +29,6 @@ require 'atome/genesis/particles/security'
|
|
28
29
|
require 'atome/genesis/particles/spatial'
|
29
30
|
require 'atome/genesis/particles/time'
|
30
31
|
require 'atome/genesis/particles/utility'
|
31
|
-
require 'atome/utilities/utilities'
|
32
32
|
require 'atome/utilities/security'
|
33
33
|
require 'renderers/html/index'
|
34
34
|
require 'renderers/headless/index'
|
@@ -36,4 +36,3 @@ require 'renderers/server/index'
|
|
36
36
|
require 'atome/utilities/sanitizer'
|
37
37
|
require 'atome/genesis/sparkle'
|
38
38
|
require 'molecules/init'
|
39
|
-
# require 'eVe/lib/eVe'
|
data/lib/atome_relative.rb
CHANGED
@@ -14,6 +14,7 @@ require_relative './atome/extensions/mathematics'
|
|
14
14
|
require_relative './atome/atome'
|
15
15
|
require_relative './atome/genesis/atomes'
|
16
16
|
require_relative './atome/presets/atome'
|
17
|
+
require_relative './atome/utilities/utilities'
|
17
18
|
require_relative './atome/genesis/particles/atome'
|
18
19
|
require_relative './atome/genesis/particles/communication'
|
19
20
|
require_relative './atome/genesis/particles/effect'
|
@@ -27,7 +28,6 @@ require_relative './atome/genesis/particles/security'
|
|
27
28
|
require_relative './atome/genesis/particles/spatial'
|
28
29
|
require_relative './atome/genesis/particles/time'
|
29
30
|
require_relative './atome/genesis/particles/utility'
|
30
|
-
require_relative './atome/utilities/utilities'
|
31
31
|
require_relative './atome/utilities/security'
|
32
32
|
require_relative './renderers/html/index_relative'
|
33
33
|
require_relative './renderers/headless/index_relative'
|
@@ -35,4 +35,3 @@ require_relative './renderers/server/index_relative'
|
|
35
35
|
require_relative './atome/utilities/sanitizer'
|
36
36
|
require_relative './atome/genesis/sparkle'
|
37
37
|
require_relative './molecules/init'
|
38
|
-
# require_relative './eVe/lib/eVe'
|