aro 0.2.6 → 0.2.7

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -2
  3. data/README.md +10 -54
  4. data/aro.gemspec +2 -1
  5. data/bin/oss_om +2 -0
  6. data/checksums/aro-0.2.7.gem.sha512 +1 -0
  7. data/listen.rb +1 -1
  8. data/locale/en.cor.yml +21 -32
  9. data/locale/en.yml +8 -60
  10. data/sys/aro/action.rb +153 -0
  11. data/sys/aro/d.rb +3 -1
  12. data/sys/aro/db/migrate/1793913747_create_data_bases.rb +2 -0
  13. data/sys/aro/db/migrate/1793913777_create_data_base_directories.rb +2 -0
  14. data/sys/aro/db/migrate/1793913796_create_data_base_files.rb +2 -0
  15. data/sys/aro/db/migrate/1793913841_create_menus.rb +2 -0
  16. data/sys/aro/db/migrate/1793913861_create_menu_items.rb +3 -2
  17. data/sys/aro/db.rb +19 -33
  18. data/sys/aro/designer.rb +166 -97
  19. data/sys/aro/locale.rb +4 -2
  20. data/sys/aro/mancy.rb +6 -39
  21. data/sys/aro/models/concerns/tar_go_for_root_sec.rb +37 -0
  22. data/sys/aro/models/concerns/uuid.rb +2 -0
  23. data/sys/aro/models/data_base.rb +33 -8
  24. data/sys/aro/models/directory.rb +2 -0
  25. data/sys/aro/models/file.rb +3 -1
  26. data/sys/aro/models/menu.rb +64 -0
  27. data/sys/aro/models/menu_item.rb +70 -4
  28. data/sys/aro/oss_open_menu.rb +331 -0
  29. data/sys/aro/p.rb +15 -9
  30. data/sys/aro/r.rb +2 -0
  31. data/sys/aro/{cor.rb → settings/cor.rb} +91 -215
  32. data/sys/aro/settings/git.rb +69 -0
  33. data/sys/aro/settings/ssh.rb +123 -0
  34. data/sys/aro/store.rb +87 -36
  35. data/sys/aro/v.rb +2 -0
  36. data/sys/aro.rb +2 -0
  37. data/sys/ma_ain.rb +202 -0
  38. data/sys/reiquire.rb +41 -54
  39. data/sys/shr/prompt.rb +6 -1
  40. data/sys/shr/version.rb +7 -8
  41. metadata +31 -23
  42. data/locale/en.cards.yml +0 -519
  43. data/locale/en.cmd.yml +0 -34
  44. data/locale/en.usage.yml +0 -142
  45. data/sys/aro/cmd.rb +0 -96
  46. data/sys/aro/db/migrate/1763374647_create_tecks.rb +0 -20
  47. data/sys/aro/db/migrate/1763432541_create_tlogs.rb +0 -20
  48. data/sys/aro/ma_ain.rb +0 -54
  49. data/sys/aro/models/teck.rb +0 -251
  50. data/sys/aro/models/tlog.rb +0 -21
  51. data/sys/aro/views/base.rb +0 -25
  52. data/sys/aro/views/teck.rb +0 -30
  53. data/sys/cli/constants.rb +0 -45
  54. data/sys/cli/create.rb +0 -23
  55. data/sys/cli/nterface.rb +0 -37
  56. data/sys/cli/teck.rb +0 -107
  57. data/sys/cli/usage.rb +0 -25
  58. data/sys/cli.rb +0 -23
  59. data/sys/shr/t.rb +0 -74
data/sys/aro/designer.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  designer.rb
@@ -11,66 +13,72 @@
11
13
  module Aro
12
14
  module Dom
13
15
  class Designer
14
- ACTION_LJUST = 22
15
- CLASS_LJUST = 33
16
-
17
- def self.design_aro
18
- env_home_val = ENV[:HOME.to_s]
19
- Aro::P.say(:"checking for bash env var $HOME in ruby ENV".to_s)
20
- Aro::P.say(:"$HOME is set to #{env_home_val}".to_s)
21
- abs_home = Aro::P.p.ask(:"use alternative aro_root? (empty to use $HOME): ".to_s)
22
- raise "missing required value for aro_root!" if abs_home.nil? && env_home_val.nil?
23
- aro_home_dir = abs_home || env_home_val
24
- oss_om_base_dir = ::File.join(aro_home_dir, Aro::Mancy::ARO_DIRECTORY.to_s)
16
+ ACTION_LJUST = 27
17
+ VALUE_LJUST = 27
18
+ CLASS_LJUST = 27
19
+
20
+ def self.design_oss_om
21
+ oss_home_path = File.expand_path(Dir.pwd)
22
+ Aro::P.say("set up oss_om home directory in '#{oss_home_path}'?")
23
+ abs_home = Aro::Dom::Designer.get_new_value_from_user(
24
+ "leave empty to use '#{oss_home_path}' as home.",
25
+ "enter new path: "
26
+ )
27
+ raise "missing required value for oss_om home!" if abs_home.nil? && oss_home_path.nil?
28
+ oss_home_path = abs_home.nil? ? oss_home_path : File.expand_path(abs_home)
29
+ oss_om_base_dir = ::File.join(oss_home_path, Aro::Mancy::ARO_DIRECTORY.to_s)
25
30
  Aro::P.say("FileUtils.mkdir_p(#{oss_om_base_dir})")
26
31
  FileUtils.mkdir_p(oss_om_base_dir)
27
- Aro::P.say("FileUtils.chdir(#{aro_home_dir})")
28
- FileUtils.chdir(aro_home_dir) do
29
- Aro::P.say("Aro::Cor.instance.load_env")
30
- Aro::Cor.instance.load_env
31
- Aro::P.say("Aro::Cor.set_ivar(:OSS_OM_HOME, #{File.absolute_path(aro_home_dir)})")
32
- Aro::Cor.set_ivar(:OSS_OM_HOME, File.absolute_path(aro_home_dir))
33
- Aro::P.say("Aro::Db.ensure_connected!")
34
- Aro::Db.ensure_connected!
35
- Aro::P.say("Aro::Mancy.init(#{aro_home_dir})")
36
- Aro::Mancy.init(aro_home_dir)
37
- Aro::P.say("Reiquire.reload_i18n!")
38
- Reiquire.reload_i18n!
39
- # design_menu(Aro::Dom::Menu.first)
40
- end
41
32
 
42
- if File.absolute_path(Dir.pwd) != Aro::Cor.ivar(:OSS_OM_HOME)
43
- Aro::P.say("user needs to cd")
44
- Aro::P.say("enter $ cd #{Aro::Cor.ivar(:OSS_OM_HOME)}")
33
+ Aro::P.say("Aro::Cor.set_ivar(:OSS_OM_HOME, #{oss_home_path})")
34
+ Aro::Cor.set_ivar(:OSS_OM_HOME, oss_home_path)
35
+
36
+ if ::File.expand_path(Dir.pwd) != Aro::Cor.ivar(:OSS_OM_HOME)
37
+ Aro::P.say("run the following commands to continue:")
38
+ Aro::P.say("$ cd #{Aro::Cor.ivar(:OSS_OM_HOME)} && oss_om")
39
+ Aro::P.say("exiting...")
45
40
  exit
41
+ else
42
+ # restarts Aro::Dom::Ma_ain.reign!
43
+ raise "needs install!"
46
44
  end
47
45
  design
48
46
  end
49
47
 
50
-
51
48
  def self.design
52
49
  if Aro::Cor.ivar(:OSS_OM_HOME).nil?
53
- design_aro
50
+ design_oss_om
54
51
  return
55
52
  end
56
- Aro::Dom::Ma_ain.instance.current_menu = Aro::Dom::DataBase.open_menu(:ma_ain)
57
53
 
54
+ Aro::P.say("Aro::Dom::Ma_ain.open!")
55
+ Aro::Dom::Ma_ain.open!
58
56
  loop do
59
- selected_menu_item_uuid = Aro::P.p.select(
57
+ selected_menu_item_uuid = Aro::P.default_select(
60
58
  "#{Aro::Dom::Ma_ain.instance.current_menu.localized_name}",
61
- [{name: :open_menu, value: :open_menu}] + Aro::Dom::Ma_ain.instance.current_menu.menu_items.map{|mi| mi.as_tty},
62
- show_help: :always,
63
- cycle: true,
64
- per_page: 11
59
+ Aro::Dom::Ma_ain.get_current_options
65
60
  )
66
61
 
67
- if selected_menu_item_uuid == :open_menu
68
- Aro::Dom::Designer.design_menu(Aro::Dom::Ma_ain.instance.current_menu)
69
- else
70
- Aro::Dom::Designer.design_menu_item(
71
- selected_menu_item_uuid,
62
+ case selected_menu_item_uuid.to_sym
63
+ when :back
64
+ # todo: call_stack_bread_crumbs
65
+ Aro::Dom::Ma_ain.back!
66
+ when :open_menu
67
+ design_menu(
72
68
  Aro::Dom::Ma_ain.instance.current_menu
73
69
  )
70
+ else
71
+ if Aro::Dom::Ma_ain.running?
72
+ selected_menu_item = Aro::Dom::Ma_ain.instance.current_menu.menu_items.find_by(
73
+ uuid: selected_menu_item_uuid
74
+ )
75
+ selected_menu_item.run!
76
+ else
77
+ design_menu_item(
78
+ selected_menu_item_uuid,
79
+ Aro::Dom::Ma_ain.instance.current_menu
80
+ )
81
+ end
74
82
  end
75
83
  end
76
84
  end
@@ -100,54 +108,69 @@ module Aro
100
108
  new_name = get_new_value_from_user(
101
109
  "#{__method__} #{Aro::Dom::MenuItem.name} for menu: '#{I18n.t(menu.full_i18n_path)}'"
102
110
  )
111
+
103
112
  unless new_name.nil? ||
104
113
  new_name.empty? ||
105
114
  new_name.kind_of?(FalseClass)
106
115
 
107
- menu_item = menu.menu_items.create(tty_name: Aro::Dom::Locale.i18n_keyify_text(new_name))
108
- Aro::Dom::Locale.add_i18n_key(
109
- new_name,
110
- library_name: :menu_items,
111
- new_i18n_display_key: menu_item.uuid,
112
- )
116
+ new_item = menu.generate_new_item(new_name)
117
+ raise "error generating new item!" if new_item.nil?
118
+
119
+ design_menu_item(new_item.uuid, menu)
113
120
  else
114
121
  Aro::P.say("#{new_name.inspect} is invalid")
122
+ design_menu(menu)
115
123
  end
116
-
117
- design_menu(menu)
118
124
  end
119
125
 
120
126
  def self.design_menu(menu = nil)
121
127
  return create_menu if menu.nil?
122
128
 
123
- # action,class,value
129
+ item_mapper = Proc.new{|mi|
130
+ {
131
+ name: "(edit_item)".ljust(ACTION_LJUST) +
132
+ "#{mi.localized_name}".ljust(VALUE_LJUST) +
133
+ "#{mi.class.name}(#{mi.id})".ljust(CLASS_LJUST),
134
+ value: mi.uuid
135
+ }
136
+ }
137
+
138
+ # action,value,class
124
139
  options = [
125
140
  {
126
141
  name: :back,
127
142
  value: :back
128
143
  },
144
+ {
145
+ name: "(#{Aro::Dom::Ma_ain::UNICODE_KEYS[:yinyang]}) toggle_run_mode".ljust(ACTION_LJUST) +
146
+ ":#{Aro::Dom::Ma_ain::RUN_MODES[Aro::Dom::Ma_ain.instance.run_mode || Aro::Mancy::O]}".ljust(VALUE_LJUST) +
147
+ "available_modes: #{Aro::Dom::Ma_ain::RUN_MODES.to_s}".ljust(CLASS_LJUST),
148
+ value: :toggle_run_mode
149
+ },
150
+ {
151
+ name: "(#{Aro::Dom::Ma_ain::UNICODE_KEYS[:yinyang]}) open_shell".ljust(ACTION_LJUST) +
152
+ "open a bash session".ljust(VALUE_LJUST),
153
+ value: :open_shell
154
+ },
129
155
  {
130
156
  name: "(edit_title)".ljust(ACTION_LJUST) +
131
- "#{menu.class.name}(#{menu.id})".ljust(CLASS_LJUST) +
132
- "#{menu.localized_name}",
157
+ "#{menu.localized_name}".ljust(VALUE_LJUST) +
158
+ "#{menu.class.name}(#{menu.id})".ljust(CLASS_LJUST),
133
159
  value: :edit_title
134
160
  }
135
- ] + menu.menu_items.map{|mi|
136
- {
137
- name: "(edit_item)".ljust(ACTION_LJUST) +
138
- "#{mi.class.name}(#{mi.id})".ljust(CLASS_LJUST) +
139
- "#{mi.localized_name}",
140
- value: mi.uuid
141
- }
142
- } + [
161
+ ] +
162
+ menu.menu_items.select{|mi| mi.user?}.map{|mi| item_mapper.call(mi)} +
163
+ menu.menu_items.select{|mi| mi.system?}.map{|mi| item_mapper.call(mi)} +
164
+ [
143
165
  {
144
166
  name: "(create_item)".ljust(ACTION_LJUST) +
167
+ "add new item to #{menu.localized_name}".ljust(VALUE_LJUST) +
145
168
  "#{Aro::Dom::MenuItem.name}(+)".ljust(CLASS_LJUST),
146
169
  value: :create_item
147
170
  }
148
171
  ]
149
172
 
150
- v = Aro::P.p.select(
173
+ v = Aro::P.default_select(
151
174
  I18n.t("open_menu.edit_menu_localized_name", localized_name: menu.localized_name),
152
175
  options
153
176
  )
@@ -172,6 +195,12 @@ module Aro
172
195
  create_menu_item(menu)
173
196
  when :back
174
197
  return
198
+ when :toggle_run_mode
199
+ Aro::Dom::Ma_ain.toggle_run_mode
200
+ return
201
+ when :open_shell
202
+ Aro::P.say("starting bash session for #{`whoami`.strip}")
203
+ system(:bash.to_s)
175
204
  else
176
205
  design_menu_item(v, menu)
177
206
  end
@@ -182,22 +211,6 @@ module Aro
182
211
 
183
212
  menu_item = menu.menu_items.find_by(uuid: menu_item_uuid)
184
213
 
185
- # new_name = get_new_value_from_user(
186
- # "rename #{menu_item.class} '#{I18n.t(menu_item.full_i18n_path)}'"
187
- # )
188
- # unless new_name.nil? ||
189
- # new_name.empty? ||
190
- # new_name.kind_of?(FalseClass)
191
-
192
- # Aro::Dom::Locale.update_i18n_key(
193
- # new_name,
194
- # menu_item.uuid,
195
- # library_name: :menu_items
196
- # )
197
- # else
198
- # Aro::P.say("#{new_name.inspect} is invalid")
199
- # end
200
-
201
214
  # action,class,value
202
215
  options = [
203
216
  {
@@ -206,18 +219,19 @@ module Aro
206
219
  },
207
220
  {
208
221
  name: "(edit_title)".ljust(ACTION_LJUST) +
209
- "#{menu_item.class.name}(#{menu_item.id})".ljust(CLASS_LJUST) +
210
- "#{menu_item.localized_name}",
222
+ "#{menu_item.localized_name}".ljust(VALUE_LJUST) +
223
+ "#{menu_item.class.name}(#{menu_item.id})".ljust(CLASS_LJUST),
211
224
  value: :edit_title
212
225
  },
213
226
  {
214
227
  name: "(edit_action)".ljust(ACTION_LJUST) +
228
+ "#{menu_item.action_display_text}".ljust(VALUE_LJUST) +
215
229
  "Aro::Dom::MenuItem::Action(+)".ljust(CLASS_LJUST),
216
230
  value: :edit_action
217
231
  }
218
232
  ]
219
233
 
220
- v = Aro::P.p.select(
234
+ v = Aro::P.default_select(
221
235
  I18n.t("open_menu.edit_menu_item_localized_name", localized_name: menu_item.localized_name),
222
236
  options
223
237
  )
@@ -240,39 +254,94 @@ module Aro
240
254
  Aro::P.say("#{new_name.inspect} is invalid")
241
255
  end
242
256
  when :edit_action
243
- puts "this is where i am working"
244
- return
257
+ design_action_for(menu_item)
245
258
  when :back
246
259
  return
247
260
  end
261
+ end
262
+
263
+ def self.edit_action_for(menu_item)
264
+ action_name = menu_item.store.safe_get_key("action_name")&.to_sym
265
+
266
+ raise "missing action!" if action_name.nil?
267
+
268
+ options = [
269
+ {
270
+ name: :back,
271
+ value: :back
272
+ },
273
+ {
274
+ name: "(edit_type)".ljust(ACTION_LJUST) +
275
+ "#{menu_item.action_storage_key}".ljust(VALUE_LJUST) +
276
+ "#{Aro::Dom::Action.name}(#{action_name})".ljust(CLASS_LJUST),
277
+ value: :edit_type
278
+ },
279
+ {
280
+ name: "(edit_method)".ljust(ACTION_LJUST) +
281
+ "#{menu_item.action_display_text}".ljust(VALUE_LJUST) +
282
+ "Aro::Dom::MenuItem::Action(#{action_name})".ljust(CLASS_LJUST),
283
+ value: :edit_method
284
+ }
285
+ ]
286
+ v = Aro::P.default_select(
287
+ I18n.t("open_menu.edit_action_for_menu_item", localized_name: menu_item.localized_name, action_name: action_name),
288
+ options
289
+ )
248
290
 
249
- # this is for updating data stores
250
- # todo:
251
- # Aro::P.say([
252
- # to_s,
253
- # "=> writing property :tty_name => '#{new_name}'",
254
- # "=> to #{menu_item.aro_file.class}(#{menu_item.aro_file.uuid})",
255
- # "=> in #{Aro::Dom::DataBase.name} #{menu_item.aro_file.aro_file_path}",
256
- # "=> for #{menu_item.class}(#{menu_item.uuid})"
257
- # ].join("\n"))
258
-
259
- # menu_item.aro_file.write!({tty_name: new_name})
291
+ case v.to_sym
292
+ when :edit_type
293
+ design_action_for(menu_item, overwrite: true)
294
+ when :edit_method
295
+ # todo: case when for oss_om_entry types here
296
+ Aro::Dom::Oss_OpenMenu.create_exec_oss_om_entry_for(menu_item)
297
+ end
260
298
  end
261
299
 
262
- private
300
+ def self.design_action_for(menu_item, overwrite: false)
301
+ return if menu_item.nil?
302
+ return edit_action_for(menu_item) if menu_item.actionable? && !overwrite
303
+
304
+ # action,class,value
305
+ options = [
306
+ {
307
+ name: :back,
308
+ value: :back
309
+ }
310
+ ] + Aro::Dom::Action::TYPES.keys.map{|k|
311
+ {
312
+ name: "(#{k})".ljust(ACTION_LJUST) +
313
+ "#{menu_item.localized_name}".ljust(VALUE_LJUST) +
314
+ "#{menu_item.class.name}(#{menu_item.id})".ljust(CLASS_LJUST),
315
+ value: k
316
+ }
317
+ }
318
+
319
+ v = Aro::P.default_select(
320
+ I18n.t("open_menu.design_action_for_menu_item", localized_name: menu_item.localized_name),
321
+ options
322
+ )
323
+
324
+ case v.to_sym
325
+ when :back
326
+ return
327
+ else
328
+ Aro::Dom::Action.create(v, menu_item)
329
+ end
330
+ end
263
331
 
264
- def self.get_new_value_from_user(ask_text)
332
+ def self.get_new_value_from_user(ask_text, prompt_text_override = nil)
265
333
  Aro::P.say(__method__)
266
334
  new_val = nil
267
335
  user_cancelled = false
268
336
  while new_val.nil? && !user_cancelled
269
337
  Aro::P.say(ask_text)
270
- new_val = Aro::P.p.ask(I18n.t("open_menu.get_new_value_from_user"))
338
+ puts "\n"
339
+ new_val = Aro::P.p.ask(prompt_text_override || I18n.t("open_menu.get_new_value_from_user"))
271
340
  user_cancelled = new_val.nil? || new_val.empty?
272
341
  new_val = nil if user_cancelled
273
342
  end
274
343
 
275
- return user_cancelled if user_cancelled
344
+ return nil if user_cancelled
276
345
  return new_val
277
346
  end
278
347
 
data/sys/aro/locale.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  locale.rb
@@ -73,7 +75,7 @@ module Aro
73
75
 
74
76
  def self.i18n_valuify_text(text)
75
77
  # gsub non-word characters with " "
76
- text.gsub(/[\W]/, " ")
78
+ text.to_s.gsub(/[\W]/, " ")
77
79
  end
78
80
 
79
81
  private
@@ -123,7 +125,7 @@ module Aro
123
125
  Aro::P.say("Psych.load_file(#{library_filepath})")
124
126
  loaded_file = Psych.load_file(library_filepath)
125
127
  rescue Psych::SyntaxError => e
126
- Aro::P.say(I18n.t("errors.locale_load_error", named: library_name))
128
+ Aro::P.say(I18n.t("open_menu.errors.locale_load_error", named: library_name))
127
129
  Aro::P.say(e.inspect)
128
130
  Aro::P.say(e.message)
129
131
  return nil
data/sys/aro/mancy.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  aro.rb
@@ -13,9 +15,6 @@
13
15
  module Aro
14
16
  class Mancy
15
17
  include Singleton
16
-
17
- attr_accessor :current, :db_busy, :db_thread
18
-
19
18
  A = :"@"
20
19
  O = 0
21
20
  S = 1
@@ -24,7 +23,7 @@ module Aro
24
23
  N = 4
25
24
  V = 5
26
25
  DATE_FORMAT = "%A %d %b %Y %I:%M:%S %p"
27
- NAME_FILE = :".aro_space"
26
+ NAME_FILE = :".oss_om_space"
28
27
  ARO_DIRECTORY = :".oss_om"
29
28
 
30
29
  I2097I = :i2097i
@@ -62,19 +61,6 @@ module Aro
62
61
  MMXCVII: Aro::Mancy::I2097I[Aro::Mancy::S..Aro::Mancy::N].to_i,
63
62
  }
64
63
 
65
- def remember!
66
- # start monitoring
67
- self.start_db_thread
68
- end
69
-
70
- def self.teck
71
- self.init(root_dir)
72
- if Aro::Mancy.in_aro? && Aro::Mancy.is_initialized?
73
- self.instance.current = Aro::Teck.current_teck
74
- end
75
- self.instance.current
76
- end
77
-
78
64
  def self.create(aro_name, is_test: false)
79
65
  Aro::D.say(__method__)
80
66
  Aro::D.say(:depricated)
@@ -82,7 +68,7 @@ module Aro
82
68
  end
83
69
 
84
70
  def self.init(root_dir_path)
85
- unless Aro::Mancy.in_aro? || Aro::Cor.is_test?
71
+ unless Aro::Mancy.in_aro?
86
72
  Aro::P.say("init aro running in #{root_dir_path} directory...")
87
73
  new_name = File.basename(root_dir_path)
88
74
  Aro::P.say("echo #{new_name} > #{Aro::Mancy::NAME_FILE.to_s}")
@@ -91,6 +77,7 @@ module Aro
91
77
  file.write("\n")
92
78
  end
93
79
  end
80
+ return true
94
81
  end
95
82
 
96
83
  def self.root_dir
@@ -101,7 +88,7 @@ module Aro
101
88
  end
102
89
 
103
90
  def self.is_initialized?
104
- in_aro? && in_aro? && Aro::Db.instance.connected?
91
+ in_aro? && Aro::Db.instance.connected?
105
92
  end
106
93
 
107
94
  def self.in_aro?
@@ -119,25 +106,5 @@ module Aro
119
106
  def self.ps1_display(cls_name = nil)
120
107
  :">[#{cls_name || Aro::Mancy.domain || aro_mancy_name}]>: ".to_s
121
108
  end
122
-
123
- private
124
-
125
- def start_db_thread
126
- return if @db_busy
127
- @db_busy = true
128
- self.db_thread&.exit
129
- self.db_thread&.kill
130
- self.db_thread = Thread.new do
131
- loop do
132
- @db_busy = true
133
- Aro::V.say(Aro::Mancy.instance.db_thread.inspect)
134
- Aro::V.say(__method__)
135
- Aro::Db.ensure_connected!
136
- @db_busy = false
137
- sleep(Aro::Db::HEARTBEAT_DURATION)
138
- end
139
- end
140
- end
141
-
142
109
  end
143
110
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ =begin
4
+
5
+ tar_go_for_root_sec.rb
6
+
7
+ oss_om encryption system
8
+
9
+ by i2097i
10
+
11
+ =end
12
+
13
+ module Aro
14
+ module Dom
15
+ module TarGoForRootSec
16
+ extend ActiveSupport::Concern
17
+
18
+ # todo: implement tar_go_for_root_sec
19
+ # currently only for Aro::Dom::MenuItem
20
+
21
+ included do
22
+ before_create :do_encryption_stuff
23
+ before_commit :do_encryption_stuff
24
+ end
25
+
26
+ private
27
+
28
+ def do_encryption_stuff
29
+ Aro::P.say(__method__)
30
+ Aro::P.say("todo: #{self.class.name}")
31
+ Aro::P.say(self.class.inspect)
32
+ Aro::Dom::Ma_ain.i2097i_bookmark
33
+ end
34
+ end
35
+ end
36
+ end
37
+
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  uuid.rb
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  data.rb
@@ -32,6 +34,15 @@ class Aro::Dom::DataBase < ActiveRecord::Base
32
34
  )
33
35
  end
34
36
 
37
+ case menu_sym
38
+ when :ma_ain
39
+ menu.generate_ma_ain!
40
+ when :settings
41
+ menu.generate_settings!
42
+ else
43
+ menu.generate_user_default!
44
+ end
45
+
35
46
  # return the menu
36
47
  return menu
37
48
  end
@@ -40,9 +51,28 @@ class Aro::Dom::DataBase < ActiveRecord::Base
40
51
  Aro::Dom::DataBase.find_or_create_by(unix_path: Aro::Dom::Menu.table_name)
41
52
  end
42
53
 
43
- def self.sync_menu_item(menu_item)
44
- # todo:
45
- puts "todo: #{__method__} #{menu_item.inspect}"
54
+ def self.sync_menu_item!(menu_item, localized_name)
55
+ raise "missing menu_item!" unless !menu_item.nil? &&
56
+ menu_item.kind_of?(Aro::Dom::MenuItem)
57
+
58
+ Aro::Dom::Locale.update_i18n_key(
59
+ localized_name,
60
+ menu_item.uuid,
61
+ library_name: :menu_items
62
+ )
63
+
64
+ # set up by system menus
65
+ return true if menu_item.system?
66
+
67
+ # ensure default menu_item.aro_file exists
68
+ # for user-created menu items
69
+ menu_item.aro_file.write!(
70
+ Aro::Dom::Store.build_exec_oss_om_params!(
71
+ Aro::Dom::Oss_OpenMenu,
72
+ :name, # defaults to Aro::Dom::Oss_OpenMenu.name
73
+ menu_item.localized_name
74
+ )
75
+ )
46
76
  end
47
77
 
48
78
  def self.ensure_data_base_exist!
@@ -57,11 +87,6 @@ class Aro::Dom::DataBase < ActiveRecord::Base
57
87
 
58
88
  def self.ensure_data_base_git!
59
89
  ensure_data_base_exist! unless Dir.exist?(root_aro_unix_data_dir)
60
- FileUtils.chdir(root_aro_unix_data_dir) do
61
- Aro::P.say("todo:")
62
- Aro::P.say(__method__)
63
- # system("git init")
64
- end
65
90
  end
66
91
 
67
92
  def unix_path_valid?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  data.rb
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  =begin
2
4
 
3
5
  row.rb
@@ -13,7 +15,7 @@ class Aro::Dom::DataBase::File < ActiveRecord::Base
13
15
  self.table_name = :data_base_files
14
16
  belongs_to :data_base_directory, class_name: "Aro::Dom::DataBase::Directory"
15
17
 
16
- def write!(updates = {})
18
+ def write!(updates)
17
19
  Aro::Dom::Store.edit(self, updates)
18
20
  end
19
21