freshmind 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +30 -0
- data/bin/freshmind +4 -0
- data/lib/freshmind.rb +99 -0
- data/lib/freshmind/alfabet.rb +18 -0
- data/lib/freshmind/version.rb +5 -0
- metadata +53 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a7e7cae6496631e5812ceda01ef77a8916eb15e0ebc4960cf00025cbdbe498a9
|
4
|
+
data.tar.gz: fe5ce693f8c2fd2f478ce9f1daf4570da8748fad0b288b0b3ccd149505f73a36
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0b086c16f6f4a4b824626e15f21ec05d65cac3177ba2d664053355a8d017dd2cde549922a8a5478bdd91fd38dabe76479e0f8db31a0431c5f2d7d396cb248f8b
|
7
|
+
data.tar.gz: ba287694dc3d2bdea6dba587ebabcc68605b2e6e689c9cb1b24884a5ad481069e8cc5b2afe9028e53a0029d284bdaa3cf9adf87ba44add3eaa6511a123988528
|
data/README.md
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# Alfabet
|
2
|
+
Generate alfabet letters along with commands in terminal to refresh your mind.
|
3
|
+
|
4
|
+
# Instructions:
|
5
|
+
Read out lod letters and do commands in the same time.
|
6
|
+
Commnads:
|
7
|
+
о - lift up both hands and rise a bit on toes of feet
|
8
|
+
п - lift RIGHT hand and LEFT lift leg a bit
|
9
|
+
л - lift LEFT hand and lift RIGHT leg a bit
|
10
|
+
|
11
|
+
# Usage
|
12
|
+
```
|
13
|
+
> bundle install
|
14
|
+
or
|
15
|
+
> gem install freshmind
|
16
|
+
...
|
17
|
+
> freshmind
|
18
|
+
```
|
19
|
+
|
20
|
+
Output will be like this with small red letters.
|
21
|
+
```
|
22
|
+
┌────────────────┐
|
23
|
+
│ Ar Br Cl Dr El │
|
24
|
+
│ Fl Hl Hl Ib Jr │
|
25
|
+
│ Kr Lb Ml Nr Ol │
|
26
|
+
│ Pb Ql Rl Sr Tl │
|
27
|
+
│ Ul Vb Wl Zl Yr │
|
28
|
+
│ Zr Ab Bl Cl Dl │
|
29
|
+
└────────────────┘
|
30
|
+
```
|
data/bin/freshmind
ADDED
data/lib/freshmind.rb
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
require "colorize"
|
2
|
+
require_relative 'freshmind/alfabet'
|
3
|
+
|
4
|
+
class Command
|
5
|
+
attr_reader :lang
|
6
|
+
def initialize(lang=:en)
|
7
|
+
@lang = lang
|
8
|
+
end
|
9
|
+
|
10
|
+
def list
|
11
|
+
(commands*100).split("").sample(300)
|
12
|
+
end
|
13
|
+
|
14
|
+
def commands
|
15
|
+
return "оплопл" if lang == :ru
|
16
|
+
return "brlbrl" if lang == :en
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Options
|
21
|
+
attr_reader :options, :argv
|
22
|
+
def initialize( argv, options={})
|
23
|
+
@argv = argv
|
24
|
+
@options = options
|
25
|
+
end
|
26
|
+
|
27
|
+
def args
|
28
|
+
res = {}
|
29
|
+
options.each do |opt_key, opt_value|
|
30
|
+
opt_value[:variants].each do |variant|
|
31
|
+
arg_index = argv.index(variant.to_s)
|
32
|
+
res[opt_key] = arg_index.nil? ? opt_value[:default] : argv[arg_index].to_sym
|
33
|
+
end
|
34
|
+
end
|
35
|
+
res
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class Main
|
40
|
+
attr_reader :row_size, :commands, :alfabet
|
41
|
+
LEFT_UP_CORNER = "\u250c"
|
42
|
+
RIGHT_UP_CORNER = "\u2510"
|
43
|
+
LEFT_DOWN_CORNER = "\u2514"
|
44
|
+
RIGHT_DOWN_CORNER = "\u2518"
|
45
|
+
VERTICAL_BORDER = "\u2502"
|
46
|
+
HORIZONTAL_BORDER = "\u2500"
|
47
|
+
|
48
|
+
def initialize(row_size, commands, alfabet)
|
49
|
+
@row_size = row_size
|
50
|
+
@commands = commands
|
51
|
+
@alfabet = alfabet
|
52
|
+
end
|
53
|
+
|
54
|
+
def result
|
55
|
+
alfabet.map do |l|
|
56
|
+
l + commands[rand(300)].red
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def out
|
61
|
+
puts top_border
|
62
|
+
result.each_slice(row_size) do |row|
|
63
|
+
puts VERTICAL_BORDER + " " + row.join(" ") + " " + VERTICAL_BORDER
|
64
|
+
end
|
65
|
+
puts bottom_border
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def line
|
71
|
+
HORIZONTAL_BORDER * (row_size * 3 + 1)
|
72
|
+
end
|
73
|
+
|
74
|
+
def top_border
|
75
|
+
LEFT_UP_CORNER + line + RIGHT_UP_CORNER
|
76
|
+
end
|
77
|
+
def bottom_border
|
78
|
+
LEFT_DOWN_CORNER + line + RIGHT_DOWN_CORNER
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
options_conf = {
|
83
|
+
lang: {
|
84
|
+
variants: [:en, :ru],
|
85
|
+
default: :en,
|
86
|
+
optional: true },
|
87
|
+
order: { variants: [:ordered, :random],
|
88
|
+
default: :ordered,
|
89
|
+
optional: true }
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
args = Options.new(ARGV, options_conf).args
|
94
|
+
|
95
|
+
Main.new(
|
96
|
+
5,
|
97
|
+
Command.new(args[:lang]).list,
|
98
|
+
Alfabet.new(lang: args[:lang], order: args[:order]).list
|
99
|
+
).out
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Alfabet
|
2
|
+
attr_reader :lang, :order
|
3
|
+
LETTERS = {
|
4
|
+
ru: ('А'..'Я').to_a,
|
5
|
+
en: ('A'..'Z').to_a
|
6
|
+
}
|
7
|
+
|
8
|
+
def initialize(options = {})
|
9
|
+
@lang = options.fetch(:lang) { :en }
|
10
|
+
@order = options.fetch(:order){ :ordered }
|
11
|
+
end
|
12
|
+
|
13
|
+
def list
|
14
|
+
res = (LETTERS[lang] * 2)[0, 40]
|
15
|
+
res = res.sample(res.size) if order.to_sym == :random
|
16
|
+
res
|
17
|
+
end
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: freshmind
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrey Eremeev
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-05-25 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Simple exercises to refresh your mind
|
14
|
+
email:
|
15
|
+
- andrey.eremeyev@gmail.com
|
16
|
+
executables:
|
17
|
+
- freshmind
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- README.md
|
22
|
+
- bin/freshmind
|
23
|
+
- lib/freshmind.rb
|
24
|
+
- lib/freshmind/alfabet.rb
|
25
|
+
- lib/freshmind/version.rb
|
26
|
+
homepage: https://github.com/eremeyev/freshmind
|
27
|
+
licenses:
|
28
|
+
- MIT
|
29
|
+
metadata:
|
30
|
+
allowed_push_host: https://rubygems.org
|
31
|
+
homepage_uri: https://github.com/eremeyev/freshmind
|
32
|
+
source_code_uri: https://rubygems.org
|
33
|
+
changelog_uri: https://rubygems.org
|
34
|
+
post_install_message:
|
35
|
+
rdoc_options: []
|
36
|
+
require_paths:
|
37
|
+
- lib
|
38
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.6.2
|
43
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
requirements: []
|
49
|
+
rubygems_version: 3.0.3
|
50
|
+
signing_key:
|
51
|
+
specification_version: 4
|
52
|
+
summary: Simple exercises to refresh your mind
|
53
|
+
test_files: []
|