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.
- checksums.yaml +4 -4
- data/.gitignore +5 -5
- data/.ruby-version +1 -1
- data/Gemfile.lock +32 -14
- data/aro.gemspec +17 -8
- data/bin/aos +19 -0
- data/bin/aro +24 -24
- data/checksums/aro-0.1.6.gem.sha512 +1 -0
- data/checksums/aro-0.1.7.gem.sha512 +1 -0
- data/checksums/aro-0.1.8.gem.sha512 +1 -0
- data/db/migrate/1763374647_create_decks.rb +3 -0
- data/db/migrate/1763432541_create_logs.rb +1 -0
- data/db/migrate/1765148774_create_yous.rb +19 -0
- data/listen.rb +10 -0
- data/locale/en.aos.yml +27 -0
- data/locale/en.cngelog.yml +5 -0
- data/locale/en.usage.yml +55 -38
- data/locale/en.yml +47 -15
- data/sys/aos/aos.rb +199 -0
- data/sys/aos/db.rb +81 -0
- data/sys/aos/s.rb +25 -0
- data/sys/aos/views/base.rb +139 -0
- data/sys/aos/views/dom.rb +45 -0
- data/sys/aos/views/games/abpps.rb +21 -0
- data/sys/aos/views/games/deck.rb +95 -0
- data/sys/aos/views/games/game.rb +24 -0
- data/sys/aos/views/games/hbpps.rb +21 -0
- data/sys/aos/views/games/shpps.rb +21 -0
- data/sys/aos/views/games/vipps.rb +21 -0
- data/sys/aos/views/games.rb +19 -0
- data/sys/aos/views/know/library.rb +19 -0
- data/sys/aos/views/know/temple.rb +19 -0
- data/sys/aos/views/know.rb +19 -0
- data/sys/aos/views/setup/settings.rb +50 -0
- data/sys/aos/views/setup.rb +19 -0
- data/sys/aos/views/welcome/waite.rb +19 -0
- data/sys/aos/views/welcome/winner.rb +19 -0
- data/sys/aos/views/welcome.rb +19 -0
- data/sys/aos/you.rb +15 -0
- data/sys/aro/d.rb +25 -0
- data/sys/aro/db.rb +89 -0
- data/sys/aro/mancy.rb +114 -0
- data/sys/aro/p.rb +25 -0
- data/sys/aro/r.rb +20 -0
- data/sys/aro/v.rb +24 -0
- data/sys/aro.rb +16 -0
- data/sys/cli/config.rb +582 -0
- data/sys/cli/constants.rb +56 -0
- data/{bin → sys}/cli/create.rb +6 -4
- data/sys/cli/deck.rb +98 -0
- data/sys/cli/dom.rb +37 -0
- data/sys/cli/nterface.rb +31 -0
- data/{bin → sys}/cli/usage.rb +1 -1
- data/sys/cli.rb +26 -0
- data/sys/dom/d.rb +101 -0
- data/sys/dom/dom.rb +161 -0
- data/sys/dom/p.rb +17 -0
- data/sys/models/deck.rb +218 -0
- data/sys/models/log.rb +20 -0
- data/sys/reiquire.rb +45 -0
- data/sys/shr/prompt.rb +37 -0
- data/sys/shr/t.rb +60 -0
- data/sys/shr/version.rb +16 -0
- data/tasks/make.rake +2 -2
- metadata +78 -22
- data/.release +0 -20
- data/bin/cli/config.rb +0 -231
- data/bin/cli/constants.rb +0 -39
- data/bin/cli/deck.rb +0 -100
- data/bin/cli.rb +0 -39
- data/lib/aro/c.rb +0 -32
- data/lib/aro/create.rb +0 -29
- data/lib/aro/db.rb +0 -107
- data/lib/aro/environment.rb +0 -3
- data/lib/aro/i18n.rb +0 -12
- data/lib/aro/prompt.rb +0 -25
- data/lib/aro/version.rb +0 -4
- data/lib/aro.rb +0 -45
- data/lib/models/deck.rb +0 -294
- data/lib/models/log.rb +0 -12
data/sys/models/log.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
log.rb
|
|
4
|
+
|
|
5
|
+
log object.
|
|
6
|
+
|
|
7
|
+
by i2097i
|
|
8
|
+
|
|
9
|
+
=end
|
|
10
|
+
|
|
11
|
+
require_relative :"./deck".to_s
|
|
12
|
+
|
|
13
|
+
class Aro::Log < ActiveRecord::Base
|
|
14
|
+
belongs_to :deck, :class_name => :"#{Aro::Deck.name}".to_s
|
|
15
|
+
|
|
16
|
+
ORDERING = {
|
|
17
|
+
ASC: :asc,
|
|
18
|
+
DESC: :desc
|
|
19
|
+
}
|
|
20
|
+
end
|
data/sys/reiquire.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
reiquire.rb
|
|
4
|
+
|
|
5
|
+
ruby require helpers.
|
|
6
|
+
|
|
7
|
+
by i2097i
|
|
8
|
+
|
|
9
|
+
=end
|
|
10
|
+
|
|
11
|
+
# dependencies
|
|
12
|
+
require :active_record.to_s
|
|
13
|
+
require :"active_record/schema_dumper".to_s
|
|
14
|
+
require :base64.to_s
|
|
15
|
+
require :fileutils.to_s
|
|
16
|
+
require :i18n.to_s
|
|
17
|
+
require :"tty-prompt".to_s
|
|
18
|
+
require :yaml.to_s
|
|
19
|
+
|
|
20
|
+
module Reiquire
|
|
21
|
+
def self.aro
|
|
22
|
+
locale_path = Gem.loaded_specs[:aro.to_s]&.full_gem_path
|
|
23
|
+
# if CLI::Config.is_test?
|
|
24
|
+
# locale_path = Dir.pwd
|
|
25
|
+
# end
|
|
26
|
+
|
|
27
|
+
I18n.load_path += Dir["#{locale_path}/locale/*.yml"]
|
|
28
|
+
I18n.available_locales = [:en]
|
|
29
|
+
I18n.default_locale = :en
|
|
30
|
+
|
|
31
|
+
# require all aro folders
|
|
32
|
+
Reiquire::requires [:aro, :cli, :dom, :models, :shr, :views, :aos]
|
|
33
|
+
|
|
34
|
+
# require cli module
|
|
35
|
+
require_relative :"./cli".to_s
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.requires(dirs)
|
|
39
|
+
dirs.each{|d|
|
|
40
|
+
Dir[
|
|
41
|
+
File.join(__dir__, d.to_s, :"**/**/*.rb".to_s)
|
|
42
|
+
].each { |f| require f}
|
|
43
|
+
}
|
|
44
|
+
end
|
|
45
|
+
end
|
data/sys/shr/prompt.rb
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
prompt.rb
|
|
4
|
+
|
|
5
|
+
base logger for aro.
|
|
6
|
+
|
|
7
|
+
by i2097i
|
|
8
|
+
|
|
9
|
+
=end
|
|
10
|
+
|
|
11
|
+
module Aro
|
|
12
|
+
class Prompt
|
|
13
|
+
include Singleton
|
|
14
|
+
|
|
15
|
+
attr_accessor :prompt
|
|
16
|
+
|
|
17
|
+
def initialize
|
|
18
|
+
self.prompt = TTY::Prompt.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.p
|
|
22
|
+
Aro::Prompt.instance.prompt
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.should_print?
|
|
26
|
+
CLI::Config::BOOLS[:TRUE]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.say(message)
|
|
30
|
+
raise :override_me.to_s
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.less(message)
|
|
34
|
+
IO.popen("less -X", "w") { |f| f.puts(message) }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
data/sys/shr/t.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
|
|
3
|
+
t.rb
|
|
4
|
+
|
|
5
|
+
tarot.
|
|
6
|
+
|
|
7
|
+
by i2097i
|
|
8
|
+
|
|
9
|
+
=end
|
|
10
|
+
|
|
11
|
+
module Aro
|
|
12
|
+
module T
|
|
13
|
+
DEV_TAROT_FILE = :"/dev/tarot"
|
|
14
|
+
|
|
15
|
+
RUBY_FACOT = :"Ruby::Facot".to_s
|
|
16
|
+
|
|
17
|
+
def self.is_dev_tarot?
|
|
18
|
+
CLI::Config.ivar(:DIMENSION)&.to_sym == CLI::Config::DMS[:DEV_TAROT]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# read dev_tarot
|
|
22
|
+
def self.read_dev_tarot
|
|
23
|
+
dt = nil
|
|
24
|
+
return dt unless File.exist?(Aro::T::DEV_TAROT_FILE.to_s)
|
|
25
|
+
|
|
26
|
+
File.open(Aro::T::DEV_TAROT_FILE.to_s, "r"){|dtf| dt = dtf.read(Aro::Mancy::N)}
|
|
27
|
+
|
|
28
|
+
# VERY IMPORTANT!
|
|
29
|
+
Aro::D.say(I18n.t("cli.very_important", dev_tarot: dt))
|
|
30
|
+
return dt
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# summon ruby_facot
|
|
34
|
+
def self.summon_ruby_facot(cards_arr)
|
|
35
|
+
Aro::P.say(I18n.t("cli.messages.ruby_facot_random"))
|
|
36
|
+
ruby_facot = cards_arr.sample.split("")
|
|
37
|
+
|
|
38
|
+
# get orientation
|
|
39
|
+
ruby_facot_str = ["+","-"].sample
|
|
40
|
+
|
|
41
|
+
# get suite
|
|
42
|
+
ruby_facot_str += ruby_facot[1]
|
|
43
|
+
|
|
44
|
+
# calculate the sym
|
|
45
|
+
symm = ruby_facot.select{|c|
|
|
46
|
+
# loops through the characters in ruby_facot
|
|
47
|
+
# return all characters not matching:
|
|
48
|
+
# => character[0]: orientation
|
|
49
|
+
# => character[1]: suite
|
|
50
|
+
|
|
51
|
+
# the first two characters in the dev_tarot format designate the
|
|
52
|
+
!ruby_facot.first(Aro::Mancy::OS).include?(c)
|
|
53
|
+
}.join("").to_sym
|
|
54
|
+
ruby_facot_str += Aro::Mancy::NUMERALS[symm].to_s
|
|
55
|
+
|
|
56
|
+
# return ruby_facot_str
|
|
57
|
+
ruby_facot_str
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
data/sys/shr/version.rb
ADDED
data/tasks/make.rake
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aro
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- i2097i
|
|
@@ -69,6 +69,26 @@ dependencies:
|
|
|
69
69
|
- - ">="
|
|
70
70
|
- !ruby/object:Gem::Version
|
|
71
71
|
version: 3.13.2
|
|
72
|
+
- !ruby/object:Gem::Dependency
|
|
73
|
+
name: listen
|
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
|
75
|
+
requirements:
|
|
76
|
+
- - "~>"
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: '3.9'
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 3.9.0
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '3.9'
|
|
89
|
+
- - ">="
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: 3.9.0
|
|
72
92
|
- !ruby/object:Gem::Dependency
|
|
73
93
|
name: i18n
|
|
74
94
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -153,12 +173,12 @@ description: a cli for tarot.
|
|
|
153
173
|
email:
|
|
154
174
|
- i2097i@hotmail.com
|
|
155
175
|
executables:
|
|
176
|
+
- aos
|
|
156
177
|
- aro
|
|
157
178
|
extensions: []
|
|
158
179
|
extra_rdoc_files: []
|
|
159
180
|
files:
|
|
160
181
|
- ".gitignore"
|
|
161
|
-
- ".release"
|
|
162
182
|
- ".ruby-version"
|
|
163
183
|
- Gemfile
|
|
164
184
|
- Gemfile.lock
|
|
@@ -166,30 +186,67 @@ files:
|
|
|
166
186
|
- README.md
|
|
167
187
|
- Rakefile
|
|
168
188
|
- aro.gemspec
|
|
189
|
+
- bin/aos
|
|
169
190
|
- bin/aro
|
|
170
|
-
- bin/cli.rb
|
|
171
|
-
- bin/cli/config.rb
|
|
172
|
-
- bin/cli/constants.rb
|
|
173
|
-
- bin/cli/create.rb
|
|
174
|
-
- bin/cli/deck.rb
|
|
175
|
-
- bin/cli/usage.rb
|
|
176
191
|
- checksums/aro-0.1.4.gem.sha512
|
|
177
192
|
- checksums/aro-0.1.5.gem.sha512
|
|
193
|
+
- checksums/aro-0.1.6.gem.sha512
|
|
194
|
+
- checksums/aro-0.1.7.gem.sha512
|
|
195
|
+
- checksums/aro-0.1.8.gem.sha512
|
|
178
196
|
- db/migrate/1763374647_create_decks.rb
|
|
179
197
|
- db/migrate/1763432541_create_logs.rb
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
- lib/aro/db.rb
|
|
184
|
-
- lib/aro/environment.rb
|
|
185
|
-
- lib/aro/i18n.rb
|
|
186
|
-
- lib/aro/prompt.rb
|
|
187
|
-
- lib/aro/version.rb
|
|
188
|
-
- lib/models/deck.rb
|
|
189
|
-
- lib/models/log.rb
|
|
198
|
+
- db/migrate/1765148774_create_yous.rb
|
|
199
|
+
- listen.rb
|
|
200
|
+
- locale/en.aos.yml
|
|
190
201
|
- locale/en.cards.yml
|
|
202
|
+
- locale/en.cngelog.yml
|
|
191
203
|
- locale/en.usage.yml
|
|
192
204
|
- locale/en.yml
|
|
205
|
+
- sys/aos/aos.rb
|
|
206
|
+
- sys/aos/db.rb
|
|
207
|
+
- sys/aos/s.rb
|
|
208
|
+
- sys/aos/views/base.rb
|
|
209
|
+
- sys/aos/views/dom.rb
|
|
210
|
+
- sys/aos/views/games.rb
|
|
211
|
+
- sys/aos/views/games/abpps.rb
|
|
212
|
+
- sys/aos/views/games/deck.rb
|
|
213
|
+
- sys/aos/views/games/game.rb
|
|
214
|
+
- sys/aos/views/games/hbpps.rb
|
|
215
|
+
- sys/aos/views/games/shpps.rb
|
|
216
|
+
- sys/aos/views/games/vipps.rb
|
|
217
|
+
- sys/aos/views/know.rb
|
|
218
|
+
- sys/aos/views/know/library.rb
|
|
219
|
+
- sys/aos/views/know/temple.rb
|
|
220
|
+
- sys/aos/views/setup.rb
|
|
221
|
+
- sys/aos/views/setup/settings.rb
|
|
222
|
+
- sys/aos/views/welcome.rb
|
|
223
|
+
- sys/aos/views/welcome/waite.rb
|
|
224
|
+
- sys/aos/views/welcome/winner.rb
|
|
225
|
+
- sys/aos/you.rb
|
|
226
|
+
- sys/aro.rb
|
|
227
|
+
- sys/aro/d.rb
|
|
228
|
+
- sys/aro/db.rb
|
|
229
|
+
- sys/aro/mancy.rb
|
|
230
|
+
- sys/aro/p.rb
|
|
231
|
+
- sys/aro/r.rb
|
|
232
|
+
- sys/aro/v.rb
|
|
233
|
+
- sys/cli.rb
|
|
234
|
+
- sys/cli/config.rb
|
|
235
|
+
- sys/cli/constants.rb
|
|
236
|
+
- sys/cli/create.rb
|
|
237
|
+
- sys/cli/deck.rb
|
|
238
|
+
- sys/cli/dom.rb
|
|
239
|
+
- sys/cli/nterface.rb
|
|
240
|
+
- sys/cli/usage.rb
|
|
241
|
+
- sys/dom/d.rb
|
|
242
|
+
- sys/dom/dom.rb
|
|
243
|
+
- sys/dom/p.rb
|
|
244
|
+
- sys/models/deck.rb
|
|
245
|
+
- sys/models/log.rb
|
|
246
|
+
- sys/reiquire.rb
|
|
247
|
+
- sys/shr/prompt.rb
|
|
248
|
+
- sys/shr/t.rb
|
|
249
|
+
- sys/shr/version.rb
|
|
193
250
|
- tasks/console.rake
|
|
194
251
|
- tasks/make.rake
|
|
195
252
|
homepage: https://github.com/i2097i/aro
|
|
@@ -198,13 +255,12 @@ licenses:
|
|
|
198
255
|
metadata: {}
|
|
199
256
|
rdoc_options: []
|
|
200
257
|
require_paths:
|
|
201
|
-
-
|
|
202
|
-
- bin/cli
|
|
258
|
+
- sys
|
|
203
259
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
260
|
requirements:
|
|
205
261
|
- - ">="
|
|
206
262
|
- !ruby/object:Gem::Version
|
|
207
|
-
version:
|
|
263
|
+
version: 3.4.7
|
|
208
264
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
265
|
requirements:
|
|
210
266
|
- - ">="
|
|
@@ -213,5 +269,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
213
269
|
requirements: []
|
|
214
270
|
rubygems_version: 3.6.9
|
|
215
271
|
specification_version: 4
|
|
216
|
-
summary:
|
|
272
|
+
summary: this versioncreated aos
|
|
217
273
|
test_files: []
|
data/.release
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# helper script for consistency when doing releases
|
|
2
|
-
|
|
3
|
-
# start on latest develop branch
|
|
4
|
-
|
|
5
|
-
# 1) update version and release notes (manually)
|
|
6
|
-
# 2) test and build
|
|
7
|
-
# $ rake make && gem build
|
|
8
|
-
# 3) build checksum
|
|
9
|
-
# $ rake build:checksum
|
|
10
|
-
# 4) create a commit
|
|
11
|
-
# 5) generate tag
|
|
12
|
-
# tag message format:
|
|
13
|
-
# vx.x.x
|
|
14
|
-
# <release_note_text>
|
|
15
|
-
# $ gitaga vx.x.x && gutaga vx.x.x
|
|
16
|
-
# 6) push develop
|
|
17
|
-
# 7) pull request develop -> master & merge
|
|
18
|
-
# 8) checkout and pull master
|
|
19
|
-
# 9) publish to rubygems (warning, must version up after this)
|
|
20
|
-
# $ gem push pkg/aro-x.x.x.gem
|
data/bin/cli/config.rb
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
module CLI
|
|
2
|
-
class Config
|
|
3
|
-
include Singleton
|
|
4
|
-
|
|
5
|
-
VAR_PREFIX = :ARO_CONFIG_
|
|
6
|
-
|
|
7
|
-
CONFIG_FILE = :".config".to_s
|
|
8
|
-
CONFIG_FILE_PATH = "#{Aro::Db.base_aro_dir(Aro::Db.get_name_from_namefile)}/#{CLI::Config::CONFIG_FILE}"
|
|
9
|
-
|
|
10
|
-
INTS = {
|
|
11
|
-
O: 0,
|
|
12
|
-
I: 1,
|
|
13
|
-
VII: 7,
|
|
14
|
-
XXII: 22,
|
|
15
|
-
MMXCVII: Aro::Mancy::I2097I[1..4].to_i,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
# possible formats
|
|
19
|
-
#
|
|
20
|
-
# example usage:
|
|
21
|
-
# CLI::Config::FORMATS[:TEXT]
|
|
22
|
-
FORMATS = {
|
|
23
|
-
TEXT: :text,
|
|
24
|
-
JSON: :json,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
# possible dimensions
|
|
28
|
-
#
|
|
29
|
-
# example usage:
|
|
30
|
-
# CLI::Config::DMS[:DEV_TAROT]
|
|
31
|
-
DMS = {
|
|
32
|
-
DEV_TAROT: :dev_tarot,
|
|
33
|
-
RUBY_FACOT: :ruby_facot,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
# types used in definition
|
|
37
|
-
#
|
|
38
|
-
# example usage:
|
|
39
|
-
# CLI::Config::DEF_TYPES[:INT][:validator].call(unvalid, CLI::Config::DEF[:DIMENSION])
|
|
40
|
-
DEF_TYPES = {
|
|
41
|
-
INT: {
|
|
42
|
-
name: :int,
|
|
43
|
-
description: I18n.t("cli.config.type_int_description"),
|
|
44
|
-
validator: Proc.new{|unvalid, deff, key|
|
|
45
|
-
CLI::Config.def_valid?(deff, key) &&
|
|
46
|
-
CLI::Config.int_valid?(unvalid) &&
|
|
47
|
-
unvalid.to_i <= deff[:min] &&
|
|
48
|
-
unvalid.to_i >= deff[:max]
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
VALUES: {
|
|
52
|
-
name: :values,
|
|
53
|
-
description: I18n.t("cli.config.type_values_description"),
|
|
54
|
-
validator: Proc.new{|unvalid, deff, key|
|
|
55
|
-
CLI::Config.def_valid?(deff, key) &&
|
|
56
|
-
deff[:possible_values].keys.include?(unvalid&.to_sym)
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
# adapts I18n translations to generate bash environment vars.
|
|
62
|
-
#
|
|
63
|
-
# example usage:
|
|
64
|
-
# CLI::Config::DEF[:Z_MAX]
|
|
65
|
-
DEF = {
|
|
66
|
-
FORMAT: {
|
|
67
|
-
type: :values,
|
|
68
|
-
description: I18n.t(
|
|
69
|
-
"cli.config.format_description",
|
|
70
|
-
possible_values: CLI::Config::FORMATS.values.join(", ")
|
|
71
|
-
),
|
|
72
|
-
value: :text,
|
|
73
|
-
possible_values: {
|
|
74
|
-
text: I18n.t("cli.config.text_format_description"),
|
|
75
|
-
json: I18n.t("cli.config.json_format_description")
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
DIMENSION: {
|
|
79
|
-
type: :values,
|
|
80
|
-
description: I18n.t(
|
|
81
|
-
"cli.config.dimension_description",
|
|
82
|
-
possible_values: CLI::Config::DMS.values.join(", ")
|
|
83
|
-
),
|
|
84
|
-
value: :dev_tarot,
|
|
85
|
-
possible_values: {
|
|
86
|
-
dev_tarot: I18n.t("cli.config.dimension_dev_tarot_description"),
|
|
87
|
-
ruby_facot: I18n.t("cli.config.dimension_ruby_facot_description"),
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
# not implemented. replace Aro::Deck::DRAW_COUNT with this
|
|
91
|
-
# DRAW_COUNT: {
|
|
92
|
-
# type: :int,
|
|
93
|
-
# description: I18n.t(
|
|
94
|
-
# "cli.config.draw_count_description",
|
|
95
|
-
# min: CLI::Config::INTS[:I],
|
|
96
|
-
# max: CLI::Config::INTS[:XXII],
|
|
97
|
-
# ),
|
|
98
|
-
# value: CLI::Config::INTS[:VII],
|
|
99
|
-
# min: CLI::Config::INTS[:I],
|
|
100
|
-
# max: CLI::Config::INTS[:XXII],
|
|
101
|
-
# },
|
|
102
|
-
Z: {
|
|
103
|
-
type: :int,
|
|
104
|
-
description: I18n.t(
|
|
105
|
-
"cli.config.z_description",
|
|
106
|
-
min: CLI::Config::INTS[:I],
|
|
107
|
-
max: CLI::Config::INTS[:MMXCVII],
|
|
108
|
-
),
|
|
109
|
-
value: CLI::Config::INTS[:I],
|
|
110
|
-
min: CLI::Config::INTS[:I],
|
|
111
|
-
max: CLI::Config::INTS[:MMXCVII],
|
|
112
|
-
},
|
|
113
|
-
Z_MAX: {
|
|
114
|
-
type: :int,
|
|
115
|
-
description: I18n.t(
|
|
116
|
-
"cli.config.z_max_description",
|
|
117
|
-
min: CLI::Config::INTS[:I],
|
|
118
|
-
max: CLI::Config::INTS[:XXII],
|
|
119
|
-
),
|
|
120
|
-
value: CLI::Config::INTS[:VII],
|
|
121
|
-
min: CLI::Config::INTS[:I],
|
|
122
|
-
max: CLI::Config::INTS[:XXII],
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
# ...
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
def generate_config
|
|
129
|
-
# todo: localize generated config text
|
|
130
|
-
Aro::P.say(I18n.t("cli.config.generating_default_config", name: CLI::Config::CONFIG_FILE_PATH))
|
|
131
|
-
File.open(CLI::Config::CONFIG_FILE_PATH, "w+") do |file|
|
|
132
|
-
file.write("# #{Aro::Mancy::PS1} configuration file.\n")
|
|
133
|
-
file.write("# this file was auto generated by the aro cli.\n")
|
|
134
|
-
Aro::Mancy::OS.times do
|
|
135
|
-
file.write("#\n")
|
|
136
|
-
end
|
|
137
|
-
file.write("# CLI::Config::DEF_TYPES\n")
|
|
138
|
-
file.write("# describes the possible types of variables.\n")
|
|
139
|
-
CLI::Config::DEF_TYPES.each{|k, v|
|
|
140
|
-
file.write("# #{k}: #{v[:description]}\n")
|
|
141
|
-
}
|
|
142
|
-
Aro::Mancy::OS.times do
|
|
143
|
-
file.write("#\n")
|
|
144
|
-
end
|
|
145
|
-
file.write("# CLI::Config::DEF\n")
|
|
146
|
-
file.write("# define & expose an aro bash api via ENV variables.\n")
|
|
147
|
-
file.write("# modifying them in this file will change aro's behavior.\n")
|
|
148
|
-
Aro::Mancy::OS.times do
|
|
149
|
-
file.write("#\n")
|
|
150
|
-
end
|
|
151
|
-
CLI::Config::DEF.each{|k, v|
|
|
152
|
-
var_name = CLI::Config.var_key_with_suffix(k)
|
|
153
|
-
file.write("# [#{var_name}]\n")
|
|
154
|
-
file.write("# => #{I18n.t("cli.config.def_type")}: #{v[:type]}\n")
|
|
155
|
-
case v[:type]
|
|
156
|
-
when CLI::Config::DEF_TYPES[:INT][:name]
|
|
157
|
-
file.write("# => #{I18n.t("cli.config.minimum")}: #{v[:min]}\n")
|
|
158
|
-
file.write("# => #{I18n.t("cli.config.maximum")}: #{v[:max]}\n")
|
|
159
|
-
when CLI::Config::DEF_TYPES[:VALUES][:name]
|
|
160
|
-
file.write("# => #{I18n.t("cli.config.possible_values")}:\n")
|
|
161
|
-
v[:possible_values].each{|name, description|
|
|
162
|
-
file.write("# => #{name} - #{description}\n")
|
|
163
|
-
}
|
|
164
|
-
end
|
|
165
|
-
file.write("export #{var_name}=#{v[:value]}\n\n")
|
|
166
|
-
}
|
|
167
|
-
file.write("\n")
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
def initialize
|
|
172
|
-
return unless Aro::Mancy.is_aro_dir?
|
|
173
|
-
unless File.exist?(CLI::Config::CONFIG_FILE_PATH)
|
|
174
|
-
generate_config
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
source_config
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
def self.def_valid?(deff, key)
|
|
181
|
-
deff == CLI::Config::DEF[key]
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def self.int_valid?(unvalid)
|
|
185
|
-
return !unvalid.nil? && (
|
|
186
|
-
unvalid.kind_of?(Integer) ||
|
|
187
|
-
("0" != unvalid && unvalid.respond_to?(:to_i))
|
|
188
|
-
)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
def self.var_value_with_suffix(suffix)
|
|
192
|
-
ENV[CLI::Config.var_key_with_suffix(suffix)]
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def self.var_key_with_suffix(suffix)
|
|
196
|
-
"#{CLI::Config::VAR_PREFIX}#{suffix}"
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
def source_config
|
|
200
|
-
Aro::P.say(I18n.t("cli.config.sourcing_config", name: CLI::Config::CONFIG_FILE_PATH))
|
|
201
|
-
File.read(CLI::Config::CONFIG_FILE_PATH).split("\n").select{|line|
|
|
202
|
-
line.match?("export #{CLI::Config::VAR_PREFIX}")
|
|
203
|
-
}.map{|line|
|
|
204
|
-
line.gsub("export ", "").split("=")
|
|
205
|
-
}.each{|kv|
|
|
206
|
-
ENV[kv[0]] = kv[1]
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
# todo: implement
|
|
210
|
-
# invalid_defs = validate_config
|
|
211
|
-
CLI::Config::DEF.keys.each{|dfk|
|
|
212
|
-
# next if invalid_defs.include?(dfk)
|
|
213
|
-
Aro::P.say("$#{CLI::Config.var_key_with_suffix(dfk)}=#{CLI::Config.var_value_with_suffix(dfk)}")
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
# todo: set all invalid_refs to default in ENV
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
def validate_config
|
|
220
|
-
invalid_defs = []
|
|
221
|
-
CLI::Config::DEF.each{|k, v|
|
|
222
|
-
var_value = CLI::Config.var_value_with_suffix(k)
|
|
223
|
-
is_valid = CLI::Config::DEF_TYPES[v[:type].to_s.upcase.to_sym][:validator]
|
|
224
|
-
.call(var_value, v, k)
|
|
225
|
-
invalid_defs << k unless is_valid
|
|
226
|
-
}
|
|
227
|
-
invalid_defs
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
end
|
|
231
|
-
end
|
data/bin/cli/constants.rb
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
=begin
|
|
2
|
-
|
|
3
|
-
constants.rb
|
|
4
|
-
|
|
5
|
-
define constants for the aro cli.
|
|
6
|
-
|
|
7
|
-
by i2097i
|
|
8
|
-
|
|
9
|
-
=end
|
|
10
|
-
|
|
11
|
-
module CLI
|
|
12
|
-
|
|
13
|
-
FLAGS = {
|
|
14
|
-
HELP: [:"-h", :"--help"],
|
|
15
|
-
SHOW_COUNT: [:"-n", :"--count"],
|
|
16
|
-
SHOW_ORDER: [:"-o", :"--order"],
|
|
17
|
-
VERSION: [:"-v", :"--version"],
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
EXIT_CODES = {
|
|
21
|
-
SUCCESS: 0,
|
|
22
|
-
GENERAL_ERROR: 1,
|
|
23
|
-
INVALID_ARG: 3
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
CREATE_DECK_ACTIONS = {
|
|
27
|
-
CREATE: :CREATE
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
LOAD_DECK_ACTIONS = {
|
|
31
|
-
DRAW: :DRAW,
|
|
32
|
-
EXPLORE: :EXPLORE,
|
|
33
|
-
REPLACE: :REPLACE,
|
|
34
|
-
RESET: :RESET,
|
|
35
|
-
SHOW: :SHOW,
|
|
36
|
-
SHUFFLE: :SHUFFLE,
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
end
|