one44-cli 0.0.4 → 0.1.1
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/README.md +17 -1
- data/bin/one44-cli +11 -8
- data/lib/one44-cli.rb +3 -17
- data/lib/one44-cli/helpers.rb +25 -0
- data/lib/one44-cli/optparse.rb +29 -0
- data/lib/one44-cli/version.rb +3 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be80efae9e104478942b455965752f6f062dd49c84a94a11fff7c5e062039258
|
4
|
+
data.tar.gz: ad0eb206e009b087c73545345b3df53cb653e1358d3df50f01ec6e35a85d64cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dc34c9522743cebdb04e4a0cfca23dffe85d7cf82ed70eb029c8c0a98ff0ae76894b3bdb0c586f48a2f06e9d95bbbf2d01f4e0ac00db214a20e9def427b539a
|
7
|
+
data.tar.gz: fd166a7d2141cb87322270ac7a99560986e10e6cb4318da1e3362a00aed406edc78e29b303301f937217638e1de83d62af529e4d9ae120c046dbfa9b37b6debc
|
data/README.md
CHANGED
@@ -8,4 +8,20 @@ Install the gem:
|
|
8
8
|
`gem install one44-cli`
|
9
9
|
|
10
10
|
## How to use
|
11
|
-
|
11
|
+
|
12
|
+
### Randomly order test questions (default)
|
13
|
+
Test questions are randomly ordered. Make the behaviour explicit by specifying one of the options below:
|
14
|
+
|
15
|
+
$`one44-cli`
|
16
|
+
|
17
|
+
$`one44-cli -r`
|
18
|
+
|
19
|
+
$`one44-cli --random-sort-questions`
|
20
|
+
|
21
|
+
$`one44-cli --sort-questions random`
|
22
|
+
|
23
|
+
|
24
|
+
### Do not randomly order test questions
|
25
|
+
Test questions will be ordered as listed if the `--not-random-sort-questions` is specified:
|
26
|
+
|
27
|
+
$`one44-cli --not-random-sort-questions`
|
data/bin/one44-cli
CHANGED
@@ -6,16 +6,19 @@ require 'one44'
|
|
6
6
|
require 'one44/adaptors/io/cli'
|
7
7
|
require 'one44-cli'
|
8
8
|
|
9
|
-
|
10
9
|
include One44::Adaptors::IO::CLI
|
10
|
+
include One44::CLI::Helpers
|
11
|
+
include One44::CLI::Optparse
|
12
|
+
|
13
|
+
test = One44::Test.new($stdout)
|
11
14
|
|
12
|
-
|
13
|
-
test.start('indigo',
|
15
|
+
ordered_questions = $one44_cli_options[:question_order] == :random ? randomise(questions) : questions
|
16
|
+
test.start('indigo', ordered_questions)
|
14
17
|
test.questions.each_with_index do |_question, index|
|
15
18
|
test.provide clean(answer), index
|
16
|
-
|
17
|
-
|
19
|
+
$stdout.puts
|
20
|
+
$stdout.print "#{test.questions[index + 1]}: " unless test.questions[index] == test.questions.last
|
18
21
|
end
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
+
$stdout.print 'Result: '
|
23
|
+
$stdout.print test.result.to_s
|
24
|
+
$stdout.puts
|
data/lib/one44-cli.rb
CHANGED
@@ -1,19 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
def clean(answer)
|
8
|
-
Integer(answer).to_i
|
9
|
-
rescue StandardError
|
10
|
-
nil
|
11
|
-
end
|
12
|
-
|
13
|
-
def randomise(questions)
|
14
|
-
questions.shuffle
|
15
|
-
end
|
16
|
-
|
17
|
-
def questions
|
18
|
-
load_tests_from_csv_file('bin/tests/Advanced Indigo.txt', "\t\t")
|
19
|
-
end
|
3
|
+
require_relative 'one44-cli/helpers'
|
4
|
+
require_relative 'one44-cli/optparse'
|
5
|
+
require_relative 'one44-cli/version'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module One44
|
4
|
+
module CLI
|
5
|
+
module Helpers
|
6
|
+
def answer
|
7
|
+
gets.chomp
|
8
|
+
end
|
9
|
+
|
10
|
+
def clean(answer)
|
11
|
+
Integer(answer).to_i
|
12
|
+
rescue StandardError
|
13
|
+
nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def randomise(questions)
|
17
|
+
questions.shuffle
|
18
|
+
end
|
19
|
+
|
20
|
+
def questions
|
21
|
+
load_tests_from_csv_file('bin/tests/Advanced Indigo.txt', "\t\t")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module One44
|
4
|
+
module CLI
|
5
|
+
module Optparse
|
6
|
+
require 'optparse'
|
7
|
+
|
8
|
+
$one44_cli_options = {}
|
9
|
+
option_parser = OptionParser.new do |opts|
|
10
|
+
opts.on('-r', '--random-sort-questions') do
|
11
|
+
$one44_cli_options[:random_sort_questions] = true
|
12
|
+
end
|
13
|
+
|
14
|
+
opts.on('--not-random-sort-questions') do
|
15
|
+
$one44_cli_options[:random_sort_questions] = false
|
16
|
+
end
|
17
|
+
|
18
|
+
opts.on('-s ORDER', '--sort-questions=ORDER', /^random$/i) do |order|
|
19
|
+
$one44_cli_options[:question_order] = order.downcase.to_sym
|
20
|
+
end
|
21
|
+
end
|
22
|
+
option_parser.parse!
|
23
|
+
|
24
|
+
unless $one44_cli_options&.dig(:question_order)
|
25
|
+
$one44_cli_options[:question_order] = :random unless $one44_cli_options&.dig(:random_sort_questions) == false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/one44-cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: one44-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Bonsu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: one44
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.2
|
27
|
-
description: Marks math problems
|
27
|
+
description: Marks math problems
|
28
28
|
email: adam@bonsu.io
|
29
29
|
executables:
|
30
30
|
- one44-cli
|
@@ -37,6 +37,8 @@ files:
|
|
37
37
|
- README.md
|
38
38
|
- bin/one44-cli
|
39
39
|
- lib/one44-cli.rb
|
40
|
+
- lib/one44-cli/helpers.rb
|
41
|
+
- lib/one44-cli/optparse.rb
|
40
42
|
- lib/one44-cli/version.rb
|
41
43
|
homepage: https://github.com/adambonsu/one44-cli
|
42
44
|
licenses:
|