aromancer 0.0.1 → 0.0.2

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.
@@ -0,0 +1,120 @@
1
+ =begin
2
+
3
+ storage.rb
4
+
5
+ json data store
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ module Aromancer
12
+ class Storage
13
+ include Singleton
14
+
15
+ def initialize
16
+ FileUtils.mkdir_p(Aromancer.home_directory)
17
+ end
18
+
19
+ def self.storage_filepath
20
+ filepath = File.join(Aromancer.home_directory, "storage.json")
21
+
22
+ # create storage file if not present
23
+ unless File.exist?(filepath)
24
+ File.open(filepath, "w+") do |f|
25
+ f.write({version: Aromancer::VERSION, created: Time.now}.to_json)
26
+ end
27
+ end
28
+
29
+ filepath
30
+ end
31
+
32
+ def self.get_last_error_timestamp
33
+ e = get_last_error
34
+ if e && e["created_at"]
35
+ return Time.parse(e["created_at"]).to_i
36
+ end
37
+
38
+ return Time.now.to_i
39
+ end
40
+
41
+ def self.get_preference(preference, default: :default)
42
+ p_key = "preference_#{preference}"
43
+ p = instance.get_key(p_key)
44
+ if p.nil?
45
+ instance.set_key(p_key, default)
46
+ return instance.get_key(p_key)
47
+ end
48
+ p
49
+ end
50
+
51
+ def self.set_preference(preference, value)
52
+ p_key = "preference_#{preference}"
53
+ instance.set_key(p_key, value)
54
+ end
55
+
56
+ def self.set_signed_out_flag(flag)
57
+ Aromancer::Storage.instance.set_key(:signed_out_flag, flag)
58
+ end
59
+
60
+ def self.get_signed_out_flag
61
+ Aromancer::Storage.instance.get_key(:signed_out_flag)
62
+ end
63
+
64
+ def self.set_player(player_hash)
65
+ Aromancer::Storage.instance.set_key(:player, player_hash)
66
+ end
67
+
68
+ def self.get_player
69
+ Aromancer::Storage.instance.get_key(:player)
70
+ end
71
+
72
+ def self.set_legends(legends_array)
73
+ Aromancer::Storage.instance.set_key(:legends, legends_array)
74
+ end
75
+
76
+ def self.get_legends
77
+ Aromancer::Storage.instance.get_key(:legends)
78
+ end
79
+
80
+ def self.set_arena(arena_hash)
81
+ Aromancer::Storage.instance.set_key(:arena, arena_hash)
82
+ end
83
+
84
+ def self.get_arena
85
+ Aromancer::Storage.instance.get_key(:arena)
86
+ end
87
+
88
+ def self.set_stream(stream_array)
89
+ Aromancer::Storage.instance.set_key(:stream, stream_array)
90
+ end
91
+
92
+ def self.get_stream
93
+ Aromancer::Storage.instance.get_key(:stream)
94
+ end
95
+
96
+ def self.set_last_error(error_hash)
97
+ Aromancer::Storage.instance.set_key(:last_error, error_hash)
98
+ end
99
+
100
+ def self.get_last_error
101
+ Aromancer::Storage.instance.get_key(:last_error)
102
+ end
103
+
104
+ def get_key(key)
105
+ storage_contents = JSON.parse(File.read(Aromancer::Storage.storage_filepath))
106
+ if storage_contents.keys.include?(key.to_s)
107
+ return storage_contents[key.to_s]
108
+ end
109
+ end
110
+
111
+ def set_key(key, value)
112
+ storage_contents = JSON.parse(File.read(Aromancer::Storage.storage_filepath))
113
+ storage_contents[key.to_s] = value
114
+
115
+ File.open(Aromancer::Storage.storage_filepath, "w+") do |f|
116
+ f.write(storage_contents.to_json)
117
+ end
118
+ end
119
+ end
120
+ end
@@ -1,5 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ =begin
4
+
5
+ version.rb
6
+
7
+ aromancer version.
8
+
9
+ by i2097i
10
+
11
+ =end
12
+
3
13
  module Aromancer
4
- VERSION = "0.0.1"
14
+ VERSION = "0.0.2"
5
15
  end
data/lib/aromancer.rb CHANGED
@@ -1,8 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "aromancer/version"
3
+ =begin
4
+
5
+ aromancer.rb
6
+
7
+ aromancer.
8
+
9
+ by i2097i
10
+
11
+ =end
12
+
13
+ require_relative :reiquire.to_s
14
+ Reiquire::aromancer
4
15
 
5
16
  module Aromancer
6
- class Error < StandardError; end
7
- # Your code goes here...
17
+ FONT = TTY::Font.new(:standard)
18
+
19
+ def self.get_font(text = :aromancer.to_s, letter_spacing = 1)
20
+ Aromancer::FONT.write(text, letter_spacing: letter_spacing).split("\n")
21
+ end
22
+
23
+ def self.home_directory
24
+ "#{`echo $HOME`.strip}/.aromancer"
25
+ end
26
+
27
+ def self.print_last_error(i18n_key = nil)
28
+ last_error = Aromancer::Storage.get_last_error
29
+ return if last_error.nil?
30
+ last_error = last_error.symbolize_keys
31
+ message = last_error[:body]
32
+ begin
33
+ message = JSON.parse(message).symbolize_keys
34
+ message = message[:error_message] if message.keys.include?(:error_message)
35
+ rescue JSON::ParserError => e
36
+ message = last_error[:body]
37
+ end
38
+ Aromancer::Prompt.say(I18n.t(i18n_key, status: last_error[:status], error: message))
39
+ end
8
40
  end
data/lib/reiquire.rb ADDED
@@ -0,0 +1,48 @@
1
+ =begin
2
+
3
+ reiquire.rb
4
+
5
+ ruby require helpers.
6
+
7
+ by i2097i
8
+
9
+ =end
10
+
11
+ # dependencies
12
+ require :"active_support/all".to_s
13
+ require :i18n.to_s
14
+ require :faraday.to_s
15
+ require :fileutils.to_s
16
+ # require :"websocket-client-simple".to_s
17
+
18
+ # require :"tty-box".to_s # draw box shapes
19
+ # require :"tty-color".to_s # detect color support
20
+ require :"tty-cursor".to_s # cursor support
21
+ require :"tty-font".to_s # large stylized text
22
+ require :"tty-table".to_s # render tables
23
+ require :"tty-prompt".to_s # main user interaction
24
+ # require :"tty-reader".to_s # more granular user input
25
+ require :"tty-screen".to_s # detect screen dimensions
26
+
27
+ module Reiquire
28
+ GEM_PATH = Gem.loaded_specs[:aromancer.to_s]&.full_gem_path
29
+
30
+ def self.aromancer
31
+ # configure I18n
32
+
33
+ I18n.load_path += Dir["#{Reiquire::GEM_PATH}/locale/*.yml"]
34
+ I18n.available_locales = [:en]
35
+ I18n.default_locale = :en
36
+
37
+ # require sys folders
38
+ Reiquire::requires([:aromancer])
39
+ end
40
+
41
+ def self.requires(dirs)
42
+ dirs.each{|d|
43
+ Dir[
44
+ File.join(__dir__, d.to_s, :"**/*.rb".to_s)
45
+ ].each { |f| require f}
46
+ }
47
+ end
48
+ end
data/listen.rb ADDED
@@ -0,0 +1,11 @@
1
+ require :listen.to_s
2
+
3
+ listener = Listen.to(*[:lib.to_s, :bin.to_s, :spec.to_s, :locale.to_s], only: /[\.rb\.yml]/) {|modified, added, removed|
4
+ # puts modified
5
+ # puts added
6
+ # puts removed
7
+ # system("exec rake make")
8
+ system("exec rake install")
9
+ }
10
+ listener.start
11
+ sleep
data/locale/en.yml ADDED
@@ -0,0 +1,58 @@
1
+ en:
2
+ shared:
3
+ confirm: "are you sure?"
4
+ empty: "there is nothing here"
5
+ key_escape: "escape key pressed."
6
+ key_press: "press enter to continue: "
7
+ inturrupt: "exiting due to user inturrupt..."
8
+ reader_initialized: "input reader initialized."
9
+ welcome: "welcome to aromancer. loading v%{version}..."
10
+ navigate: "navigate to %{route}."
11
+ exit: "exit"
12
+ routes:
13
+ authentication:
14
+ failed: "authentication failed (%{status}). %{error}"
15
+ sign_in: "sign in"
16
+ sign_up: "sign up"
17
+ title: "authenticate"
18
+ subtitle: ""
19
+ main_menu:
20
+ title: "main menu"
21
+ subtitle: ""
22
+ new_game: "new game"
23
+ load_game: "load game"
24
+ sign_out: "sign out"
25
+ not_signed_in: "not signed in. invalid session. redirecting to authentication."
26
+ new_game:
27
+ player_count: "number of players"
28
+ story_count: "number of stories"
29
+ starting: "starting new game..."
30
+ status: "status"
31
+ legend:
32
+ title: "legend"
33
+ subtitle: "%{subtitle}"
34
+ arena_failed: "arena failed to load (%{status}). %{error}"
35
+ scroll: "scroll"
36
+ spoken_words: "scroll words"
37
+ legend_complete: "legend_complete"
38
+ words: "words"
39
+ sentences: "sentences"
40
+ hide_signed_sentences: "hide signed sentences"
41
+ signed_sentences: "signed sentences"
42
+ unsigned_sentences: "unsigned sentences"
43
+ spoken_words: "spoken words"
44
+ unspoken_words: "unspoken words"
45
+ players: "players"
46
+ place_on_scroll: "place %{word} on the scroll."
47
+ options_for_word: "available options for the %{word} word."
48
+ last_error: "last error"
49
+ legends:
50
+ help: ""
51
+ legend_menu:
52
+ title: "menu"
53
+ subtitle: ""
54
+ help: ""
55
+ stream:
56
+ title: "stream"
57
+
58
+
@@ -0,0 +1,8 @@
1
+ desc "run irb console with aromancer and autocomplete"
2
+ task :console do
3
+ require :irb.to_s
4
+ require :"irb/completion".to_s
5
+ require :aromancer.to_s
6
+ ARGV.clear
7
+ IRB.start(__FILE__)
8
+ end
data/tasks/make.rake ADDED
@@ -0,0 +1,4 @@
1
+ desc "bundle graph && rake install && rspec --backtrace"
2
+ task :make do
3
+ exec "bundle graph && rake install && rspec --backtrace"
4
+ end
metadata CHANGED
@@ -1,49 +1,268 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aromancer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - i2097i
8
- bindir: exe
8
+ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies: []
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: irb
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.18'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.18'
26
+ - !ruby/object:Gem::Dependency
27
+ name: bundler
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 4.0.21
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 4.0.21
40
+ - !ruby/object:Gem::Dependency
41
+ name: listen
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.10'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.10'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 13.4.2
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 13.4.2
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 3.13.2
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 3.13.2
82
+ - !ruby/object:Gem::Dependency
83
+ name: activesupport
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 8.1.4
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 8.1.4
96
+ - !ruby/object:Gem::Dependency
97
+ name: i18n
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 1.15.2
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 1.15.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: faraday
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 2.14.4
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 2.14.4
124
+ - !ruby/object:Gem::Dependency
125
+ name: fileutils
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 1.8.0
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 1.8.0
138
+ - !ruby/object:Gem::Dependency
139
+ name: tty-cursor
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 0.7.1
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: 0.7.1
152
+ - !ruby/object:Gem::Dependency
153
+ name: tty-font
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 0.5.0
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.5.0
166
+ - !ruby/object:Gem::Dependency
167
+ name: tty-table
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 0.12.0
173
+ type: :runtime
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 0.12.0
180
+ - !ruby/object:Gem::Dependency
181
+ name: tty-prompt
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: 0.23.1
187
+ type: :runtime
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: 0.23.1
194
+ - !ruby/object:Gem::Dependency
195
+ name: tty-screen
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 0.8.2
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 0.8.2
12
208
  description: ''
13
209
  email:
14
210
  - i2097i@hotmail.com
15
- executables: []
211
+ executables:
212
+ - aromancer
16
213
  extensions: []
17
214
  extra_rdoc_files: []
18
215
  files:
216
+ - ".gitignore"
217
+ - ".rspec"
218
+ - ".ruby-version"
19
219
  - CHANGELOG.md
20
220
  - CODE_OF_CONDUCT.md
221
+ - Gemfile
222
+ - Gemfile.lock
223
+ - LICENSE
21
224
  - LICENSE.txt
22
225
  - README.md
23
226
  - Rakefile
227
+ - aromancer.gemspec
228
+ - bin/aromancer
24
229
  - checksums/aromancer-0.0.1.gem.sha512
230
+ - checksums/aromancer-0.0.2.gem.sha512
231
+ - gem_graph.png
25
232
  - lib/aromancer.rb
233
+ - lib/aromancer/.DS_Store
234
+ - lib/aromancer/api.rb
235
+ - lib/aromancer/prompt.rb
236
+ - lib/aromancer/routes.rb
237
+ - lib/aromancer/server.rb
238
+ - lib/aromancer/storage.rb
26
239
  - lib/aromancer/version.rb
240
+ - lib/reiquire.rb
241
+ - listen.rb
242
+ - locale/en.yml
27
243
  - sig/aromancer.rbs
28
- homepage: https://github.com/i2097i/aro
244
+ - tasks/console.rake
245
+ - tasks/make.rake
246
+ homepage: https://github.com/i2097i/aromancer
29
247
  licenses:
30
248
  - MIT
31
249
  metadata: {}
32
250
  rdoc_options: []
33
251
  require_paths:
34
252
  - lib
253
+ - db
35
254
  required_ruby_version: !ruby/object:Gem::Requirement
36
255
  requirements:
37
256
  - - ">="
38
257
  - !ruby/object:Gem::Version
39
- version: 3.4.7
258
+ version: 4.0.7
40
259
  required_rubygems_version: !ruby/object:Gem::Requirement
41
260
  requirements:
42
261
  - - ">="
43
262
  - !ruby/object:Gem::Version
44
263
  version: '0'
45
264
  requirements: []
46
- rubygems_version: 3.6.9
265
+ rubygems_version: 4.0.21
47
266
  specification_version: 4
48
267
  summary: ''
49
268
  test_files: []