atome 0.5.6.6.1 → 0.5.6.6.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/atome/atome.rb +8 -1
- data/lib/atome/genesis/atomes.rb +2 -31
- data/lib/atome/genesis/particles/event.rb +1 -0
- data/lib/atome/genesis/particles/identity.rb +15 -12
- data/lib/atome/genesis/particles/material.rb +3 -1
- data/lib/atome/genesis/particles/utility.rb +1 -1
- data/lib/atome/kernel/universe.rb +11 -6
- data/lib/atome/version.rb +1 -1
- data/lib/renderers/html/html.rb +98 -40
- data/lib/renderers/html/material.rb +5 -0
- data/vendor/assets/application/examples/aid.rb +4 -1
- data/vendor/assets/application/examples/fill.rb +15 -9
- data/vendor/assets/application/examples/opacity.rb +9 -0
- data/vendor/assets/application/examples/tools.rb +49 -0
- data/vendor/assets/application/examples/touch.rb +4 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f9be61ee0a8afe7d2d0945221f3b5939b87c8b580042008b3074af983e82093
|
4
|
+
data.tar.gz: d070e19b2b11923efeae91f05c28c0e309ab787c6f93570f44bac6b2d4a2e999
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b0e7f9c9fffea9072d6e4d09b91f99b5dc2ee2d465837b77ab7ad9fdaa20f56fd7897bc1befb047e8f81a60751ea1d074122abf30e7cf17dc72eba3109d87bf
|
7
|
+
data.tar.gz: 127a3ce37bb809b9e664c5188cdf2f0478624da98f89357f671e5de6af4a5544cb9ee35b99efe305a53e1b26fbb43a53d00a72a6103aff6eb6bfb6677ebcdd48
|
data/lib/atome/atome.rb
CHANGED
@@ -44,8 +44,15 @@ class Atome
|
|
44
44
|
@int8 = {}
|
45
45
|
@css = {}
|
46
46
|
@aid = identity_generator
|
47
|
-
|
47
|
+
|
48
48
|
@id = new_atome[:id] || @aid
|
49
|
+
Universe.atomes.each do |_aid,atome_f|
|
50
|
+
if atome_f.id == @id
|
51
|
+
puts "===> no for #{@id}"
|
52
|
+
return false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
Universe.add_to_atomes(@aid, self)
|
49
56
|
Universe.id_to_aid(@id, @aid)
|
50
57
|
@type = new_atome[:type] || :element
|
51
58
|
@attached = []
|
data/lib/atome/genesis/atomes.rb
CHANGED
@@ -2,42 +2,15 @@
|
|
2
2
|
|
3
3
|
new({ atome: :color, type: :hash })
|
4
4
|
|
5
|
-
# new({ post: :color }) do |params|
|
6
|
-
# puts "====> #{params}"
|
7
|
-
# params
|
8
|
-
# end
|
9
|
-
# new({ pre: :color}) do |params|
|
10
|
-
# alert "==> pre color params : #{params}"
|
11
|
-
# end
|
12
|
-
|
13
|
-
# new({ atome: :color, type: :hash })do |params|
|
14
|
-
# puts "1 #{params}______"
|
15
|
-
# params
|
16
|
-
# end
|
17
|
-
|
18
|
-
# new ({post: :color}) do |params|
|
19
|
-
# # # TODO : hack must call it properly thru renderer
|
20
|
-
# # params[:affect].each do |affected|
|
21
|
-
# # grab(affected).html.reset_background
|
22
|
-
# # end
|
23
|
-
# end
|
24
5
|
new({ sanitizer: :color }) do |params|
|
25
|
-
# alert "sanitizer color: #{params}"
|
26
6
|
params = create_color_hash(params) unless params.instance_of? Hash
|
27
|
-
# if params[:id]
|
28
|
-
# alert "id is #{params[:id]}"
|
29
|
-
# end
|
30
|
-
# the condition below is to prevent the creation of multiple unwanted colors with same property and no ID specified
|
31
7
|
unless params[:id]
|
32
8
|
uniq_value = "#{params[:red].to_s.sub('.', '_')}_#{params[:green].to_s.sub('.', '_')}_#{params[:blue].to_s.sub('.', '_')}_#{params[:alpha].to_s.sub('.', '_')}_#{params[:left].to_s.sub('.', '_')}_#{params[:top].to_s.sub('.', '_')}_#{params[:diffusion].to_s.sub('.', '_')}"
|
33
|
-
params[:id] = "#{
|
9
|
+
params[:id] = "color_#{uniq_value}".to_sym
|
34
10
|
end
|
35
11
|
params
|
36
12
|
end
|
37
|
-
|
38
|
-
#
|
39
|
-
# # Atome.global_monitoring(self, [:red, :blue, :blue, :alpha, :left, :right, :diffusion], [:variable1, :variable2])
|
40
|
-
# end
|
13
|
+
|
41
14
|
new({ atome: :image })
|
42
15
|
new({ sanitizer: :image }) do |params|
|
43
16
|
unless params.instance_of? Hash
|
@@ -131,8 +104,6 @@ new({ atome: :vector })
|
|
131
104
|
new({ atome: :matrix })
|
132
105
|
new({ atome: :atomized, type: :hash })
|
133
106
|
|
134
|
-
# new({ atome: :color, type: :model })
|
135
|
-
# new({ atome: :color, type: :template })
|
136
107
|
|
137
108
|
|
138
109
|
|
@@ -7,20 +7,23 @@ new({ sanitizer: :id }) do |params|
|
|
7
7
|
# first we sanitize the the id below
|
8
8
|
|
9
9
|
params = params.to_sym
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
if @id.to_sym != params
|
18
|
-
Universe.update_atome_id(params, self, @id)
|
19
|
-
else
|
20
|
-
Universe.add_to_atomes(params, self)
|
21
|
-
end
|
10
|
+
# we check id is already assign
|
11
|
+
# the condition below is to prevent the creation of multiple unwanted colors with same property and no ID specified
|
12
|
+
# if @id.to_sym != params
|
13
|
+
# Universe.update_atome_id(params, self, @id)
|
14
|
+
# else
|
15
|
+
# Universe.add_to_atomes(params, self)
|
16
|
+
# end
|
22
17
|
|
18
|
+
|
19
|
+
# Universe.atomes.each do |_aid,atome_f|
|
20
|
+
#
|
21
|
+
# if atome_f.id == params
|
22
|
+
# puts "===> no for #{params}"
|
23
|
+
# end
|
24
|
+
#
|
23
25
|
# end
|
26
|
+
|
24
27
|
params
|
25
28
|
end
|
26
29
|
new({ particle: :name, category: :identity, type: :string })
|
@@ -114,4 +114,6 @@ new({ after: :pattern })do |params|
|
|
114
114
|
params
|
115
115
|
end
|
116
116
|
# new({ particle: :border, category: :material, type: :int })
|
117
|
-
new({particle: :fill})
|
117
|
+
new({particle: :fill, category: :material, type: :array })
|
118
|
+
|
119
|
+
new({particle: :opacity, category: :material, type: :int })
|
@@ -35,7 +35,7 @@ new({ particle: :delete, category: :utility, type: :boolean, render: false }) do
|
|
35
35
|
id_found = @id.to_sym
|
36
36
|
parent_found = grab(@attach)
|
37
37
|
parent_found.attached.delete(id_found)
|
38
|
-
Universe.delete(@
|
38
|
+
Universe.delete(@aid)
|
39
39
|
end
|
40
40
|
elsif params.instance_of? Hash
|
41
41
|
|
@@ -105,16 +105,21 @@ class Universe
|
|
105
105
|
def id_to_aid(id, aid)
|
106
106
|
@atomes_ids[id] = aid
|
107
107
|
end
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
108
|
+
# def update_atome_id(aid, atome, prev_id)
|
109
|
+
# @atomes[id] = atome
|
110
|
+
# @atomes.delete(prev_id)
|
111
|
+
# end
|
112
|
+
# def update_atome_id(id, atome, prev_id)
|
113
|
+
# @atomes[id] = atome
|
114
|
+
# @atomes.delete(prev_id)
|
115
|
+
# end
|
113
116
|
|
114
117
|
def user_atomes
|
115
118
|
collected_id = []
|
116
119
|
@atomes.each do |id_found, atome_found|
|
117
|
-
collected_id << id_found unless atome_found.tag && atome_found.tag[:system]
|
120
|
+
# collected_id << id_found unless atome_found.tag && atome_found.tag[:system]
|
121
|
+
collected_id << atome_found.id unless atome_found.tag && atome_found.tag[:system]
|
122
|
+
|
118
123
|
end
|
119
124
|
collected_id
|
120
125
|
end
|
data/lib/atome/version.rb
CHANGED
data/lib/renderers/html/html.rb
CHANGED
@@ -24,6 +24,7 @@ class HTML
|
|
24
24
|
@element ||= JS.global[:document].getElementById(id_found.to_s)
|
25
25
|
@id = id_found
|
26
26
|
@original_atome = current_atome
|
27
|
+
@touch_removed = {}
|
27
28
|
end
|
28
29
|
|
29
30
|
def object
|
@@ -200,7 +201,6 @@ class HTML
|
|
200
201
|
|
201
202
|
# alert "hyperedit"
|
202
203
|
|
203
|
-
|
204
204
|
particles_found = particles_found.merge(particles_from_style)
|
205
205
|
current_atome = grab(@id)
|
206
206
|
usr_bloc.call(particles_found)
|
@@ -496,15 +496,48 @@ class HTML
|
|
496
496
|
end
|
497
497
|
|
498
498
|
def fill(params)
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
499
|
+
# we remove previous background
|
500
|
+
elements_to_remove = @element.getElementsByClassName('background')
|
501
|
+
|
502
|
+
elements_to_remove = elements_to_remove.to_a
|
503
|
+
elements_to_remove.each do |child|
|
504
|
+
@element.removeChild(child)
|
505
|
+
end
|
506
|
+
params.each do |param|
|
507
|
+
background_layer = JS.global[:document].createElement("div")
|
508
|
+
background_layer[:style][:transform] = "rotate(#{param[:rotate]}deg)" # Applique une rotation de 45 degrés à l'élément
|
509
|
+
background_layer[:style][:position] = "absolute"
|
510
|
+
|
511
|
+
if param[:position]
|
512
|
+
background_layer[:style][:top] = "#{param[:position][:x]}px"
|
513
|
+
background_layer[:style][:left] = "#{param[:position][:y]}px"
|
514
|
+
else
|
515
|
+
background_layer[:style][:top] = "0"
|
516
|
+
background_layer[:style][:left] = "0"
|
517
|
+
end
|
507
518
|
|
519
|
+
if param[:size]
|
520
|
+
background_layer[:style][:width] = "#{param[:size][:x]}px"
|
521
|
+
background_layer[:style][:height] = "#{param[:size][:y]}px"
|
522
|
+
else
|
523
|
+
background_layer[:style][:width] = "100%"
|
524
|
+
background_layer[:style][:height] = "100%"
|
525
|
+
end
|
526
|
+
|
527
|
+
atome_path = grab(param[:atome]).path
|
528
|
+
background_layer[:style][:backgroundImage] = "url('#{atome_path}')"
|
529
|
+
background_layer[:style][:backgroundRepeat] = 'repeat'
|
530
|
+
background_layer[:className] = 'background'
|
531
|
+
background_layer[:style][:opacity] = param[:opacity]
|
532
|
+
if param[:repeat]
|
533
|
+
img_width = @original_atome.width / param[:repeat][:x]
|
534
|
+
img_height = @original_atome.height / param[:repeat][:y]
|
535
|
+
background_layer[:style][:backgroundSize] = "#{img_width}px #{img_height}px"
|
536
|
+
else
|
537
|
+
background_layer[:style][:backgroundSize] = "#{param[:width]}px #{param[:height]}px"
|
538
|
+
end
|
539
|
+
@element.appendChild(background_layer)
|
540
|
+
end
|
508
541
|
end
|
509
542
|
|
510
543
|
def filter(property, value)
|
@@ -1048,60 +1081,75 @@ class HTML
|
|
1048
1081
|
def touch_tap(_option)
|
1049
1082
|
interact = JS.eval("return interact('##{@id}')")
|
1050
1083
|
@touch_tap = @original_atome.instance_variable_get('@touch_code')[:tap]
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1084
|
+
unless @touch_removed[:tap]
|
1085
|
+
interact.on('tap') do |native_event|
|
1086
|
+
event = Native(native_event)
|
1087
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1088
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1089
|
+
# group etc..
|
1090
|
+
@touch_tap.call(event) if @touch_tap.is_a?(Proc)
|
1091
|
+
end
|
1057
1092
|
end
|
1093
|
+
|
1058
1094
|
end
|
1059
1095
|
|
1060
1096
|
def touch_double(_option)
|
1061
1097
|
interact = JS.eval("return interact('##{@id}')")
|
1062
1098
|
@touch_double = @original_atome.instance_variable_get('@touch_code')[:double]
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1099
|
+
unless @touch_removed[:double]
|
1100
|
+
interact.on('doubletap') do |native_event|
|
1101
|
+
event = Native(native_event)
|
1102
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1103
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1104
|
+
# group etc..
|
1105
|
+
@touch_double.call(event) if @touch_double.is_a?(Proc)
|
1106
|
+
end
|
1069
1107
|
end
|
1108
|
+
|
1070
1109
|
end
|
1071
1110
|
|
1072
1111
|
def touch_long(_option)
|
1073
1112
|
@touch_long = @original_atome.instance_variable_get('@touch_code')[:long]
|
1074
1113
|
interact = JS.eval("return interact('##{@id}')")
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1114
|
+
unless @touch_removed[:long]
|
1115
|
+
interact.on('hold') do |native_event|
|
1116
|
+
event = Native(native_event)
|
1117
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1118
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1119
|
+
# group etc..
|
1120
|
+
@touch_long.call(event) if @touch_long.is_a?(Proc)
|
1121
|
+
end
|
1081
1122
|
end
|
1123
|
+
|
1082
1124
|
end
|
1083
1125
|
|
1084
1126
|
def touch_down(_option)
|
1085
1127
|
@touch_down = @original_atome.instance_variable_get('@touch_code')[:down]
|
1086
1128
|
interact = JS.eval("return interact('##{@id}')")
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1129
|
+
unless @touch_removed[:down]
|
1130
|
+
interact.on('down') do |native_event|
|
1131
|
+
event = Native(native_event)
|
1132
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1133
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1134
|
+
# group etc..
|
1135
|
+
@touch_down.call(event) if @touch_down.is_a?(Proc)
|
1136
|
+
end
|
1137
|
+
|
1093
1138
|
end
|
1094
1139
|
end
|
1095
1140
|
|
1096
1141
|
def touch_up(_option)
|
1097
|
-
@touch_up = @original_atome.instance_variable_get('@touch_code')[:up]
|
1098
1142
|
interact = JS.eval("return interact('##{@id}')")
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1143
|
+
@touch_up = @original_atome.instance_variable_get('@touch_code')[:up]
|
1144
|
+
unless @touch_removed[:up]
|
1145
|
+
interact.on('up') do |native_event|
|
1146
|
+
event = Native(native_event)
|
1147
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1148
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1149
|
+
# group etc..
|
1150
|
+
@touch_up.call(event) if @touch_up.is_a?(Proc)
|
1151
|
+
end
|
1152
|
+
|
1105
1153
|
end
|
1106
1154
|
end
|
1107
1155
|
|
@@ -1109,15 +1157,25 @@ class HTML
|
|
1109
1157
|
case option
|
1110
1158
|
when :double
|
1111
1159
|
@touch_double = ''
|
1160
|
+
@touch_removed[:double] = true
|
1112
1161
|
when :down
|
1113
1162
|
@touch_down = ''
|
1163
|
+
@touch_removed[:down] = true
|
1114
1164
|
when :long
|
1165
|
+
@touch_removed[:long] = true
|
1115
1166
|
@touch_long = ''
|
1116
1167
|
when :tap
|
1168
|
+
@touch_removed[:tap] = true
|
1117
1169
|
@touch_tap = ''
|
1118
1170
|
when :up
|
1171
|
+
@touch_removed[:up] = true
|
1119
1172
|
@touch_up = ''
|
1120
1173
|
else
|
1174
|
+
@touch_removed[:double] = true
|
1175
|
+
@touch_removed[:down] = true
|
1176
|
+
@touch_removed[:long] = true
|
1177
|
+
@touch_removed[:tap] = true
|
1178
|
+
@touch_removed[:up] = true
|
1121
1179
|
@touch_double = ''
|
1122
1180
|
@touch_down = ''
|
1123
1181
|
@touch_long = ''
|
@@ -76,4 +76,9 @@ new({ method: :pattern, type: :integer, renderer: :html})
|
|
76
76
|
|
77
77
|
new({ method: :fill, renderer: :html }) do |params|
|
78
78
|
html.fill(params)
|
79
|
+
end
|
80
|
+
|
81
|
+
new({ method: :opacity, type: :integer, renderer: :html}) do |value|
|
82
|
+
# html.opacity(value)
|
83
|
+
html.style('opacity',value)
|
79
84
|
end
|
@@ -1,17 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
b=box({width: 300, height: 333})
|
3
|
+
b=box({width: 300, height: 333, color: {alpha: 0}})
|
4
4
|
image({id: :logo,path: 'medias/images/logos/atome.svg', width: 66, left: 555})
|
5
5
|
grab(:black_matter).image({id: :planet,path: 'medias/images/red_planet.png', width: 66,height: 66, left: 555, top: 180})
|
6
6
|
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
b.fill([atome: :logo, width: 33, height: 33 ])
|
9
|
+
b.overflow(:hidden)
|
10
|
+
wait 1 do
|
11
|
+
b.fill([atome: :planet, width: 33, height: 33 ])
|
12
|
+
wait 1 do
|
13
|
+
b.fill([{atome: :planet,repeat: {x: 5, y: 3}}])
|
14
|
+
wait 1 do
|
15
|
+
b.fill([{atome: :planet,width: 33, height: 33 ,rotate: 33, size: { x: 800,y: 600 }, position: { x:-200,y: -200 } }])
|
16
|
+
wait 3 do
|
17
|
+
b.fill([{atome: :planet,repeat: {x: 5, y: 3}}, { atome: :logo, width: 33, height: 33 , opacity: 0.3} ])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
12
21
|
end
|
13
|
-
b.fill({atome: :logo, width: 33, height: 33 })
|
14
22
|
|
15
|
-
|
16
|
-
b.fill({atome: :planet, width: 33, height: 33 })
|
17
|
-
end
|
23
|
+
b.drag(true)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
color({ id: :creation_layer_col, alpha: 1 })
|
4
|
+
|
5
|
+
b = box({ top: :auto, bottom: 0, id: :box_tool })
|
6
|
+
|
7
|
+
b.touch(:down) do
|
8
|
+
creation_layer = box({ top: 0, left: 0, id: :creation_layer, width: '100%', height: '100%', apply: :creation_layer_col })
|
9
|
+
creation_layer.touch(:down) do |event|
|
10
|
+
left_found = event[:pageX].to_i
|
11
|
+
top_found = event[:pageY].to_i
|
12
|
+
box({ left: left_found, top: top_found ,id: "tutu_#{Universe.atomes.length}", color: :red})
|
13
|
+
creation_layer.delete(true)
|
14
|
+
creation_layer.touch({ remove: :down })
|
15
|
+
puts Universe.atomes.length
|
16
|
+
puts "=> #{Universe.user_atomes}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# c= color({ red: 1, id: :toto })
|
21
|
+
# # puts c.aid
|
22
|
+
# puts Universe.atomes.length
|
23
|
+
# wait 0.5 do
|
24
|
+
# c= color({ red: 1, id: :toto })
|
25
|
+
# # puts c.aid
|
26
|
+
# puts Universe.atomes.length
|
27
|
+
# end
|
28
|
+
|
29
|
+
# wait 1 do
|
30
|
+
# c= color({ red: 1, id: :toto })
|
31
|
+
# puts c.aid
|
32
|
+
# puts Universe.atomes.length
|
33
|
+
# wait 1 do
|
34
|
+
# c= color({ red: 1, id: :toto })
|
35
|
+
# puts c.aid
|
36
|
+
# puts Universe.atomes.length
|
37
|
+
# wait 1 do
|
38
|
+
# c= color({ red: 1, id: :toto })
|
39
|
+
# puts c.aid
|
40
|
+
# puts Universe.atomes.length
|
41
|
+
# wait 1 do
|
42
|
+
# c= color({ red: 1, id: :toto })
|
43
|
+
# puts c.aid
|
44
|
+
# puts Universe.atomes.length
|
45
|
+
# alert "=> #{Universe.user_atomes}"
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
# end
|
49
|
+
# end
|
@@ -4,7 +4,10 @@ b = box({ left: 666, color: :blue, smooth: 6, id: :the_box2 })
|
|
4
4
|
|
5
5
|
t=text({id: :the_text, data: 'type of touch : ?'})
|
6
6
|
|
7
|
-
t.touch(:down) do
|
7
|
+
t.touch(:down) do |event|
|
8
|
+
|
9
|
+
puts event[:pageX]
|
10
|
+
puts event[:pageY]
|
8
11
|
b.touch({remove: :down})
|
9
12
|
# b.touch(:remove) # or b.touch(false) to remove all touches bindings
|
10
13
|
t.data('touch down killed')
|
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.6.
|
4
|
+
version: 0.5.6.6.5
|
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-03-
|
11
|
+
date: 2024-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: artoo
|
@@ -580,6 +580,7 @@ files:
|
|
580
580
|
- vendor/assets/application/examples/on_resize.rb
|
581
581
|
- vendor/assets/application/examples/on_the_fly_ruby_code_loading.rb
|
582
582
|
- vendor/assets/application/examples/online.rb
|
583
|
+
- vendor/assets/application/examples/opacity.rb
|
583
584
|
- vendor/assets/application/examples/over.rb
|
584
585
|
- vendor/assets/application/examples/paint.rb
|
585
586
|
- vendor/assets/application/examples/particles.rb
|
@@ -611,6 +612,7 @@ files:
|
|
611
612
|
- vendor/assets/application/examples/terminal.rb
|
612
613
|
- vendor/assets/application/examples/test.rb
|
613
614
|
- vendor/assets/application/examples/text.rb
|
615
|
+
- vendor/assets/application/examples/tools.rb
|
614
616
|
- vendor/assets/application/examples/touch.rb
|
615
617
|
- vendor/assets/application/examples/type_mutation.rb
|
616
618
|
- vendor/assets/application/examples/unit.rb
|