atome 0.5.7.4.7 → 0.5.7.4.8
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/extensions/atome.rb +13 -0
- data/lib/atome/genesis/particles/communication.rb +4 -4
- data/lib/atome/genesis/sparkle.rb +9 -3
- data/lib/atome/kernel/universe.rb +3 -1
- data/lib/atome/utilities/essentials.rb +3 -1
- data/lib/atome/utilities/utilities.rb +103 -37
- data/lib/atome/version.rb +1 -1
- data/lib/molecules/intuition/tools.rb +2 -2
- data/lib/molecules/intuition/utilities.rb +2 -2
- data/lib/renderers/html/html.rb +7 -0
- data/lib/renderers/html/identity.rb +12 -5
- data/vendor/assets/application/examples/applications.rb +8 -3
- data/vendor/assets/application/examples/flash.rb +5 -0
- data/vendor/assets/application/examples/input.rb +7 -2
- data/vendor/assets/application/examples/int8.rb +30 -11
- data/vendor/assets/application/examples/retreive.rb +24 -0
- data/vendor/assets/application/examples/schedule.rb +23 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adbf3e2dbe9b01956856270d1789ebae1205be44b00b4038cf1c709c0f7d7f2e
|
4
|
+
data.tar.gz: a01c1c6b62cd322949d94b44b6b1952f2c331ad1dd9ed55cdf9d46b3a1053627
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8613255d625a6d457a0e280253cbcf1317cb6210bded5482eb4eee67c6c7f9e5d513fd93938da916bfeeeb45ad5ab646d234d7596f20a736c071e4bd940df1df
|
7
|
+
data.tar.gz: 39f6697c368a0558648eb649268f151626d0aa06ef9ccdd21a67dffb40a97409daca0bef111648f11d08ae85d5757121c014cc953f44f7067db65f85fb21997a
|
@@ -69,6 +69,16 @@ end
|
|
69
69
|
class Object
|
70
70
|
include ObjectExtension
|
71
71
|
|
72
|
+
def refresh
|
73
|
+
grab(:view).retrieve do |child|
|
74
|
+
child.refresh
|
75
|
+
end
|
76
|
+
# atomes_to_treat=grab(:view).fasten.dup
|
77
|
+
# atomes_to_treat.each do |atome_found|
|
78
|
+
# grab(atome_found).refresh
|
79
|
+
# end
|
80
|
+
end
|
81
|
+
|
72
82
|
def truncate_string(string, max_length)
|
73
83
|
string.length > max_length ? string.slice(0, max_length) + '.' : string
|
74
84
|
end
|
@@ -804,4 +814,7 @@ class CssProxy
|
|
804
814
|
end
|
805
815
|
|
806
816
|
|
817
|
+
|
818
|
+
|
819
|
+
|
807
820
|
end
|
@@ -24,10 +24,10 @@ end
|
|
24
24
|
|
25
25
|
new({ particle: :int8, category: :communication, type: :int })
|
26
26
|
|
27
|
-
new({ particle: :language, category: :communication, type: :string }) do |params|
|
28
|
-
|
29
|
-
|
30
|
-
end
|
27
|
+
# new({ particle: :language, category: :communication, type: :string }) do |params|
|
28
|
+
# @data = int8[params]
|
29
|
+
# params
|
30
|
+
# end
|
31
31
|
# method below are used for communication with native core
|
32
32
|
def receptor(msg)
|
33
33
|
parsed = JSON.parse(msg)
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
Universe.language=:english
|
4
|
+
|
3
5
|
# now let's get the default render engine
|
4
6
|
|
5
7
|
# Lets create the U.I.
|
@@ -64,7 +66,7 @@ Atome.new(
|
|
64
66
|
Atome.new(
|
65
67
|
{ renderers: default_render, aid: :view,type: :shape, attach: :user_view, apply: [:view_color],
|
66
68
|
tag: { system: true }, left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto,
|
67
|
-
language: :english
|
69
|
+
# language: :english
|
68
70
|
}
|
69
71
|
|
70
72
|
)
|
@@ -126,8 +128,12 @@ puts b.left
|
|
126
128
|
b.left(155)
|
127
129
|
puts b.left
|
128
130
|
STR
|
129
|
-
example = text({ int8: { english: english, french: french },
|
130
|
-
|
131
|
+
example = text({ int8: { english: english, french: french },
|
132
|
+
# language: :english,
|
133
|
+
width: 666 })
|
134
|
+
code_text = text({ int8: { english: code },
|
135
|
+
# language: :english,
|
136
|
+
width: 666, top: 33 })
|
131
137
|
example.touch(true) do
|
132
138
|
example.delete(true)
|
133
139
|
help(:left)
|
@@ -28,6 +28,7 @@ class Universe
|
|
28
28
|
@allow_tool_operations = false
|
29
29
|
@active_tools = []
|
30
30
|
@atome_preset = []
|
31
|
+
@translation={}
|
31
32
|
@default_selection_style = { border: { thickness: 1, red: 1, green: 0, blue: 0, alpha: 1, pattern: :dotted } }
|
32
33
|
@applicable_atomes = %i[color shadow border paint animation]
|
33
34
|
# @historicize=false
|
@@ -35,7 +36,8 @@ class Universe
|
|
35
36
|
attr_reader :atomes, :atomes_ids, :renderer_list, :molecule_list, :atome_list, :particle_list, :classes, :counter,
|
36
37
|
:atomes_specificities
|
37
38
|
attr_accessor :connected, :allow_sync, :allow_localstorage, :database_ready, :edit_mode, :tools, :tools_root,
|
38
|
-
:allow_tool_operations, :active_tools, :atome_preset, :applicable_atomes, :default_selection_style
|
39
|
+
:allow_tool_operations, :active_tools, :atome_preset, :applicable_atomes, :default_selection_style,
|
40
|
+
:translation, :language
|
39
41
|
|
40
42
|
def messages
|
41
43
|
@messages
|
@@ -38,7 +38,9 @@ module Essentials
|
|
38
38
|
left: 0, top: 0 },
|
39
39
|
text: { type: :text, component: { size: 12 },left: 0, top: 0,
|
40
40
|
apply: [:text_color],
|
41
|
-
width: :auto, height: :auto,
|
41
|
+
width: :auto, height: :auto,
|
42
|
+
# language: :english
|
43
|
+
},
|
42
44
|
drm: { type: :drm, attach: :black_matter },
|
43
45
|
shadow: { type: :shadow, red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 },
|
44
46
|
border: { type: :border, red: 0, green: 0, blue: 0, alpha: 0, pattern: :solid, thickness: 6 },
|
@@ -9,7 +9,6 @@ class Atome
|
|
9
9
|
class << self
|
10
10
|
attr_accessor :initialized
|
11
11
|
|
12
|
-
|
13
12
|
def sanitize_data_for_json(data)
|
14
13
|
data.gsub('"', '\\"')
|
15
14
|
end
|
@@ -86,7 +85,9 @@ class Atome
|
|
86
85
|
end
|
87
86
|
args = args[0]
|
88
87
|
end
|
89
|
-
|
88
|
+
if bloc.is_a?(Proc)
|
89
|
+
instance_exec({ original: value_before, altered: args, particle: monitored_particle }, &bloc)
|
90
|
+
end
|
90
91
|
original_method.call(*args)
|
91
92
|
end
|
92
93
|
end
|
@@ -114,9 +115,7 @@ class Atome
|
|
114
115
|
|
115
116
|
fasten.each do |child_id|
|
116
117
|
child_found = grab(child_id)
|
117
|
-
if child_found.role && child_found.role.include?(role_wanted)
|
118
|
-
gripped_atome << child_id
|
119
|
-
end
|
118
|
+
gripped_atome << child_id if child_found.role && child_found.role.include?(role_wanted)
|
120
119
|
end
|
121
120
|
gripped_atome
|
122
121
|
end
|
@@ -125,9 +124,48 @@ class Atome
|
|
125
124
|
# dummy method
|
126
125
|
end
|
127
126
|
|
127
|
+
def retrieve(params = {}, &block)
|
128
|
+
closest_first = true, include_self = false
|
129
|
+
if params[:ascending] == false
|
130
|
+
closest_first = :inverted
|
131
|
+
end
|
132
|
+
if params[:self] == true
|
133
|
+
include_self = true
|
134
|
+
end
|
135
|
+
|
136
|
+
# this method allow to retrieve all children of an atome recursively, beginning from the closet child or inverted
|
137
|
+
|
138
|
+
all_children = []
|
139
|
+
fetch_children_recursively = lambda do |parent, depth|
|
140
|
+
children_ids = parent.fasten
|
141
|
+
if children_ids.any?
|
142
|
+
children_ids.each do |child_id|
|
143
|
+
child = grab(child_id)
|
144
|
+
fetch_children_recursively.call(child, depth + 1)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
if include_self
|
148
|
+
all_children << { depth: depth, child: parent }
|
149
|
+
else
|
150
|
+
all_children << { depth: depth, child: parent } unless parent == self
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
|
155
|
+
fetch_children_recursively.call(self, 0)
|
128
156
|
|
157
|
+
sorted_children = if closest_first != :inverted
|
158
|
+
all_children.sort_by { |entry| entry[:depth] }
|
159
|
+
else
|
160
|
+
all_children.sort_by { |entry| -entry[:depth] }
|
161
|
+
end
|
129
162
|
|
130
|
-
|
163
|
+
sorted_children.each do |entry|
|
164
|
+
block.call(entry[:child])
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
def found_spacing_in_percent(parent_width, child_width, nb_of_children)
|
131
169
|
total_child_width = child_width * nb_of_children
|
132
170
|
remaining_width = parent_width - total_child_width
|
133
171
|
spacing = remaining_width.to_f / (nb_of_children + 1)
|
@@ -171,14 +209,16 @@ class Atome
|
|
171
209
|
end
|
172
210
|
|
173
211
|
def blocks(params)
|
212
|
+
# alert 'blocks case'
|
213
|
+
|
174
214
|
blocks = params.delete(:blocks)
|
175
215
|
distribute = params.delete(:distribute)
|
176
216
|
if distribute && params[:direction] == :horizontal
|
177
217
|
width_found = to_px(:width)
|
178
|
-
params[:spacing] = "#{
|
218
|
+
params[:spacing] = "#{found_spacing_in_percent(width_found, params[:width], blocks.length)}%"
|
179
219
|
elsif distribute
|
180
220
|
height_found = to_px(:height)
|
181
|
-
params[:spacing] =
|
221
|
+
params[:spacing] = found_spacing_in_percent(height_found, params[:height], blocks.length)
|
182
222
|
end
|
183
223
|
blocks.each do |bloc_id, block_to_create|
|
184
224
|
sanitized_bloc_data = params.merge(block_to_create)
|
@@ -186,7 +226,6 @@ class Atome
|
|
186
226
|
end
|
187
227
|
end
|
188
228
|
|
189
|
-
|
190
229
|
def sub_block(sub_params, spacing_found = 3)
|
191
230
|
num_blocks = sub_params.size
|
192
231
|
parent_width = to_px(:width)
|
@@ -202,13 +241,11 @@ class Atome
|
|
202
241
|
sub_created.set(sub_content)
|
203
242
|
sub_created.width(block_width)
|
204
243
|
left_offset += block_width + spacing_found
|
205
|
-
|
206
|
-
|
244
|
+
sub_created.width(sub_created.to_percent(:width))
|
245
|
+
sub_created.left(sub_created.to_percent(:left))
|
207
246
|
end
|
208
247
|
end
|
209
248
|
|
210
|
-
|
211
|
-
|
212
249
|
def help(particle, &doc)
|
213
250
|
if doc
|
214
251
|
Universe.set_help(particle, &doc)
|
@@ -408,7 +445,7 @@ class Atome
|
|
408
445
|
# This method is used to automatically create a callback method suffixed by '_callback'. For example: shell => shell_callback.
|
409
446
|
# it can be override if you create a method like:
|
410
447
|
# new({callback: :shell}) do |params, bloc|
|
411
|
-
# #
|
448
|
+
# # write what you want …
|
412
449
|
# end
|
413
450
|
def particle_callback(element)
|
414
451
|
Atome.define_method("#{element}_callback") do |return_params|
|
@@ -475,31 +512,62 @@ class Atome
|
|
475
512
|
hash
|
476
513
|
end
|
477
514
|
|
478
|
-
def refresh
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
515
|
+
# def refresh
|
516
|
+
#
|
517
|
+
# # we get the current color because they will be removed
|
518
|
+
# particles_found = particles_to_hash.dup
|
519
|
+
# # id_found=id
|
520
|
+
# data_found=particles_found.delete(:data)
|
521
|
+
# attach_found=particles_found.delete(:attach)
|
522
|
+
# apply_found=particles_found.delete(:apply)
|
523
|
+
# particles_found.each do |particle_found, value_found|
|
524
|
+
# send(particle_found, value_found)
|
525
|
+
# end
|
526
|
+
# # Universe.applicable_atomes.each do |atome_type|
|
527
|
+
# #
|
528
|
+
# # send(atome_type).each do |col|
|
529
|
+
# # apply(col)
|
530
|
+
# # end
|
531
|
+
# # end
|
532
|
+
# # alert id_found
|
533
|
+
# # grab(attach_found).fasten(id_found)
|
534
|
+
# data(data_found)
|
535
|
+
#
|
536
|
+
# apply_found.delete(:text_color) #TODO : patch here : the array is not correctly ordered so default color are apply over the next
|
537
|
+
# apply_found.delete(:box_color) ##TODO : patch here : the array is not correctly ordered so default color are apply over the next
|
538
|
+
# apply(apply_found)
|
539
|
+
# # attach(attach_found)
|
540
|
+
# end
|
541
|
+
|
542
|
+
def refresh_atome
|
543
|
+
id_found = id.dup
|
544
|
+
id(:temporary)
|
545
|
+
fasten_atomes = []
|
546
|
+
fasten_found = fasten.dup
|
547
|
+
fasten_found.each do |child_id_found|
|
548
|
+
child_found = grab(child_id_found)
|
549
|
+
if child_found
|
550
|
+
new_child = child_found.duplicate({})
|
551
|
+
fasten_atomes << new_child.id
|
488
552
|
end
|
489
553
|
end
|
490
|
-
end
|
491
554
|
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
555
|
+
infos_found = infos.dup
|
556
|
+
data_found = infos_found.delete(:data)
|
557
|
+
keys_to_delete = %i[history callback duplicate copy paste touch_code html fasten aid]
|
558
|
+
keys_to_delete.each { |key| infos_found.delete(key) }
|
559
|
+
new_atome_id = id_found
|
560
|
+
infos_found[:id] = new_atome_id
|
561
|
+
new_atome = Atome.new(infos_found)
|
562
|
+
@duplicate ||= {}
|
563
|
+
@duplicate[new_atome_id] = new_atome
|
564
|
+
new_atome.data(data_found) # needed because if atome type is a text we need add type at the end
|
565
|
+
new_atome
|
496
566
|
end
|
497
567
|
|
498
|
-
def
|
499
|
-
|
500
|
-
|
501
|
-
instance_exec(val, index, &proc) if proc.is_a?(Proc)
|
502
|
-
index += 1
|
568
|
+
def refresh(&bloc)
|
569
|
+
retrieve({ self: true }) do |child|
|
570
|
+
child.refresh_atome
|
503
571
|
end
|
504
572
|
end
|
505
573
|
|
@@ -548,9 +616,7 @@ class Atome
|
|
548
616
|
category(:atome)
|
549
617
|
attach(grand_parent)
|
550
618
|
# we delete the parent (the layout) if it no more children fasten
|
551
|
-
if parent_found.fasten.length == 0
|
552
|
-
parent_found.delete(true)
|
553
|
-
end
|
619
|
+
parent_found.delete(true) if parent_found.fasten.length == 0
|
554
620
|
end
|
555
621
|
|
556
622
|
def server(server_params = nil)
|
data/lib/atome/version.rb
CHANGED
@@ -91,7 +91,7 @@ class Atome
|
|
91
91
|
@click_analysis_active = false
|
92
92
|
|
93
93
|
click_timeout = nil
|
94
|
-
double_click_delay =
|
94
|
+
double_click_delay = 222
|
95
95
|
|
96
96
|
JS.global[:document].addEventListener('click') do |native_event|
|
97
97
|
if @click_analysis
|
@@ -115,7 +115,7 @@ class Atome
|
|
115
115
|
|
116
116
|
else
|
117
117
|
click_timeout = wait(double_click_delay / 1000.0) do
|
118
|
-
click_timeout = nil
|
118
|
+
click_timeout = nil # important do not remove !
|
119
119
|
Atome.instance_exec(native_event, &@click_analysis) if @click_analysis.is_a?(Proc)
|
120
120
|
end
|
121
121
|
end
|
@@ -184,7 +184,7 @@ new(molecule: :input) do |params, bloc|
|
|
184
184
|
position: :absolute
|
185
185
|
}.merge(text_params)
|
186
186
|
)
|
187
|
-
|
187
|
+
input_back.touch(:down) do
|
188
188
|
input_back.tick(:input)
|
189
189
|
text_input.edit(true)
|
190
190
|
end
|
@@ -664,7 +664,7 @@ new(molecule: :show) do |page_id, &bloc|
|
|
664
664
|
grab("#{id_f}_header").left(basic_size) if header
|
665
665
|
end
|
666
666
|
end
|
667
|
-
|
667
|
+
new_page
|
668
668
|
end
|
669
669
|
|
670
670
|
|
data/lib/renderers/html/html.rb
CHANGED
@@ -732,7 +732,14 @@ class HTML
|
|
732
732
|
end
|
733
733
|
end
|
734
734
|
|
735
|
+
def drag_code(params=nil)
|
736
|
+
#FIXME : this method is an ugly patch when refreshing an atome twice, else it crash
|
737
|
+
# and lose it's drag
|
738
|
+
drag_move(params)
|
739
|
+
end
|
740
|
+
|
735
741
|
def event(action, variance, option = nil)
|
742
|
+
# puts " remove 'if option', if unable ti unbind# : #{action} _ #{variance}"
|
736
743
|
send("#{action}_#{variance}", option)
|
737
744
|
end
|
738
745
|
|
@@ -46,11 +46,18 @@ end
|
|
46
46
|
|
47
47
|
new({ method: :data, type: :string, specific: :text, renderer: :html }) do |params|
|
48
48
|
|
49
|
-
js[:innerHTML] = if int8[language]
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
# js[:innerHTML] = if int8[language]
|
50
|
+
# int8[language].to_s
|
51
|
+
# else
|
52
|
+
# params.to_s
|
53
|
+
# end
|
54
|
+
|
55
|
+
# alert "#{Universe.translation} /// #{params} /// #{Universe.language}"
|
56
|
+
if Universe.translation[params]
|
57
|
+
params= Universe.translation[params][Universe.language]
|
58
|
+
end
|
59
|
+
js[:innerHTML] = params.to_s
|
60
|
+
|
54
61
|
end
|
55
62
|
|
56
63
|
new({ method: :data, type: :string, specific: :vector, renderer: :html }) do |value|
|
@@ -41,7 +41,6 @@ page0 = { id: :page0,
|
|
41
41
|
|
42
42
|
a.page(page0)
|
43
43
|
a.page(page1)
|
44
|
-
a.page(page2)
|
45
44
|
a.page({ id: :page3,
|
46
45
|
color: :red,
|
47
46
|
})
|
@@ -66,11 +65,17 @@ wait 1 do
|
|
66
65
|
a.extract({page3: :block1})
|
67
66
|
end
|
68
67
|
|
69
|
-
a.show(:page3)
|
68
|
+
page_3=a.show(:page3)
|
69
|
+
|
70
|
+
wait 1 do
|
71
|
+
page_3.color(:cyan)
|
72
|
+
end
|
73
|
+
|
74
|
+
|
70
75
|
# how access blocks
|
71
76
|
# wait 3 do
|
72
77
|
# grab(:block2).color(:black)
|
73
78
|
# end
|
74
79
|
|
75
80
|
|
76
|
-
|
81
|
+
puts(grab(:project).inspect)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
t = text({ left: 33, top: 33, data: 'data collected', id: :infos })
|
3
|
-
b=box({drag: true, id: :
|
3
|
+
b=box({drag: true, id: :the_b})
|
4
|
+
# Important to trigger on 'return' add the parameter : {trigger: :return}
|
4
5
|
inp=b.input({ width: 166,
|
5
6
|
trigger: :up,
|
6
7
|
back: :orange,
|
@@ -11,7 +12,6 @@ inp=b.input({ width: 166,
|
|
11
12
|
red: 0, green: 0, blue: 0, alpha: 0.9
|
12
13
|
},
|
13
14
|
component: {size: 8},
|
14
|
-
# attach: :intuition,
|
15
15
|
text: { color: :black , top: 5, left: 6},
|
16
16
|
smooth: 3,
|
17
17
|
left: 66,
|
@@ -33,4 +33,9 @@ inp.top(12)
|
|
33
33
|
end
|
34
34
|
|
35
35
|
|
36
|
+
c=circle({top: 99})
|
37
|
+
c.touch(true) do
|
38
|
+
alert b.fasten
|
39
|
+
end
|
40
|
+
|
36
41
|
|
@@ -1,17 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
t = text({ int8: { english: :hello, french: :salut, deutch: :halo } })
|
4
|
-
|
5
|
-
wait 1 do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
# t = text({ int8: { english: :hello, french: :salut, deutch: :halo } })
|
4
|
+
|
5
|
+
# wait 1 do
|
6
|
+
# t.language(:french)
|
7
|
+
# wait 1 do
|
8
|
+
# t.language(:english)
|
9
|
+
# # data is updated to the latest choice
|
10
|
+
# puts t.data
|
11
|
+
# wait 1 do
|
12
|
+
# t.data(:hi)
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
# end
|
16
|
+
|
17
|
+
Universe.translation[:hello] = { english: :hello, french: :salut, deutch: :halo }
|
13
18
|
|
14
|
-
|
19
|
+
b = box({ left: 155,
|
20
|
+
drag: true,
|
21
|
+
id: :boxy })
|
15
22
|
|
16
23
|
|
24
|
+
b.text({ data: :hello, id: :t1, position: :absolute, color: :black })
|
25
|
+
t2 = b.text({ data: :hello, id: :t2, left: 9, top: 33, position: :absolute })
|
17
26
|
|
27
|
+
|
28
|
+
|
29
|
+
Universe.language = :french
|
30
|
+
wait 2 do
|
31
|
+
t2.refresh
|
32
|
+
Universe.language = :deutch
|
33
|
+
wait 2 do
|
34
|
+
grab(:boxy).refresh
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
b = box({ left: 155, drag: true, id: :boxy })
|
4
|
+
|
5
|
+
t=b.text({ data: :hello, id: :t1, position: :absolute, color: :black })
|
6
|
+
t2 = b.text({ data: :hello, id: :t2, left: 9, top: 33, position: :absolute })
|
7
|
+
|
8
|
+
|
9
|
+
wait 1 do
|
10
|
+
grab(:view).retrieve do |child|
|
11
|
+
child.left(33)
|
12
|
+
end
|
13
|
+
wait 1 do
|
14
|
+
grab(:boxy).retrieve do |child|
|
15
|
+
child.color(:green)
|
16
|
+
end
|
17
|
+
wait 1 do
|
18
|
+
grab(:view).retrieve({ ascending: false, self: false }) do |child|
|
19
|
+
child.delete(true)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
def format_time
|
6
|
+
time = Time.now
|
7
|
+
{
|
8
|
+
year: time.year,
|
9
|
+
month: time.month,
|
10
|
+
day: time.day,
|
11
|
+
hour: time.hour,
|
12
|
+
minute: time.min,
|
13
|
+
second: time.sec
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
# Exemple d'utilisation
|
18
|
+
|
19
|
+
t=text({data: "message here", id: :messenger})
|
20
|
+
|
21
|
+
schedule_task('every_minute_task', format_time[:year], format_time[:month], format_time[:day], format_time[:hour], format_time[:minute], format_time[:second]+5, recurrence: :minutely) do
|
22
|
+
t.data("every minute i change from :#{format_time}, now : #{format_time[:minute]} , #{format_time[:second]}")
|
23
|
+
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.7.4.
|
4
|
+
version: 0.5.7.4.8
|
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-07-
|
11
|
+
date: 2024-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -584,6 +584,7 @@ files:
|
|
584
584
|
- vendor/assets/application/examples/fill.rb
|
585
585
|
- vendor/assets/application/examples/find.rb
|
586
586
|
- vendor/assets/application/examples/fit.rb
|
587
|
+
- vendor/assets/application/examples/flash.rb
|
587
588
|
- vendor/assets/application/examples/fonts.rb
|
588
589
|
- vendor/assets/application/examples/generator_and_build.rb
|
589
590
|
- vendor/assets/application/examples/getter.rb
|
@@ -631,8 +632,10 @@ files:
|
|
631
632
|
- vendor/assets/application/examples/remove.rb
|
632
633
|
- vendor/assets/application/examples/repeat.rb
|
633
634
|
- vendor/assets/application/examples/resize.rb
|
635
|
+
- vendor/assets/application/examples/retreive.rb
|
634
636
|
- vendor/assets/application/examples/rotate.rb
|
635
637
|
- vendor/assets/application/examples/run.rb
|
638
|
+
- vendor/assets/application/examples/schedule.rb
|
636
639
|
- vendor/assets/application/examples/scheduler.rb
|
637
640
|
- vendor/assets/application/examples/security.rb
|
638
641
|
- vendor/assets/application/examples/select_text.rb
|