atome 0.5.3.8.8 → 0.5.4.0.9

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.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +52 -17
  3. data/app_builder_helpers/Rakefile +20 -3
  4. data/exe/atome +33 -1
  5. data/lib/atome/atome.rb +43 -57
  6. data/lib/atome/extensions/atome.rb +82 -52
  7. data/lib/atome/extensions/mathematic.rb +8 -12
  8. data/lib/atome/extensions/matrix.rb +138 -210
  9. data/lib/atome/genesis/generators/atome.rb +8 -134
  10. data/lib/atome/genesis/generators/communication.rb +0 -1
  11. data/lib/atome/genesis/generators/effect.rb +0 -6
  12. data/lib/atome/genesis/generators/event.rb +64 -77
  13. data/lib/atome/genesis/generators/geometry.rb +0 -18
  14. data/lib/atome/genesis/generators/identity.rb +6 -33
  15. data/lib/atome/genesis/generators/material.rb +3 -54
  16. data/lib/atome/genesis/generators/utility.rb +63 -58
  17. data/lib/atome/genesis/genesis.rb +8 -0
  18. data/lib/atome/genesis/sparkle.rb +35 -16
  19. data/lib/atome/helpers/callbacks.rb +47 -1
  20. data/lib/atome/helpers/essentials.rb +1 -1
  21. data/lib/atome/helpers/sanitizer.rb +0 -10
  22. data/lib/atome/helpers/utilities.rb +74 -28
  23. data/lib/atome/kernel/batch.rb +13 -35
  24. data/lib/atome/kernel/universe.rb +2 -0
  25. data/lib/atome/presets/atome.rb +4 -12
  26. data/lib/atome/renderers/browser/atome.rb +1 -1
  27. data/lib/atome/renderers/browser/browser.rb +2 -0
  28. data/lib/atome/renderers/browser/event.rb +18 -0
  29. data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
  30. data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
  31. data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
  32. data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
  33. data/lib/atome/renderers/browser/helpers/text_helper.rb +5 -1
  34. data/lib/atome/renderers/browser/spatial.rb +3 -2
  35. data/lib/atome/renderers/browser/utility.rb +7 -7
  36. data/lib/atome/version.rb +2 -2
  37. data/lib/atome.rb +1 -0
  38. data/sig/atome.rbs +16 -0
  39. data/sig/batch.rbs +7 -0
  40. data/sig/browser_helper.rbs +14 -0
  41. data/sig/matrix.rbs +5 -0
  42. data/sig/object.rbs +3 -0
  43. data/vendor/assets/aui.rb +5 -0
  44. data/vendor/assets/src/index.html +15 -3
  45. data/vendor/assets/src/js/atome/atome.js +1 -1
  46. data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
  47. data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
  48. data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
  49. data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
  50. data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
  51. data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
  52. data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
  53. data/vendor/assets/src/medias/rubies/demos.rb +63 -0
  54. data/vendor/assets/src/medias/rubies/examples/add.rb +1 -1
  55. data/vendor/assets/src/medias/rubies/examples/animation.rb +1 -1
  56. data/vendor/assets/src/medias/rubies/examples/atome_new.rb +1 -1
  57. data/vendor/assets/src/medias/rubies/examples/attach.rb +10 -10
  58. data/vendor/assets/src/medias/rubies/examples/attached.rb +2 -3
  59. data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
  60. data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
  61. data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
  62. data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
  63. data/vendor/assets/src/medias/rubies/examples/color.rb +3 -3
  64. data/vendor/assets/src/medias/rubies/examples/delete.rb +17 -1
  65. data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
  66. data/vendor/assets/src/medias/rubies/examples/drag.rb +52 -1
  67. data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
  68. data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +1 -1
  69. data/vendor/assets/src/medias/rubies/examples/markers.rb +1 -1
  70. data/vendor/assets/src/medias/rubies/examples/matrix.rb +102 -0
  71. data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
  72. data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
  73. data/vendor/assets/src/medias/rubies/examples/monitoring.rb +1 -1
  74. data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
  75. data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
  76. data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
  77. data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
  78. data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
  79. data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
  80. data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
  81. data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
  82. data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
  83. data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
  84. data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
  85. data/vendor/assets/src/medias/rubies/examples/time.rb +2 -2
  86. data/vendor/assets/src/medias/rubies/examples/video.rb +2 -2
  87. data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
  88. data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
  89. data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
  90. data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
  91. data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
  92. data/vendor/assets/src/utilities/mode.rb +0 -0
  93. data/vendor/assets/src-tauri/tauri.conf.json +2 -2
  94. metadata +32 -14
  95. data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
  96. /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
  97. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
  98. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_matrix.rb +0 -0
  99. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
  100. /data/vendor/assets/src/medias/rubies/{examples → unstable}/_test.rb +0 -0
@@ -5,6 +5,7 @@ class Atome
5
5
  private
6
6
 
7
7
  attr_accessor :drag_start_proc, :drag_move_proc, :drag_end_proc,
8
+ :drop_action_proc,:over_action_proc,
8
9
  :play_start_proc, :play_active_proc, :play_end_proc,
9
10
  :animation_start_proc, :animation_active_proc, :animation_stop_proc
10
11
 
@@ -15,7 +16,10 @@ class Atome
15
16
  end
16
17
 
17
18
  def read_callback(file, proc)
18
- instance_exec(file, &proc) if proc.is_a?(Proc)
19
+ file_content=file.split('</head><body>')[1].split('</body></html>')[0]
20
+ # FIXME : found why '> is converted to &gt;'
21
+ file_content=file_content.gsub("&gt;", ">")
22
+ instance_exec(file_content, &proc) if proc.is_a?(Proc)
19
23
  end
20
24
 
21
25
  def time_callback(current_time, markers)
@@ -29,6 +33,7 @@ class Atome
29
33
  end
30
34
  end
31
35
 
36
+ # drag callbacks
32
37
  def drag_start_callback(page_x, page_y, left_val, top_val)
33
38
  @atome[:left] = left_val
34
39
  @atome[:top] = top_val
@@ -46,10 +51,51 @@ class Atome
46
51
  def drag_end_callback(page_x, page_y, left_val, top_val)
47
52
  @atome[:left] = left_val
48
53
  @atome[:top] = top_val
54
+ # alert :loo
55
+ # #now we rest the position
56
+ # self.left(left_val)
57
+ # self.top(top_val)
49
58
  proc = @drag_end_proc
50
59
  instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
51
60
  end
52
61
 
62
+ # drop callbacks
63
+ def drop_action_callback( data_found, _full_event)
64
+ proc = @drop_action_proc
65
+ instance_exec(data_found, &proc) if proc.is_a?(Proc)
66
+ end
67
+
68
+ # def over_action_callback( data_found, _full_event)
69
+ # proc = @enter_action_proc
70
+ # instance_exec(data_found, &proc) if proc.is_a?(Proc)
71
+ # end
72
+
73
+ # drop callbacks
74
+ def enter_action_callback( data_found, _full_event)
75
+ proc = @enter_action_proc
76
+ instance_exec( data_found,&proc) if proc.is_a?(Proc)
77
+ end
78
+
79
+ def leave_action_callback(data_found)
80
+ proc = @leave_action_proc
81
+ instance_exec( data_found,&proc) if proc.is_a?(Proc)
82
+ end
83
+
84
+
85
+ # def drag_move_callback(page_x, page_y, left_val, top_val)
86
+ # proc = @drag_move_proc
87
+ # @atome[:left] = left_val
88
+ # @atome[:top] = top_val
89
+ # instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
90
+ # end
91
+ #
92
+ # def drag_end_callback(page_x, page_y, left_val, top_val)
93
+ # @atome[:left] = left_val
94
+ # @atome[:top] = top_val
95
+ # proc = @drag_end_proc
96
+ # instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
97
+ # end
98
+
53
99
  # sort callbacks
54
100
  def sort_callback(atome)
55
101
  sort_proc = @sort_proc
@@ -5,7 +5,7 @@ module Essentials
5
5
  @default_params = {
6
6
  # Warning : type must be define first
7
7
  render_engines: [:browser],
8
- collector: { type: :element, attach: [:black_matter] },
8
+ # collector: { type: :element, attach: [:black_matter] },
9
9
  image: { type: :image, attach: [:view] },
10
10
  web: { type: :web, attach: [:view] },
11
11
  video: { type: :video, attach: [:view] },
@@ -10,14 +10,4 @@ class Atome
10
10
  { red: split_data[0].to_f / 100, green: split_data[1].to_f / 100, blue: split_data[2].to_f / 100 }
11
11
  end
12
12
 
13
- # def found_parents_and_renderers
14
- # if @atome
15
- # parent_found = [@atome[:id]]
16
- # render_found = @atome[:renderers]
17
- # else
18
- # parent_found = []
19
- # render_found = Essentials.default_params[:render_engines]
20
- # end
21
- # { parent: parent_found, renderers: render_found }
22
- # end
23
13
  end
@@ -4,6 +4,37 @@
4
4
  class Atome
5
5
  private
6
6
 
7
+ # local server messaging
8
+ def self.controller_sender(message)
9
+ return if $host == :browser
10
+
11
+ json_msg = message.to_json
12
+ atome_js.JS.controller_sender(json_msg)
13
+
14
+ end
15
+
16
+ def response_listener(hashed_msg)
17
+ js_action = hashed_msg.JS[:action]
18
+ js_body = hashed_msg.JS[:body]
19
+ send(js_action, js_body)
20
+ end
21
+
22
+ def self.controller_listener
23
+
24
+ return if $host == :browser
25
+
26
+ atome_js.JS.controller_listener()
27
+
28
+ end
29
+
30
+ # def self.mode=(val)
31
+ # @atome_mode=val
32
+ # end
33
+ #
34
+ # def self.mode
35
+ # "@atome_mode"
36
+ # end
37
+
7
38
  def collapse
8
39
  @atome.each do |element, value|
9
40
  send(element, value)
@@ -69,8 +100,8 @@ class Atome
69
100
  end
70
101
 
71
102
  def <<(particle)
72
- value = particle.value
73
- real_atome[property] << value
103
+
104
+ real_atome[property] << particle
74
105
  end
75
106
 
76
107
  def add_to_integer(_atome_found, _particle_found, &_user_proc)
@@ -137,15 +168,15 @@ class Atome
137
168
  collapse
138
169
  end
139
170
 
140
- def collector(params = {}, &bloc)
141
- atome_type = :collector
142
- # generated_render = params[:renderers] || []
143
- # generated_id = params[:id] || identity_generator(atome_type)
144
- #
145
- # generated_parents = params[:parents] || [id.value]
146
- params = atome_common(atome_type, params)
147
- Batch.new({ atome_type => params }, &bloc)
148
- end
171
+ # def collector(params = {}, &bloc)
172
+ # atome_type = :collector
173
+ # # generated_render = params[:renderers] || []
174
+ # # generated_id = params[:id] || identity_generator(atome_type)
175
+ # #
176
+ # # generated_parents = params[:parents] || [id]
177
+ # params = atome_common(atome_type, params)
178
+ # Batch.new({ atome_type => params }, &bloc)
179
+ # end
149
180
 
150
181
  def each(&proc)
151
182
  value.each do |val|
@@ -154,7 +185,7 @@ class Atome
154
185
  end
155
186
 
156
187
  def include?(value)
157
- self.value.include?(value)
188
+ self.include?(value)
158
189
  end
159
190
 
160
191
  def each_with_index(*args, &block)
@@ -167,21 +198,21 @@ class Atome
167
198
  # elsif value[range].instance_of?(Atome)
168
199
  # return value[range]
169
200
  elsif value[range].instance_of?(Array)
170
- collector_object = Object.collector({})
171
- collected_atomes = []
172
- value[range].each do |atome_found|
173
- collected_atomes << atome_found
174
- end
175
- collector_object.data(collected_atomes)
176
-
177
- return collector_object
201
+ # collector_object = Object.collector({})
202
+ # collected_atomes = []
203
+ # value[range].each do |atome_found|
204
+ # collected_atomes << atome_found
205
+ # end
206
+ # collector_object.data(collected_atomes)
207
+ Batch.new(value[range])
208
+ # return collector_object
178
209
  end
179
210
 
180
211
  end
181
212
 
182
213
  def []=(params, value)
183
214
  # TODO : it may miss some code, see above
184
- self.value[params] = value
215
+ self[params] = value
185
216
  end
186
217
 
187
218
  def set(params)
@@ -201,7 +232,7 @@ class Atome
201
232
  end
202
233
 
203
234
  def materials
204
- # TODO: the code below need a rewrite, we must find a new algorythm to avoid all those conditions
235
+ # TODO: the code below need a rewrite, we must find a new algorithm to avoid all those conditions
205
236
  images_found = atome[:image] || []
206
237
  videos_found = atome[:video] || []
207
238
  shapes_found = atome[:shape] || []
@@ -210,15 +241,30 @@ class Atome
210
241
  images_found.concat(videos_found).concat(shapes_found).concat(web_found).concat(texts_found)
211
242
  end
212
243
 
244
+
245
+ def physical
246
+ types=[:text, :image, :video, :shape, :web]
247
+ atomes_found=[]
248
+ types.each do |type|
249
+ ids_found = self.send(type)
250
+ next unless ids_found
251
+
252
+ ids_found.each do |id_found|
253
+ atomes_found << id_found
254
+ end
255
+ end
256
+ atomes_found
257
+ end
258
+
213
259
  def detach_atome(atome_id_to_detach)
214
260
  atome_to_detach = grab(atome_id_to_detach)
215
261
  # TODO: remove the condition below and find why it try to detach an atome that doesn't exist
216
- if atome_to_detach
217
- atome_type_found = atome_to_detach.atome[:type]
218
- atome_id_found = atome_to_detach.atome[:id]
219
- @atome[atome_type_found].delete(atome_id_found)
220
- @atome[:attached].delete(atome_id_to_detach)
221
- end
262
+ return unless atome_to_detach
263
+ atome_type_found = atome_to_detach.atome[:type]
264
+ atome_id_found = atome_to_detach.atome[:id]
265
+ @atome[atome_type_found].delete(atome_id_found)
266
+ @atome[:attached].delete(atome_id_to_detach)
267
+
222
268
  end
223
269
 
224
270
  end
@@ -1,48 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # this class is used to allow batch treatment
3
4
  class Batch
4
-
5
5
  def each(&proc)
6
- value.each do |val|
7
- instance_exec(val, &proc) if proc.is_a?(Proc)
8
- end
9
- end
10
-
11
- def id(val = nil)
12
- if val
13
- @id = val
14
- else
15
- @id
6
+ @data.each do |val|
7
+ atome_found = grab(val)
8
+ instance_exec(atome_found, &proc) if proc.is_a?(Proc)
16
9
  end
17
10
  end
18
11
 
19
12
  def initialize(params)
20
- @id = params[:id] || identity_generator(:batch)
21
- Universe.add_to_atomes(@id, self)
13
+ @data = params
14
+ # self
22
15
  end
23
16
 
24
- def dispatch (method, *args, &block)
17
+ def dispatch(method, args, &block)
25
18
  @data.each do |atome_found|
26
- atome_found.send(method, *args, &block)
19
+ args.each do |arg|
20
+ grab(atome_found).send(method, arg, &block)
21
+ end
27
22
  end
23
+ # we return self to allow method chaining
24
+ self
28
25
  end
29
-
30
- # TODO: automatise collector methods creation when creating a new atome type
31
- def color(args, &block)
32
-
33
- dispatch(:color, args, &block)
34
- end
35
-
36
- def shadow(args, &block)
37
- dispatch(:color, args, &block)
38
- end
39
-
40
- def method_missing(method, *args, &block)
41
- dispatch(method, args, &block)
42
- end
43
-
44
- def data(collection)
45
- @data = collection
46
- end
47
-
48
- end
26
+ end
@@ -19,7 +19,9 @@ class Universe
19
19
 
20
20
  def add_optional_method(method_name, &method_proc)
21
21
  # this method is used to add optional methods
22
+ # puts "3 => #{method_name}"
22
23
  instance_variable_get('@options').merge!({ method_name => method_proc })
24
+ # puts "====> #{instance_variable_get('@options')[method_name]}"
23
25
  end
24
26
 
25
27
  def get_optional_method(method_name)
@@ -7,36 +7,28 @@
7
7
 
8
8
  class Atome
9
9
  def atome_common(atome_type, params)
10
-
11
-
12
10
  # TODO : optimise the whole code below and make it rubocop friendly
13
11
  essential_params = Essentials.default_params[atome_type] || {}
14
- # puts "==== > #{essential_params.merge(params)}"
15
12
  essential_params[:type] = essential_params[:type] || :element
16
13
  essential_params[:renderers] = essential_params[:renderers] || @atome[:renderers]
17
14
  essential_params[:id] = params[:id] || identity_generator(atome_type)
18
15
  essential_params[:attach] = params[:attach] || [@atome[:id]] || [:view]
19
- # puts "==== > #{essential_params.merge(params)}"
20
16
  essential_params.merge(params)
21
17
  end
22
18
 
23
19
  def box(params = {}, &bloc)
24
- # default_renderer = Essentials.default_params[:render_engines]
25
20
  atome_type = :box
26
- # generated_render = params[:renderers] || default_renderer
27
- # generated_id = params[:id] || identity_generator(:box)
28
- # generated_parents = params[:attach] || [id.value]
29
21
  params = atome_common(atome_type, params)
30
22
  Atome.new({ atome_type => params }, &bloc)
31
23
  end
32
24
 
33
25
  def circle(params = {}, &bloc)
34
- # default_renderer = Essentials.default_params[:render_engines]
35
26
  atome_type = :circle
36
- # generated_render = params[:renderers] || default_renderer
37
- # generated_id = params[:id] || identity_generator(:circle)
38
- # generated_parents = params[:attach] || [id.value]
27
+ # puts "counter#{Universe.counter}"
28
+
39
29
  params = atome_common(atome_type, params)
30
+ # puts "params ==> #{params} : #{Universe.counter}"
31
+
40
32
  Atome.new({ atome_type => params }, &bloc)
41
33
  end
42
34
 
@@ -19,7 +19,7 @@ end
19
19
 
20
20
  generator.build_render(:browser_color) do |_value|
21
21
  @browser_type = :style
22
- # puts "1 - for the id : #{id} the browserrtype is ::::> #{@browser_type}"
22
+ # puts "1 - for the id : #{id} the browser type is ::::> #{@browser_type}"
23
23
  id_found = @atome[:id]
24
24
  type_found = @atome[:type]
25
25
  # we remove previous unused style tag
@@ -13,6 +13,8 @@ require 'atome/renderers/browser/helpers/browser_helper'
13
13
  require 'atome/renderers/browser/helpers/animation_helper'
14
14
  require 'atome/renderers/browser/helpers/color_helper'
15
15
  require 'atome/renderers/browser/helpers/drag_helper'
16
+ require 'atome/renderers/browser/helpers/drop_helper'
17
+ # require 'atome/renderers/browser/helpers/over_helper'
16
18
  require 'atome/renderers/browser/helpers/effect_helper'
17
19
  require 'atome/renderers/browser/helpers/event_helper'
18
20
  require 'atome/renderers/browser/helpers/image_helper'
@@ -16,6 +16,15 @@ generator.build_render(:browser_over) do |value, proc|
16
16
  BrowserHelper.send("browser_over_#{value}", @browser_object,self, proc)
17
17
  end
18
18
 
19
+ # generator.build_render(:browser_over) do |options, proc|
20
+ # # puts "method : #{options}, params : #{options}"
21
+ # options.each do |method, params|
22
+ # atome_id = @atome[:id]
23
+ # BrowserHelper.send("browser_over_#{method}", params, atome_id, self, proc)
24
+ # end
25
+ # end
26
+
27
+
19
28
  generator.build_render(:browser_play) do |value, proc|
20
29
  # first we reinit the 'at' event so the condition will be met again
21
30
  # @at_time[:used] = nil
@@ -62,6 +71,15 @@ generator.build_render(:browser_drag) do |options, proc|
62
71
  end
63
72
  end
64
73
 
74
+ generator.build_render(:browser_drop) do |options, proc|
75
+ # puts "method : #{options}, params : #{options}"
76
+ options.each do |method, params|
77
+ atome_id = @atome[:id]
78
+ BrowserHelper.send("browser_drop_#{method}", params, atome_id, self, proc)
79
+ end
80
+ end
81
+
82
+
65
83
  generator.build_render(:browser_sort) do |options, _proc|
66
84
  atome_js.JS.sort(options, @atome[:id], self)
67
85
  end
@@ -3,11 +3,19 @@
3
3
  # for browser rendering
4
4
 
5
5
  module BrowserHelper
6
+
7
+ # drag helper
6
8
  def self.browser_drag_move(params, atome_id, atome, proc)
7
9
  atome.drag_move_proc = proc
8
10
  atome_js.JS.drag(params, atome_id, atome)
9
11
  end
10
12
 
13
+ # def self.browser_drag_end(params, atome_id, atome, proc)
14
+ # # alert :kool
15
+ # # atome.drag_move_proc = proc
16
+ # # atome_js.JS.drag(params, atome_id, atome)
17
+ # end
18
+
11
19
  def self.browser_drag_lock(params, atome_id, atome, _proc)
12
20
  atome_js.JS.lock(params, atome_id, atome)
13
21
  end
@@ -36,4 +44,9 @@ module BrowserHelper
36
44
  def self.browser_drag_end(_params, _atome_id, atome, proc)
37
45
  atome.drag_end_proc = proc
38
46
  end
47
+
48
+ def self.browser_drag_start(_params, _atome_id, atome, proc)
49
+ atome.drag_start_proc = proc
50
+ end
51
+
39
52
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+
5
+ module BrowserHelper
6
+
7
+ #drop helper
8
+ def self.browser_drop_action(params, atome_id, atome, proc)
9
+ atome.drop_action_proc = proc
10
+ atome_js.JS.drop(params, atome_id, atome)
11
+ end
12
+
13
+ end
@@ -3,11 +3,11 @@
3
3
  # for browser rendering
4
4
  module BrowserHelper
5
5
 
6
- def self.touch_helper_callback(event,atome, proc)
6
+ def self.touch_helper_callback(event, atome, proc)
7
7
  atome.instance_exec(event, &proc) if proc.is_a?(Proc)
8
8
  end
9
9
 
10
- def self.browser_touch_true(browser_object,atome, proc)
10
+ def self.browser_touch_true(browser_object, atome, proc)
11
11
  `
12
12
  interact('#'+#{browser_object})
13
13
  .on('tap', function (event) {
@@ -16,7 +16,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
16
16
  `
17
17
  end
18
18
 
19
- def self.browser_touch_long(browser_object,atome, proc)
19
+ def self.browser_touch_long(browser_object, atome, proc)
20
20
  `
21
21
  interact('#'+#{browser_object})
22
22
  .on('hold', function (event) {
@@ -25,7 +25,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
25
25
  `
26
26
  end
27
27
 
28
- def self.browser_touch_double(browser_object,atome, proc)
28
+ def self.browser_touch_double(browser_object, atome, proc)
29
29
  `
30
30
  interact('#'+#{browser_object})
31
31
  .on('doubletap', function (event) {
@@ -34,7 +34,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
34
34
  `
35
35
  end
36
36
 
37
- def self.browser_touch_down(browser_object,atome, proc)
37
+ def self.browser_touch_down(browser_object, atome, proc)
38
38
 
39
39
  `
40
40
  interact('#'+#{browser_object})
@@ -45,7 +45,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
45
45
  `
46
46
  end
47
47
 
48
- def self.browser_touch_up(browser_object, atome,proc)
48
+ def self.browser_touch_up(browser_object, atome, proc)
49
49
  `
50
50
  interact('#'+#{browser_object})
51
51
  .on('up', function (event) {
@@ -54,15 +54,20 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
54
54
  `
55
55
  end
56
56
 
57
- def self.browser_over_enter(browser_object,atome, proc)
58
- browser_object.on :mouseover do |event|
59
- atome.instance_exec(event, &proc) if proc.is_a?(Proc)
57
+ def self.browser_over_enter(browser_object, atome)
58
+ browser_object.on :mouseenter do |event|
59
+ atome.enter_action_callback( event)
60
+ # atome.instance_exec(event, &proc) if proc.is_a?(Proc)
61
+ # atome_id = atome.id
62
+ # atome_js.JS.over_enter(atome_id, atome, proc, :enter)
60
63
  end
61
64
  end
62
65
 
63
- def self.browser_over_leave(browser_object, atome,proc)
66
+ def self.browser_over_leave(browser_object, atome)
64
67
  browser_object.on :mouseout do |event|
65
- atome.instance_exec(event, &proc) if proc.is_a?(Proc)
68
+ atome.leave_action_callback(event)
69
+ # atome.instance_exec(event, &proc) if proc.is_a?(Proc)
70
+ # atome_js.JS.over_leave(atome_id, atome,proc,:leave)
66
71
  end
67
72
  end
68
73
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+
5
+ # module BrowserHelper
6
+ #
7
+ # #drop helper
8
+ # def self.browser_over_action(params, atome_id, atome, proc)
9
+ # # atome.over_action_proc = proc
10
+ # atome_js.JS.over(params, atome_id, atome)
11
+ # end
12
+ #
13
+ # end
@@ -27,7 +27,11 @@ module BrowserHelper
27
27
  def self.browser_data_shape(_value,_atome_send)
28
28
 
29
29
  end
30
- def self.browser_data_scolor(_value,_atome_send)
30
+ def self.browser_data_color(_value,_atome_send)
31
+
32
+ end
33
+
34
+ def self.browser_data_find(value,_atome_send)
31
35
 
32
36
  end
33
37
 
@@ -2,7 +2,8 @@
2
2
 
3
3
  generator = Genesis.generator
4
4
 
5
- generator.build_render(:browser_left) do |value, _user_proc|
5
+
6
+ new({ browser: :left, type: :integer }) do |value, _user_proc|
6
7
  BrowserHelper.send("browser_left_#{@atome[:type]}", value, @browser_object, @atome)
7
8
  end
8
9
 
@@ -52,7 +53,7 @@ generator.build_render(:browser_center) do |value, _user_proc|
52
53
 
53
54
  end
54
55
 
55
- new ({browser: :depth}) do |value|
56
+ new ({ browser: :depth }) do |value|
56
57
  @browser_object.style['z-index'] = value
57
58
  end
58
59
 
@@ -7,13 +7,13 @@ generator.build_render(:browser_delete) do |params|
7
7
  browser_object&.remove if params == true
8
8
  end
9
9
 
10
- generator.build_render(:browser_clear) do
11
- alert "rewrite code below"
12
- # @atome[:children].each do |child_found|
13
- # grab(child_found).browser_object&.remove
14
- # end
15
- # children([])
16
- end
10
+ # do not use browser_clear
11
+ # #
12
+ # # generator.build_render(:browser_clear) do
13
+ # # @atome[:attached].each do |child_found|
14
+ # # grab(child_found).browser_object&.remove
15
+ # # end
16
+ # # end
17
17
 
18
18
  generator.build_render(:browser_path) do |value|
19
19
  BrowserHelper.send("browser_path_#{@atome[:type]}", value, @browser_object, @atome)
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.8.8'
5
- end
4
+ VERSION = '0.5.4.0.9'
5
+ end
data/lib/atome.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'fileutils'
4
+ require 'securerandom'
4
5
  require 'atome/version'
5
6
  require 'atome/genesis/genesis'
6
7
  require 'atome/kernel/essentials'
data/sig/atome.rbs CHANGED
@@ -1,6 +1,14 @@
1
1
  module Atome
2
2
  VERSION: String
3
3
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ def *: -> untyped
5
+
6
+ def +: -> untyped
7
+
8
+ def -: -> untyped
9
+
10
+ def /: -> untyped
11
+
4
12
  def add: -> untyped
5
13
 
6
14
  def add_to_array: -> untyped
@@ -25,6 +33,8 @@ module Atome
25
33
 
26
34
  def build_sanitizer: -> untyped
27
35
 
36
+ def calculate_sha: -> untyped
37
+
28
38
  def circle: -> untyped
29
39
 
30
40
  def detach_atome: -> untyped
@@ -33,6 +43,8 @@ module Atome
33
43
 
34
44
  def format_matrix: -> untyped
35
45
 
46
+ def geolocation: -> untyped
47
+
36
48
  def get_column: -> untyped
37
49
 
38
50
  def get_column_or_row: -> untyped
@@ -41,10 +53,14 @@ module Atome
41
53
 
42
54
  def matrix: -> untyped
43
55
 
56
+ def ping: -> untyped
57
+
44
58
  def set: -> untyped
45
59
 
46
60
  def sort_callback: -> untyped
47
61
 
62
+ def up?: -> untyped
63
+
48
64
  def visuals: -> untyped
49
65
 
50
66
  private