aro 0.1.6 → 0.1.8

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -5
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +32 -14
  5. data/aro.gemspec +17 -8
  6. data/bin/aos +19 -0
  7. data/bin/aro +24 -24
  8. data/checksums/aro-0.1.6.gem.sha512 +1 -0
  9. data/checksums/aro-0.1.7.gem.sha512 +1 -0
  10. data/checksums/aro-0.1.8.gem.sha512 +1 -0
  11. data/db/migrate/1763374647_create_decks.rb +3 -0
  12. data/db/migrate/1763432541_create_logs.rb +1 -0
  13. data/db/migrate/1765148774_create_yous.rb +19 -0
  14. data/listen.rb +10 -0
  15. data/locale/en.aos.yml +27 -0
  16. data/locale/en.cngelog.yml +5 -0
  17. data/locale/en.usage.yml +55 -38
  18. data/locale/en.yml +47 -15
  19. data/sys/aos/aos.rb +199 -0
  20. data/sys/aos/db.rb +81 -0
  21. data/sys/aos/s.rb +25 -0
  22. data/sys/aos/views/base.rb +139 -0
  23. data/sys/aos/views/dom.rb +45 -0
  24. data/sys/aos/views/games/abpps.rb +21 -0
  25. data/sys/aos/views/games/deck.rb +95 -0
  26. data/sys/aos/views/games/game.rb +24 -0
  27. data/sys/aos/views/games/hbpps.rb +21 -0
  28. data/sys/aos/views/games/shpps.rb +21 -0
  29. data/sys/aos/views/games/vipps.rb +21 -0
  30. data/sys/aos/views/games.rb +19 -0
  31. data/sys/aos/views/know/library.rb +19 -0
  32. data/sys/aos/views/know/temple.rb +19 -0
  33. data/sys/aos/views/know.rb +19 -0
  34. data/sys/aos/views/setup/settings.rb +50 -0
  35. data/sys/aos/views/setup.rb +19 -0
  36. data/sys/aos/views/welcome/waite.rb +19 -0
  37. data/sys/aos/views/welcome/winner.rb +19 -0
  38. data/sys/aos/views/welcome.rb +19 -0
  39. data/sys/aos/you.rb +15 -0
  40. data/sys/aro/d.rb +25 -0
  41. data/sys/aro/db.rb +89 -0
  42. data/sys/aro/mancy.rb +114 -0
  43. data/sys/aro/p.rb +25 -0
  44. data/sys/aro/r.rb +20 -0
  45. data/sys/aro/v.rb +24 -0
  46. data/sys/aro.rb +16 -0
  47. data/sys/cli/config.rb +582 -0
  48. data/sys/cli/constants.rb +56 -0
  49. data/{bin → sys}/cli/create.rb +6 -4
  50. data/sys/cli/deck.rb +98 -0
  51. data/sys/cli/dom.rb +37 -0
  52. data/sys/cli/nterface.rb +31 -0
  53. data/{bin → sys}/cli/usage.rb +1 -1
  54. data/sys/cli.rb +26 -0
  55. data/sys/dom/d.rb +101 -0
  56. data/sys/dom/dom.rb +161 -0
  57. data/sys/dom/p.rb +17 -0
  58. data/sys/models/deck.rb +218 -0
  59. data/sys/models/log.rb +20 -0
  60. data/sys/reiquire.rb +45 -0
  61. data/sys/shr/prompt.rb +37 -0
  62. data/sys/shr/t.rb +60 -0
  63. data/sys/shr/version.rb +16 -0
  64. data/tasks/make.rake +2 -2
  65. metadata +78 -22
  66. data/.release +0 -20
  67. data/bin/cli/config.rb +0 -231
  68. data/bin/cli/constants.rb +0 -39
  69. data/bin/cli/deck.rb +0 -100
  70. data/bin/cli.rb +0 -39
  71. data/lib/aro/c.rb +0 -32
  72. data/lib/aro/create.rb +0 -29
  73. data/lib/aro/db.rb +0 -107
  74. data/lib/aro/environment.rb +0 -3
  75. data/lib/aro/i18n.rb +0 -12
  76. data/lib/aro/prompt.rb +0 -25
  77. data/lib/aro/version.rb +0 -4
  78. data/lib/aro.rb +0 -45
  79. data/lib/models/deck.rb +0 -294
  80. data/lib/models/log.rb +0 -12
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/games.rb
4
+
5
+ the games view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Games < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/know/library.rb
4
+
5
+ the library view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Library < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/know/temple.rb
4
+
5
+ the temple view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Temple < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/know.rb
4
+
5
+ the know view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Know < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,50 @@
1
+ =begin
2
+
3
+ views/settings/settings.rb
4
+
5
+ the settings view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Settings < Aos::Vi::Base
16
+ def self.show(model)
17
+ just_access = Aro::Mancy::NUMERALS[:VI]
18
+ just_key = Aro::Mancy::NUMERALS[:XXI]
19
+ just_value = Aro::Mancy::NUMERALS[:VI]
20
+ bullet = ":"
21
+
22
+ # print CLI::Config::DEF
23
+ lines = []
24
+ lines << "CLI::Config::DEF:"
25
+ lines << "#{"access".rjust(just_access)}#{bullet} #{"variable_name".ljust(just_key)}=value"
26
+ lines << ""
27
+ CLI::Config::DEF.each{|k, deff|
28
+ val = nil
29
+
30
+ if deff[:access] == CLI::Config::DEF_ACCESS[:READ]
31
+ val = CLI::Config.ovar(k)
32
+ else
33
+ val = CLI::Config.ivar(k)
34
+ k = CLI::Config.ivar_k(k)
35
+ end
36
+
37
+ lines << "#{deff[:access].to_s.rjust(just_access)}#{bullet} #{k.to_s.ljust(just_key)}=#{val}"
38
+ }
39
+
40
+ # print config commands
41
+ lines << ""
42
+ lines << I18n.t("aos.constants.commands")
43
+ lines += lines_for_cmd(Aos::Os::CMDS[:CONFIG])
44
+
45
+ # draw output
46
+ draw(lines, model)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/setup.rb
4
+
5
+ the setup view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Setup < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/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 Vi
15
+ class Waite < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/welcome/winner.rb
4
+
5
+ the welcome winner view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Winner < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ =begin
2
+
3
+ views/welcome.rb
4
+
5
+ the welcome view.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"./base".to_s
12
+
13
+ module Aos
14
+ module Vi
15
+ class Welcome < Aos::Vi::Base
16
+
17
+ end
18
+ end
19
+ end
data/sys/aos/you.rb ADDED
@@ -0,0 +1,15 @@
1
+ =begin
2
+
3
+ you.rb
4
+
5
+ aos you object.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ module Aos
12
+ class You < ActiveRecord::Base
13
+
14
+ end
15
+ end
data/sys/aro/d.rb ADDED
@@ -0,0 +1,25 @@
1
+ =begin
2
+
3
+ d.rb
4
+
5
+ d logger for i2097i.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../shr/prompt".to_s
12
+
13
+ module Aro
14
+ class D < Aro::Prompt
15
+ def self.say(message)
16
+ return unless Aro::D.should_print?
17
+ Aro::P::p.say(">[#{Aro::Mancy::I2097I}]>: #{message}\n")
18
+ end
19
+
20
+ def self.should_print?
21
+ Aro::Mancy::ARO_ENV_DEBUG_MODES[Aro::Mancy::O].to_s == ENV[:ARO_ENV.to_s]
22
+ end
23
+ end
24
+ end
25
+
data/sys/aro/db.rb ADDED
@@ -0,0 +1,89 @@
1
+ =begin
2
+
3
+ db.rb
4
+
5
+ database for aro room.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ module Aro
12
+ class Db
13
+ DATABASE_YML = :"database.yml"
14
+ SQL_FILE = :"database.sql"
15
+ SCHEMA_FILE = :"schema.rb"
16
+ MIGRATIONS_DIR = :"db/migrate"
17
+
18
+ def initialize
19
+ # ActiveRecord::Base.logger = Logger.new(STDOUT)
20
+ unless Aro::Mancy.is_aro_space?
21
+ Aro::P.say(I18n.t("cli.errors.not_in_aro" , cmd: Aro::Mancy::I2097I))
22
+ return
23
+ end
24
+
25
+ setup_local_aro
26
+ end
27
+
28
+ def connect(name)
29
+ ActiveRecord::Base.establish_connection(config)
30
+ end
31
+
32
+ def config
33
+ @config ||= YAML.load_file(db_config_filepath)
34
+ end
35
+
36
+ def self.base_aro_dir
37
+ base_aro_file = Aro::Mancy::ARO_FILE.to_s
38
+ CLI::Config.is_test? ? "#{base_aro_file}_test" : base_aro_file
39
+ end
40
+
41
+ def db_config_filepath
42
+ File.join(Aro::Db.base_aro_dir, Aro::Db::DATABASE_YML.to_s)
43
+ end
44
+
45
+ def setup_local_aro
46
+ name = Aro::Mancy.is_aro_space? ? File.read(Aro::Mancy::NAME_FILE.to_s).strip : nil
47
+ return if name.nil?
48
+
49
+ # create local .aro/ directory
50
+ unless File.exist?(Aro::Db.base_aro_dir)
51
+ FileUtils.mkdir(Aro::Db.base_aro_dir)
52
+ end
53
+
54
+ unless File.exist?(db_config_filepath)
55
+ # create database config yaml file
56
+ c = {
57
+ adapter: :sqlite3.to_s,
58
+ database: File.join(Aro::Db.base_aro_dir, Aro::Db::SQL_FILE.to_s),
59
+ username: name,
60
+ password: name
61
+ }.to_yaml
62
+ File.open(db_config_filepath, "w") do |file|
63
+ file.write(c)
64
+ end
65
+ end
66
+
67
+ connect(name)
68
+ migrate(name)
69
+ end
70
+
71
+ def migrate(name)
72
+ local_migrate_dir = File.join(Aro::Db.base_aro_dir, Aro::Db::MIGRATIONS_DIR.to_s)
73
+ unless Dir.exist?(local_migrate_dir)
74
+ gem_dir = Dir[Gem.loaded_specs[:aro.to_s]&.full_gem_path || '.'].first
75
+ FileUtils.cp_r(File.join(gem_dir, "db"), Aro::Db::base_aro_dir)
76
+ end
77
+
78
+ migration_version = Dir["#{local_migrate_dir}/*.rb"].map{|n|
79
+ Pathname.new(n).basename.to_s.split("_")[0].to_i
80
+ }.max
81
+ ActiveRecord::MigrationContext.new(local_migrate_dir).migrate(migration_version)
82
+
83
+ filename = File.join(Aro::Db.base_aro_dir, Aro::Db::SCHEMA_FILE.to_s)
84
+ File.open(filename, "w+") do |f|
85
+ ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection_pool, f)
86
+ end
87
+ end
88
+ end
89
+ end
data/sys/aro/mancy.rb ADDED
@@ -0,0 +1,114 @@
1
+ =begin
2
+
3
+ aro.rb
4
+
5
+ aro and mancy.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ module Aro
12
+ class Mancy
13
+ include Singleton
14
+
15
+ attr_accessor :game
16
+
17
+ O = 0
18
+ S = 1
19
+ OS = 2
20
+ E = 3
21
+ N = 4
22
+ PS1 = Aro::Mancy.name
23
+ NAME_FILE = :".name"
24
+ ARO_FILE = :".aro"
25
+ I2097I = :i2097i
26
+ YES = :aroyes
27
+ ALL = :all
28
+
29
+ ARO_ENV_DEBUG_MODES = [:development, :test]
30
+
31
+ NUMERALS = {
32
+ O: 0,
33
+ I: 1,
34
+ II: 2,
35
+ III: 3,
36
+ IV: 4,
37
+ V: 5,
38
+ VI: 6,
39
+ VII: 7,
40
+ VIII: 8,
41
+ IX: 9,
42
+ X: 10,
43
+ XI: 11,
44
+ XII: 12,
45
+ XIII: 13,
46
+ XIV: 14,
47
+ XV: 15,
48
+ XVI: 16,
49
+ XVII: 17,
50
+ XVIII: 18,
51
+ XIX: 19,
52
+ XX: 20,
53
+ XXI: 21,
54
+ XXII: 22,
55
+ XXXVII: 37,
56
+ XLII: 42,
57
+ C: 100,
58
+ MMXCVII: Aro::Mancy::I2097I[Aro::Mancy::S..Aro::Mancy::N].to_i,
59
+ }
60
+
61
+ def initialize
62
+ if Aro::Mancy.is_aro_space? && Aro::Mancy.is_initialized?
63
+ Aro::Mancy.init
64
+ self.game = Aro::Deck.current_deck
65
+ end
66
+ end
67
+
68
+ def self.game
69
+ Aro::Mancy.instance.game
70
+ end
71
+
72
+ def self.create(name)
73
+ return false if Aro::Mancy.is_aro_space? || name.nil?
74
+
75
+ # explicitly only allow String/Symbol types for name
76
+ return false unless name.kind_of?(String) || name.kind_of?(Symbol)
77
+ name = name.to_s.strip
78
+
79
+ # create the new aro directory and database
80
+ if !Dir.exist?(name)
81
+ Aro::P.say(I18n.t("cli.messages.no_decks"))
82
+ FileUtils.mkdir(name)
83
+ else
84
+ return false
85
+ end
86
+
87
+ # create name file
88
+ File.open(File.join(name, Aro::Mancy::NAME_FILE.to_s), "w+") do |file|
89
+ file.write(name)
90
+ end
91
+
92
+ Dir.chdir(name) do
93
+ Aro::Mancy.init
94
+ end
95
+ return true
96
+ end
97
+
98
+ def self.init
99
+ Aro::Db.new
100
+ end
101
+
102
+ def self.start
103
+ Aos.start(:aro)
104
+ end
105
+
106
+ def self.is_initialized?
107
+ Dir.exist?(Aro::Db.base_aro_dir)
108
+ end
109
+
110
+ def self.is_aro_space?
111
+ File.exist?(Aro::Mancy::NAME_FILE.to_s)
112
+ end
113
+ end
114
+ end
data/sys/aro/p.rb ADDED
@@ -0,0 +1,25 @@
1
+ =begin
2
+
3
+ p.rb
4
+
5
+ p logger for aro space.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../shr/prompt".to_s
12
+ require_relative :"./r".to_s
13
+
14
+ module Aro
15
+ class P < Aro::Prompt
16
+ def self.say(message)
17
+ if !Aro::Dom.in_arodom? && !Aro::T.is_dev_tarot?
18
+ Aro::R.say(message)
19
+ else
20
+ Aro::P::p.say(">[#{Aro::Mancy::PS1}]>: #{message}")
21
+ end
22
+ end
23
+ end
24
+ end
25
+
data/sys/aro/r.rb ADDED
@@ -0,0 +1,20 @@
1
+ =begin
2
+
3
+ r.rb
4
+
5
+ r logger for i2097i.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :"../shr/prompt".to_s
12
+
13
+ module Aro
14
+ class R < Aro::Prompt
15
+ def self.say(message)
16
+ Aro::P::p.say(">[#{Aro::T::RUBY_FACOT}]>: #{message}\n")
17
+ end
18
+ end
19
+ end
20
+
data/sys/aro/v.rb ADDED
@@ -0,0 +1,24 @@
1
+ =begin
2
+
3
+ v.rb
4
+
5
+ v logger for i2097i.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :d.to_s
12
+
13
+ module Aro
14
+ class V < Aro::D
15
+ def self.say(message)
16
+ return unless Aro::V.should_print?
17
+ Aro::P::p.say(">[VERBOSE]>: #{message}\n")
18
+ end
19
+
20
+ def self.should_print?
21
+ CLI::Config.ivar(:VERBOSE).to_s == CLI::Config::BOOLS[:TRUE].to_s && super
22
+ end
23
+ end
24
+ end
data/sys/aro.rb ADDED
@@ -0,0 +1,16 @@
1
+ =begin
2
+
3
+ aro.rb
4
+
5
+ aro.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ require_relative :reiquire.to_s
12
+ Reiquire::aro
13
+
14
+ module Aro
15
+
16
+ end