aro 0.1.9 → 0.2.1

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +3 -2
  4. data/aro.gemspec +1 -0
  5. data/bin/aos +3 -3
  6. data/bin/aro +3 -3
  7. data/checksums/aro-0.2.0.gem.sha512 +1 -0
  8. data/listen.rb +1 -1
  9. data/locale/en.aos.yml +46 -7
  10. data/locale/en.cards.yml +156 -156
  11. data/locale/en.dom.yml +2 -2
  12. data/locale/en.usage.yml +3 -9
  13. data/locale/en.yml +4 -0
  14. data/sys/aos/amg.rb +182 -0
  15. data/sys/aos/aos.rb +253 -120
  16. data/sys/aos/db/migrate/1765762724_create_libs.rb +22 -0
  17. data/sys/aos/db.rb +17 -10
  18. data/sys/aos/vws/base.rb +169 -0
  19. data/sys/aos/{views → vws}/dom.rb +6 -9
  20. data/sys/aos/vws/games/abpps.rb +19 -0
  21. data/sys/aos/{views → vws}/games/game.rb +19 -16
  22. data/sys/aos/vws/games/hbpps.rb +19 -0
  23. data/sys/aos/vws/games/shpps.rb +19 -0
  24. data/sys/aos/vws/games/vipps.rb +19 -0
  25. data/sys/aos/{views → vws}/games.rb +3 -3
  26. data/sys/aos/{views → vws}/know/library.rb +3 -3
  27. data/sys/aos/{views → vws}/know/temple.rb +3 -3
  28. data/sys/aos/{views → vws}/know.rb +3 -3
  29. data/sys/aos/vws/setup/amg.rb +22 -0
  30. data/sys/aos/vws/setup/config.rb +21 -0
  31. data/sys/aos/{views → vws}/setup.rb +3 -3
  32. data/sys/aos/vws/welcome/waite.rb +30 -0
  33. data/sys/aos/{views → vws}/welcome/winner.rb +3 -3
  34. data/sys/aos/{views → vws}/welcome.rb +3 -3
  35. data/sys/aos/you.rb +5 -3
  36. data/sys/aro/db.rb +13 -6
  37. data/sys/aro/mancy.rb +1 -0
  38. data/sys/aro/v.rb +1 -1
  39. data/sys/cli/deck.rb +22 -8
  40. data/sys/cli.rb +8 -9
  41. data/sys/{cli → dom}/config.rb +170 -144
  42. data/sys/dom/d.rb +10 -5
  43. data/sys/dom/dom.rb +7 -3
  44. data/sys/models/deck.rb +24 -20
  45. data/sys/reiquire.rb +5 -3
  46. data/sys/shr/lib/crs/CMakeLists.txt +12 -0
  47. data/sys/shr/lib/crs/compile.sh +5 -0
  48. data/sys/shr/lib/crs/crs.c +24 -0
  49. data/sys/shr/lib/crs/crs.o +0 -0
  50. data/sys/shr/lib/crs/libcrs.so +0 -0
  51. data/sys/shr/lib/lib.rb +43 -0
  52. data/sys/shr/prompt.rb +2 -2
  53. data/sys/shr/t.rb +17 -3
  54. data/sys/shr/version.rb +2 -6
  55. metadata +52 -23
  56. data/sys/aos/views/base.rb +0 -155
  57. data/sys/aos/views/games/abpps.rb +0 -21
  58. data/sys/aos/views/games/hbpps.rb +0 -21
  59. data/sys/aos/views/games/shpps.rb +0 -21
  60. data/sys/aos/views/games/vipps.rb +0 -21
  61. data/sys/aos/views/setup/settings.rb +0 -37
  62. data/sys/aos/views/welcome/waite.rb +0 -19
  63. /data/{db → sys/aos/db}/migrate/1765148774_create_yous.rb +0 -0
  64. /data/{db → sys/aro/db}/migrate/1763374647_create_decks.rb +0 -0
  65. /data/{db → sys/aro/db}/migrate/1763432541_create_logs.rb +0 -0
data/locale/en.dom.yml CHANGED
@@ -26,8 +26,8 @@ en:
26
26
  description: "definition management."
27
27
  temple:
28
28
  description: "mindfulness management."
29
- settings:
30
- description: "user settings and configuration."
29
+ config:
30
+ description: "user config and configuration."
31
31
  errors:
32
32
  directory_exists: "unable to create arodome at %{name}. file or directory already exists."
33
33
  failed_already_in_arodom: "unable to create an arodome because you are already in arodom."
data/locale/en.usage.yml CHANGED
@@ -3,7 +3,7 @@ en:
3
3
  main: |
4
4
  NAME
5
5
 
6
- aro - a cli for tarot games in the arodom.
6
+ aro - a cli for tarot.
7
7
 
8
8
  SYNOPSIS
9
9
 
@@ -32,7 +32,7 @@ en:
32
32
  set
33
33
  sets an ivar to a specified value. the aro var prefix can be omitted.
34
34
 
35
- $ config set <var_name> <var_value>
35
+ $ aro config set <var_name> <var_value>
36
36
 
37
37
  deck
38
38
  manage decks in the current room.
@@ -101,16 +101,10 @@ en:
101
101
  shuffles the current deck and generates a log record.
102
102
 
103
103
  dom
104
- create or manage an arodome (ex: list game rooms)
104
+ aos arodome management.
105
105
 
106
106
  $ aro dom <commands>
107
107
 
108
- note: passing no arguments displays the main dom.
109
-
110
- example
111
-
112
- $ aro dom
113
-
114
108
  SUBCOMMANDS
115
109
  init
116
110
  generate the arodome
data/locale/en.yml CHANGED
@@ -32,6 +32,8 @@ en:
32
32
  production_description: "game logging only."
33
33
  test_description: "logging and features tailored for tests."
34
34
  verbose_description: "enable verbose logging in development env."
35
+ log_aos_db_description: "show aos database transactions."
36
+ log_aro_db_description: "show aro database transactions"
35
37
  generate: "generating default config file at %{name}."
36
38
  source: "installing ivars from %{name}..."
37
39
  maximum: "max"
@@ -56,6 +58,7 @@ en:
56
58
  invalid_order: "the order specified for displaying logs in invalid. using default (desc)."
57
59
  messages:
58
60
  choose_card: "choose a card."
61
+ choose_deck: "choose a deck."
59
62
  confirmation_prompt: "input 'aroyes' to reset %{name}, or enter to cancel (cancel): "
60
63
  creating: "creating %{name}..."
61
64
  creation_attempt: "attempting to create aro table named %{name}..."
@@ -69,6 +72,7 @@ en:
69
72
 
70
73
  see aro --help for usage.
71
74
  deck_created_sucessfully: "%{name} deck created successfully"
75
+ deck_selected: "%{name} deck selected in the %{room} room."
72
76
  drawing: "drawing a card from %{name}"
73
77
  drawing_from_dimension: "in the the %{dimension} dimension..."
74
78
  ruby_facot_random: |
data/sys/aos/amg.rb ADDED
@@ -0,0 +1,182 @@
1
+ =begin
2
+
3
+ amg.rb
4
+
5
+ aos system management.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ module Aos
12
+ class Amg
13
+ include Singleton
14
+
15
+ attr_accessor :display_lines
16
+
17
+ CMDS = {
18
+ INST: {
19
+ key: :inst,
20
+ description: I18n.t("aos.amg.commands.description.inst"),
21
+ usage: I18n.t("aos.amg.commands.usage.inst"),
22
+ },
23
+ INSTUN: {
24
+ key: :instun,
25
+ description: I18n.t("aos.amg.commands.description.instun"),
26
+ usage: I18n.t("aos.amg.commands.usage.instun"),
27
+ },
28
+ }
29
+
30
+ def initialize
31
+ self.display_lines = Aos::Amg.base_lines
32
+ end
33
+
34
+ def self.process_cmd(args)
35
+ self.instance.display_lines = []
36
+ if args[Aro::Mancy::S].nil? ||
37
+ CLI::FLAGS[:HELP].include?(args[Aro::Mancy::S].to_sym)
38
+ Aos::Amg.amg
39
+ return true
40
+ end
41
+
42
+ case args[Aro::Mancy::S].to_sym
43
+ when Aos::Amg::CMDS[:INST][:key]
44
+ unless args[Aro::Mancy::OS].nil?
45
+ lib_name = args[Aro::Mancy::OS]
46
+ lib = Aos::Lib.find_by(name: lib_name)
47
+ unless lib.nil?
48
+ if lib.installed?
49
+ self.instance.display_lines << "#{lib_name} lib is already installed."
50
+ else
51
+ Aos::Amg.install(lib)
52
+ if lib.reload.installed?
53
+ self.instance.display_lines << "#{lib_name} installed successfully."
54
+ self.instance.display_lines += self.inst_lines
55
+ return true
56
+ else
57
+ self.instance.display_lines << "failed to install #{lib_name}."
58
+ end
59
+ end
60
+ else
61
+ self.instance.display_lines << "could not find #{lib_name} lib."
62
+ end
63
+ else
64
+ # list installed libs
65
+ Aos::Amg.inst
66
+ return true
67
+ end
68
+ when Aos::Amg::CMDS[:INSTUN][:key]
69
+ unless args[Aro::Mancy::OS].nil?
70
+ lib_name = args[Aro::Mancy::OS]
71
+ lib = Aos::Lib.find_by(name: lib_name)
72
+ unless lib.nil?
73
+ if lib.available?
74
+ self.instance.display_lines << "#{lib_name} lib is not installed."
75
+ else
76
+ Aos::Amg.uninstall(lib)
77
+ if lib.reload.available?
78
+ self.instance.display_lines << "#{lib_name} uninstalled successfully."
79
+ self.instance.display_lines += self.instun_lines
80
+ return true
81
+ else
82
+ self.instance.display_lines << "failed to uninstall #{lib_name}."
83
+ end
84
+ end
85
+ else
86
+ self.instance.display_lines << "could not find #{lib_name} lib."
87
+ end
88
+ else
89
+ # list available libs
90
+ Aos::Amg.instun
91
+ return true
92
+ end
93
+ end
94
+
95
+ return false
96
+ end
97
+
98
+ def self.load(lib)
99
+ Aos::Lib.find_or_create_by(name: lib)
100
+ end
101
+
102
+ def self.install(lib)
103
+ return unless lib.kind_of?(Aos::Lib)
104
+ lib.installed!
105
+ end
106
+
107
+ def self.uninstall(lib)
108
+ return unless lib.kind_of?(Aos::Lib)
109
+ lib.available!
110
+ end
111
+
112
+ def self.inst
113
+ self.instance.display_lines = Aos::Amg.inst_lines
114
+ end
115
+
116
+ def self.instun
117
+ self.instance.display_lines = Aos::Amg.instun_lines
118
+ end
119
+
120
+ def self.amg
121
+ self.instance.display_lines = Aos::Amg.base_lines
122
+ end
123
+
124
+ def self.base_lines
125
+ # print amg commands
126
+ lines = []
127
+ lines << ""
128
+ lines << I18n.t("aos.constants.commands")
129
+ lines += Aos::Vw::Base.lines_for_cmd(Aos::Os::CMDS[:AMG])
130
+ lines << I18n.t("aos.constants.subcommands")
131
+ Aos::Amg::CMDS.keys.each{|k|
132
+ lines += Aos::Vw::Base.lines_for_cmd(Aos::Amg::CMDS[k])
133
+ }
134
+ lines << ""
135
+
136
+ lines
137
+ end
138
+
139
+ def self.inst_lines
140
+ # list installed libs
141
+ lines = []
142
+ lines << ""
143
+ installed_libs = Aos::Lib.where(status: :installed)
144
+ unless installed_libs.any?
145
+ lines << I18n.t("aos.amg.lib.none_installed")
146
+ else
147
+ lines << I18n.t("aos.amg.lib.listing_installed")
148
+ installed_libs.each_with_index{|lib, i|
149
+ lines << "[#{i + Aro::Mancy::S} of #{Aos::Lib.count}]"
150
+ lines << "name: #{lib.name}"
151
+ lines << "path: " + lib.so_path.split("/").last(Aro::Mancy::N).join("/")
152
+ lines << "usage: #{lib.usage}"
153
+ }
154
+ end
155
+ lines << ""
156
+
157
+ lines
158
+ end
159
+
160
+ def self.instun_lines
161
+ # list installed libs
162
+ lines = []
163
+ lines << ""
164
+ available_libs = Aos::Lib.where(status: :available)
165
+ unless available_libs.any?
166
+ lines << I18n.t("aos.amg.lib.none_available")
167
+ else
168
+ lines << I18n.t("aos.amg.lib.listing_available")
169
+ available_libs.each_with_index{|lib, i|
170
+ lines << "[#{i + Aro::Mancy::S} of #{Aos::Lib.count}]"
171
+ lines << "name: #{lib.name}"
172
+ lines << "path: " + lib.so_path.split("/").last(Aro::Mancy::N).join("/")
173
+ lines << "usage: #{lib.usage}"
174
+ }
175
+ end
176
+ lines << ""
177
+
178
+ lines
179
+ end
180
+
181
+ end
182
+ end