aro 0.2.0 → 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 (62) 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 +2 -2
  6. data/bin/aro +1 -1
  7. data/listen.rb +1 -1
  8. data/locale/en.aos.yml +44 -5
  9. data/locale/en.dom.yml +2 -2
  10. data/locale/en.usage.yml +2 -2
  11. data/locale/en.yml +1 -0
  12. data/sys/aos/amg.rb +182 -0
  13. data/sys/aos/aos.rb +144 -63
  14. data/sys/aos/db/migrate/1765762724_create_libs.rb +22 -0
  15. data/sys/aos/db.rb +8 -9
  16. data/sys/aos/{views → vws}/base.rb +64 -61
  17. data/sys/aos/{views → vws}/dom.rb +6 -9
  18. data/sys/aos/vws/games/abpps.rb +19 -0
  19. data/sys/aos/{views → vws}/games/game.rb +16 -15
  20. data/sys/aos/vws/games/hbpps.rb +19 -0
  21. data/sys/aos/vws/games/shpps.rb +19 -0
  22. data/sys/aos/vws/games/vipps.rb +19 -0
  23. data/sys/aos/{views → vws}/games.rb +3 -3
  24. data/sys/aos/{views → vws}/know/library.rb +3 -3
  25. data/sys/aos/{views → vws}/know/temple.rb +3 -3
  26. data/sys/aos/{views → vws}/know.rb +3 -3
  27. data/sys/aos/vws/setup/amg.rb +22 -0
  28. data/sys/aos/vws/setup/config.rb +21 -0
  29. data/sys/aos/{views → vws}/setup.rb +3 -3
  30. data/sys/aos/vws/welcome/waite.rb +30 -0
  31. data/sys/aos/{views → vws}/welcome/winner.rb +3 -3
  32. data/sys/aos/{views → vws}/welcome.rb +3 -3
  33. data/sys/aos/you.rb +6 -4
  34. data/sys/aro/db.rb +6 -5
  35. data/sys/aro/mancy.rb +1 -0
  36. data/sys/aro/v.rb +1 -1
  37. data/sys/cli/deck.rb +9 -4
  38. data/sys/cli.rb +8 -9
  39. data/sys/{cli → dom}/config.rb +153 -157
  40. data/sys/dom/d.rb +10 -5
  41. data/sys/dom/dom.rb +3 -2
  42. data/sys/models/deck.rb +13 -18
  43. data/sys/reiquire.rb +4 -3
  44. data/sys/shr/lib/crs/CMakeLists.txt +12 -0
  45. data/sys/shr/lib/crs/compile.sh +5 -0
  46. data/sys/shr/lib/crs/crs.c +24 -0
  47. data/sys/shr/lib/crs/crs.o +0 -0
  48. data/sys/shr/lib/crs/libcrs.so +0 -0
  49. data/sys/shr/lib/lib.rb +43 -0
  50. data/sys/shr/prompt.rb +2 -2
  51. data/sys/shr/t.rb +14 -8
  52. data/sys/shr/version.rb +1 -1
  53. metadata +50 -21
  54. data/sys/aos/views/games/abpps.rb +0 -21
  55. data/sys/aos/views/games/hbpps.rb +0 -21
  56. data/sys/aos/views/games/shpps.rb +0 -21
  57. data/sys/aos/views/games/vipps.rb +0 -21
  58. data/sys/aos/views/setup/settings.rb +0 -37
  59. data/sys/aos/views/welcome/waite.rb +0 -19
  60. /data/{db → sys/aos/db}/migrate/1765148774_create_yous.rb +0 -0
  61. /data/{db → sys/aro/db}/migrate/1763374647_create_decks.rb +0 -0
  62. /data/{db → sys/aro/db}/migrate/1763432541_create_logs.rb +0 -0
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ vws/games/abpps.rb
4
+
5
+ the apbbs view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./game".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Abpps < Aos::Vw::Game
16
+
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/games/game.rb
3
+ vws/games/game.rb
4
4
 
5
5
  the game view.
6
6
 
@@ -12,8 +12,8 @@ require_relative :"../../../models/deck".to_s
12
12
  require_relative :"../base".to_s
13
13
 
14
14
  module Aos
15
- module Vi
16
- class Game < Aos::Vi::Base
15
+ module Vw
16
+ class Game < Aos::Vw::Base
17
17
 
18
18
  DECK_PARAMS = [
19
19
  :deck,
@@ -22,7 +22,7 @@ module Aos
22
22
  :order_o,
23
23
  ]
24
24
 
25
- def self.show(model)
25
+ def self.show
26
26
  unless Aro::Mancy.game.nil?
27
27
  Aro::Mancy.game.show
28
28
  return
@@ -33,19 +33,19 @@ module Aos
33
33
  lines << I18n.t("aos.views.game.description").center(viewport_width)
34
34
 
35
35
  room_def = Aro::Dom::D::WINGS[:GAMES].values.filter{|gr|
36
- "#{Aos::Vi.name}::#{gr[:name].to_s.downcase.capitalize}" == self.name
36
+ "#{Aos::Vw.name}::#{gr[:name].to_s.downcase.capitalize}" == self.name
37
37
  }.first
38
38
  unless room_def.nil?
39
39
  lines << I18n.t("aos.views.game.is_the", name: room_def[:name].to_s)
40
40
  lines << I18n.t("aos.views.game.designed_for", description: room_def[:description])
41
41
  end
42
42
 
43
- draw(lines, model)
43
+ draw(lines)
44
44
  end
45
45
 
46
46
  def self.show_game(model)
47
47
  mk = model.keys
48
- dp = Aos::Vi::Game::DECK_PARAMS
48
+ dp = Aos::Vw::Game::DECK_PARAMS
49
49
  return nil unless (mk & dp).count == dp.count
50
50
  return nil unless model.values.all?{|v| v != nil}
51
51
 
@@ -54,23 +54,24 @@ module Aos
54
54
  count_n = model[:count_n]
55
55
  order_o = model[:order_o]
56
56
 
57
- dc = CLI::Config.display_config
57
+ dc = Aro::Config.display_configuration
58
58
  width = count_n == Aro::Mancy::S ? viewport_width : dc[:WIDTH]
59
59
  divider = dc[:DIVIDER] * width
60
60
  lines = []
61
+ lines << divider
61
62
  lines << "#{deck.name.upcase.center(width)}"
62
63
  h_logs.each_with_index{|l, i|
63
64
  lines << divider
64
65
  lines << ""
65
- timestamp = l.created_at.strftime(CLI::Config::DATE_FORMAT)
66
+ timestamp = l.created_at.strftime(Aro::Config::DATE_FORMAT)
66
67
  of_text = "#{order_o.to_sym == Aro::Log::ORDERING[:DESC] ? deck.logs.count - i : 1 + i} of #{deck.logs.count}"
67
68
  lines << of_text.ljust(width - timestamp.length) + timestamp
68
69
  lines << divider
69
70
  cards = Base64::decode64(l.card_data).split(Aro::Deck::CARD_DELIM.to_s)
70
71
  if !cards.nil? && cards.any?
71
- lines << ""
72
+ # lines << ""
72
73
  lines += self.get_display_for_cards(cards)
73
- lines << divider
74
+ # lines << divider
74
75
  end
75
76
 
76
77
  drawn_cards = Base64::decode64(l.drawn_data).split(Aro::Deck::CARD_DELIM.to_s)
@@ -82,8 +83,8 @@ module Aos
82
83
  lines += self.get_display_for_cards(
83
84
  drawn_cards
84
85
  )
85
- lines << ""
86
- lines << divider
86
+ # lines << ""
87
+ # lines << divider
87
88
  end
88
89
  }
89
90
  if count_n == Aro::Mancy::S
@@ -94,8 +95,8 @@ module Aos
94
95
  end
95
96
 
96
97
  def self.get_display_for_cards(input = [])
97
- columns = Aos::Vi::Base::COL_POW.call(
98
- CLI::Config.display_config[:WIDTH].to_i
98
+ columns = Aos::Vw::Base::COL_POW.call(
99
+ Aro::Config.display_configuration[:WIDTH].to_i
99
100
  )
100
101
  lines = []
101
102
  return lines unless input.any?
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ vws/games/hbpps.rb
4
+
5
+ the hpbbs view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./game".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Hbpps < Aos::Vw::Game
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ vws/games/shpps.rb
4
+
5
+ the shbbs view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./game".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Shpps < Aos::Vw::Game
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ vws/games/vipps.rb
4
+
5
+ the vipps view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./game".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Vipps < Aos::Vw::Game
16
+
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/games.rb
3
+ vws/games.rb
4
4
 
5
5
  the games view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"./base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Games < Aos::Vi::Base
14
+ module Vw
15
+ class Games < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/know/library.rb
3
+ vws/know/library.rb
4
4
 
5
5
  the library view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"../base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Library < Aos::Vi::Base
14
+ module Vw
15
+ class Library < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/know/temple.rb
3
+ vws/know/temple.rb
4
4
 
5
5
  the temple view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"../base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Temple < Aos::Vi::Base
14
+ module Vw
15
+ class Temple < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/know.rb
3
+ vws/know.rb
4
4
 
5
5
  the know view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"./base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Know < Aos::Vi::Base
14
+ module Vw
15
+ class Know < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -0,0 +1,22 @@
1
+ =begin
2
+
3
+ vws/setup/amg.rb
4
+
5
+ the amg view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Amg < Aos::Vw::Base
16
+ def self.show
17
+ # draw output
18
+ draw(Aos::Amg.instance.display_lines)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ =begin
2
+
3
+ vws/setup/config.rb
4
+
5
+ the config view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Config < Aos::Vw::Base
16
+ def self.show
17
+ draw(Aro::Config.instance.display_lines)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/setup.rb
3
+ vws/setup.rb
4
4
 
5
5
  the setup view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"./base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Setup < Aos::Vi::Base
14
+ module Vw
15
+ class Setup < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -0,0 +1,30 @@
1
+ =begin
2
+
3
+ vws/welcome/waite.rb
4
+
5
+ the welcome waite view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vw
15
+ class Waite < Aos::Vw::Base
16
+ def self.show
17
+ # print all commands
18
+ lines = []
19
+ lines << ""
20
+ lines << I18n.t("aos.constants.commands")
21
+ Aos::Os::CMDS.values.each{|v|
22
+ lines += lines_for_cmd(v)
23
+ }
24
+
25
+ # draw output
26
+ draw(lines)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/welcome/winner.rb
3
+ vws/welcome/winner.rb
4
4
 
5
5
  the welcome winner view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"../base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Winner < Aos::Vi::Base
14
+ module Vw
15
+ class Winner < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
@@ -1,6 +1,6 @@
1
1
  =begin
2
2
 
3
- views/welcome.rb
3
+ vws/welcome.rb
4
4
 
5
5
  the welcome view.
6
6
 
@@ -11,8 +11,8 @@
11
11
  require_relative :"./base".to_s
12
12
 
13
13
  module Aos
14
- module Vi
15
- class Welcome < Aos::Vi::Base
14
+ module Vw
15
+ class Welcome < Aos::Vw::Base
16
16
 
17
17
  end
18
18
  end
data/sys/aos/you.rb CHANGED
@@ -10,10 +10,12 @@
10
10
 
11
11
  module Aos
12
12
  class You < ActiveRecord::Base
13
- # after_commit :update_aos_pwd
13
+ after_update :clear_aos_display
14
14
 
15
- # def update_aos_pwd
16
- # Dir.chdir(pwd)
17
- # end
15
+ private
16
+
17
+ def clear_aos_display
18
+ Aos::Os.instance.display_lines = [Aos::Os.osify(pwd, true)]
19
+ end
18
20
  end
19
21
  end
data/sys/aro/db.rb CHANGED
@@ -11,9 +11,10 @@
11
11
  module Aro
12
12
  class Db
13
13
  DATABASE_YML = :"database.yml"
14
- SQL_FILE = :"database.sql"
15
- SCHEMA_FILE = :"schema.rb"
14
+ GEM_DB_PATH = :"sys/aro/db"
16
15
  MIGRATIONS_DIR = :"db/migrate"
16
+ SCHEMA_FILE = :"schema.rb"
17
+ SQL_FILE = :"database.sql"
17
18
 
18
19
  def initialize
19
20
  Aro::Db.configure_logger
@@ -23,7 +24,7 @@ module Aro
23
24
  end
24
25
 
25
26
  def self.configure_logger
26
- if CLI::Config.ivar(:LOG_ARO_DB).to_s == CLI::Config::BOOLS[:TRUE].to_s
27
+ if Aro::Config.ivar(:LOG_ARO_DB).to_s == Aro::Config::BOOLS[:TRUE].to_s
27
28
  ActiveRecord::Base.logger = Logger.new(STDOUT)
28
29
  else
29
30
  ActiveRecord::Base.logger = nil
@@ -40,7 +41,7 @@ module Aro
40
41
 
41
42
  def self.base_aro_dir
42
43
  base_aro_file = Aro::Mancy::ARO_FILE.to_s
43
- CLI::Config.is_test? ? "#{base_aro_file}_test" : base_aro_file
44
+ Aro::Config.is_test? ? "#{base_aro_file}_test" : base_aro_file
44
45
  end
45
46
 
46
47
  def db_config_filepath
@@ -77,7 +78,7 @@ module Aro
77
78
  local_migrate_dir = File.join(Aro::Db.base_aro_dir, Aro::Db::MIGRATIONS_DIR.to_s)
78
79
  unless Dir.exist?(local_migrate_dir)
79
80
  gem_dir = Dir[Gem.loaded_specs[:aro.to_s]&.full_gem_path || '.'].first
80
- FileUtils.cp_r(File.join(gem_dir, "db"), Aro::Db::base_aro_dir)
81
+ FileUtils.cp_r(File.join(gem_dir, Aro::Db::GEM_DB_PATH.to_s), Aro::Db::base_aro_dir)
81
82
  end
82
83
 
83
84
  migration_version = Dir["#{local_migrate_dir}/*.rb"].map{|n|
data/sys/aro/mancy.rb CHANGED
@@ -60,6 +60,7 @@ module Aro
60
60
  }
61
61
 
62
62
  def initialize
63
+ Aro::Config.instance.load
63
64
  if Aro::Mancy.in_aro? && Aro::Mancy.is_initialized?
64
65
  Aro::Mancy.init
65
66
  self.game = Aro::Deck.current_deck
data/sys/aro/v.rb CHANGED
@@ -18,7 +18,7 @@ module Aro
18
18
  end
19
19
 
20
20
  def self.should_print?
21
- CLI::Config.ivar(:VERBOSE).to_s == CLI::Config::BOOLS[:TRUE].to_s && super
21
+ Aro::Config.ivar(:VERBOSE).to_s == Aro::Config::BOOLS[:TRUE].to_s && super
22
22
  end
23
23
  end
24
24
  end
data/sys/cli/deck.rb CHANGED
@@ -30,7 +30,7 @@ module CLI
30
30
  if Aro::Mancy.in_aro?
31
31
  Aro::Db.new
32
32
  deck = Aro::Deck.make(CLI::ARGV2.to_s)
33
- Aro::P.say(I18n.t("cli.messages.deck_created_sucessfully", name: Aro::Mancy.game.name))
33
+ Aro::P.say(I18n.t("cli.messages.deck_created_sucessfully", name: deck.name))
34
34
  Aro::Deck.display_selection_menu
35
35
  else
36
36
  Aro::P.say(I18n.t("cli.errors.not_in_aro" , cmd: Aro::Mancy::I2097I))
@@ -50,11 +50,11 @@ module CLI
50
50
  Aro::Mancy.game.shuffle
51
51
  when CLI::CMDS[:DECK][:DRAW]
52
52
  Aro::P.say(I18n.t("cli.messages.drawing", name: Aro::Mancy.game.name))
53
- Aro::P.say(I18n.t("cli.messages.drawing_from_dimension", dimension: "#{CLI::Config.ivar(:DIMENSION)}"))
53
+ Aro::P.say(I18n.t("cli.messages.drawing_from_dimension", dimension: "#{Aro::Config.ivar(:DIMENSION)}"))
54
54
  Aro::Mancy.game.draw(
55
55
  is_dt_dimension: Aro::T::is_dev_tarot?,
56
- z_max: CLI::Config.ivar(:Z_MAX).to_i,
57
- z: CLI::Config.ivar(:Z)
56
+ z_max: Aro::Config.ivar(:Z_MAX).to_i,
57
+ z: Aro::Config.ivar(:Z)
58
58
  )
59
59
  when CLI::CMDS[:DECK][:REPLACE]
60
60
  Aro::P.say(I18n.t("cli.messages.replacing_drawn", name: Aro::Mancy.game.name))
@@ -75,6 +75,11 @@ module CLI
75
75
  end
76
76
 
77
77
  Aro::Mancy.game.show(**CLI::shoptions)
78
+ else
79
+ Aro::Db.new
80
+ Aro::Deck.select_deck(
81
+ Aro::Deck.find_by(name: action)
82
+ )
78
83
  end
79
84
  end
80
85
 
data/sys/cli.rb CHANGED
@@ -9,18 +9,17 @@
9
9
  =end
10
10
 
11
11
  module CLI
12
- # init config
13
- CLI::Config.instance
14
-
15
- if CLI::CMDS[:DECK].values.include?(ARGV[0]&.to_sym)
12
+ argv_sanitized = Aos::Os.sanitize_you(ARGV.join(" ")).split(" ")
13
+
14
+ if CLI::CMDS[:DECK].values.include?(argv_sanitized[0]&.to_sym)
16
15
  # enable deck shortcut (skip typing deck while in-game)
17
16
  ARGV0 = :deck
18
- ARGV1 = ARGV[0]&.to_sym
19
- ARGV2 = ARGV[1]&.to_sym
17
+ ARGV1 = argv_sanitized[0]&.to_sym
18
+ ARGV2 = argv_sanitized[1]&.to_sym
20
19
  else
21
20
  # default
22
- ARGV0 = ARGV[0]&.to_sym
23
- ARGV1 = ARGV[1]&.to_sym
24
- ARGV2 = ARGV[2]&.to_sym
21
+ ARGV0 = argv_sanitized[0]&.to_sym
22
+ ARGV1 = argv_sanitized[1]&.to_sym
23
+ ARGV2 = argv_sanitized[2]&.to_sym
25
24
  end
26
25
  end