ex_aequo 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71da5e7d627af5e20d37598e9343cd3f4a3c357136b5e7fda31b6382c9ac6fea
4
- data.tar.gz: d6262f6d6203f0e71d8c0183ccf102c33ec88e67390204fc1e341f79e89f64c7
3
+ metadata.gz: a7fb2a7524243ffd811e5ac6fcac44fd7dd1faf9cf7c40076bb7a6b9ef7ec637
4
+ data.tar.gz: 47e1979ee9775903c6d51e740e21f08a2ae0669dd52d5a9ce4ee6e4e211bbe23
5
5
  SHA512:
6
- metadata.gz: ac3fe38e39784567419326d8c8235c76a304ae4c55d588289bb4c4df768dd4554994f0f75148ed2eb63f22c6885901520a9bb24fa007a9ad3ad6e127849f3432
7
- data.tar.gz: c7c7927170669b4ef35aa91a1838b560286eb99eab3157d04eb291de1b51373c9101e734f8b118be93adc9474e0e78b1ec3007385302a44cc34fdb62a155046e
6
+ metadata.gz: 9766fbf16ff0cfee7f6876b133ce4c073c5287248d7f8f535cfdb7abe6cbf37b9db096cc434dd52cf9c0dd9be3a5943297a8b46d23ab37f38da6b65887ff56cc
7
+ data.tar.gz: 2c224ffaf81eca779f303842472c3dc19b14d9954da5af5d95456a1d4a1ba343e0a14ef35a07883adb7f094079f5ee10b8a2fcaf19aaa6118cf3b96e5d4668a7
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'colorizer'
4
+ require 'forwardable'
4
5
  module ExAequo
5
6
  module Colorize
6
7
  extend Forwardable
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'io/console'
4
+ require_relative '../colorize'
5
+ module ExAequo
6
+ module Ui
7
+ module Prompts extend self
8
+ extend Colorize
9
+
10
+ def prompt_ch(text: nil, chars:)
11
+ loop do
12
+ $stdout.print(text || _mk_text(chars))
13
+ $stdout.flush
14
+ case _member($stdin.getch, chars)
15
+ in {ok: true, ch:}
16
+ return ch
17
+ in {ok: false, ch:}
18
+ $stdout.puts(colorize("<red>ERROR$: Illegal char entered -> #{ch.inspect}"))
19
+ end
20
+ end
21
+ end
22
+
23
+ private
24
+ def _keys_or_members(chars)
25
+ case chars
26
+ when Hash
27
+ chars.keys
28
+ else
29
+ chars.to_a
30
+ end
31
+ .join(', ')
32
+ end
33
+
34
+ def _member(ch, chars)
35
+ if chars.member?(ch)
36
+ {ok: true, ch: ch}
37
+ else
38
+ {ok: false, ch: ch}
39
+ end
40
+ end
41
+
42
+ def _mk_text(chars)
43
+ "Please enter one of the following chars #{_keys_or_members(chars)} > "
44
+ end
45
+ end
46
+ end
47
+ end
48
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'ui/prompts'
4
+ module ExAequo
5
+ module Ui
6
+ extend Forwardable
7
+ def_delegators Prompts, :prompt_ch
8
+ end
9
+ end
10
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -2,7 +2,7 @@
2
2
 
3
3
  module ExAequo
4
4
  module Version
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: Apache-2.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ex_aequo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-26 00:00:00.000000000 Z
11
+ date: 2024-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: forwarder3
@@ -62,6 +62,8 @@ files:
62
62
  - lib/ex_aequo/my_struct.rb
63
63
  - lib/ex_aequo/my_struct/class_methods.rb
64
64
  - lib/ex_aequo/tools/text_scanner.rb
65
+ - lib/ex_aequo/ui.rb
66
+ - lib/ex_aequo/ui/prompts.rb
65
67
  - lib/ex_aequo/version.rb
66
68
  homepage: https://gitlab.com/robert_dober/rb_ex_aequo
67
69
  licenses: