one44-cli 0.1.1 → 0.1.3
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 -9
- data/bin/one44-cli +2 -2
- data/lib/one44-cli/helpers.rb +6 -2
- data/lib/one44-cli/optparse.rb +30 -14
- data/lib/one44-cli/version.rb +1 -1
- metadata +72 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79b8c6389f90c0394b0cb266a7979a3c982b4e1286321979c21edd9ad94140df
|
4
|
+
data.tar.gz: 4f50eb532f3ffea32c336d1a01cdd58b43a26865243fe4039764485b33726cb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7535cdcd2b0bdb35d694cf54c4594179fcbfb2067f6e23aa3e8186a95605e31682d594a51c8b127a7159b4c237c5c51f95dd2584680c07c9fd73ebb8faaedcd8
|
7
|
+
data.tar.gz: dfb7636dadb728156c71194fbab1fd0dc897e8349c8e4c4854a1dc8182c09177c62ef67d59af12e262ae2d8d43cb63eab5ad8f331615e425ea2ef90cfa45a47c
|
data/README.md
CHANGED
@@ -8,20 +8,28 @@ Install the gem:
|
|
8
8
|
`gem install one44-cli`
|
9
9
|
|
10
10
|
## How to use
|
11
|
+
Create a test file containing math problems:
|
11
12
|
|
12
|
-
|
13
|
-
|
13
|
+
E.g
|
14
|
+
```testfileexample
|
15
|
+
1x1 2x2 3x3
|
16
|
+
4x4 5x5 6x6
|
17
|
+
```
|
14
18
|
|
15
|
-
|
19
|
+
Run `one44-cli` as follows:
|
16
20
|
|
17
|
-
$`one44-cli -
|
21
|
+
$`one44-cli -f path/to/test/file`
|
18
22
|
|
19
|
-
|
23
|
+
### Do not randomly order test questions (default)
|
24
|
+
Test questions will be ordered as listed in the test file if the `--not-random-sort-questions` is specified:
|
20
25
|
|
21
|
-
$`one44-cli --sort-questions
|
26
|
+
$`one44-cli --not-random-sort-questions`
|
22
27
|
|
28
|
+
### Randomly order test questions
|
29
|
+
Test questions are randomly ordered by specifying one of the options below:
|
23
30
|
|
24
|
-
|
25
|
-
Test questions will be ordered as listed if the `--not-random-sort-questions` is specified:
|
31
|
+
$`one44-cli -r`
|
26
32
|
|
27
|
-
$`one44-cli --
|
33
|
+
$`one44-cli --random-sort-questions`
|
34
|
+
|
35
|
+
$`one44-cli --sort-questions random`
|
data/bin/one44-cli
CHANGED
@@ -10,10 +10,10 @@ include One44::Adaptors::IO::CLI
|
|
10
10
|
include One44::CLI::Helpers
|
11
11
|
include One44::CLI::Optparse
|
12
12
|
|
13
|
+
options = One44::CLI::Optparse::Parser.parse(ARGV)
|
13
14
|
test = One44::Test.new($stdout)
|
14
15
|
|
15
|
-
ordered_questions
|
16
|
-
test.start('indigo', ordered_questions)
|
16
|
+
test.start(options[:test], ordered_questions(options[:test], options[:question_order]))
|
17
17
|
test.questions.each_with_index do |_question, index|
|
18
18
|
test.provide clean(answer), index
|
19
19
|
$stdout.puts
|
data/lib/one44-cli/helpers.rb
CHANGED
@@ -13,12 +13,16 @@ module One44
|
|
13
13
|
nil
|
14
14
|
end
|
15
15
|
|
16
|
+
def ordered_questions(test, question_order)
|
17
|
+
question_order == :random ? randomise(questions_from(test)) : questions_from(test)
|
18
|
+
end
|
19
|
+
|
16
20
|
def randomise(questions)
|
17
21
|
questions.shuffle
|
18
22
|
end
|
19
23
|
|
20
|
-
def
|
21
|
-
load_tests_from_csv_file(
|
24
|
+
def questions_from(test)
|
25
|
+
load_tests_from_csv_file(test, "\t\t")
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
data/lib/one44-cli/optparse.rb
CHANGED
@@ -5,24 +5,40 @@ module One44
|
|
5
5
|
module Optparse
|
6
6
|
require 'optparse'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
class Parser
|
9
|
+
def self.parse(args)
|
10
|
+
options = {}
|
11
|
+
option_parser = OptionParser.new do |opts|
|
12
|
+
opts.on('-r', '--random-sort-questions') do
|
13
|
+
options[:random_sort_questions] = true
|
14
|
+
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
opts.on('--not-random-sort-questions') do
|
17
|
+
options[:random_sort_questions] = false
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on('-s ORDER', '--sort-questions=ORDER', /^random$/i) do |order|
|
21
|
+
options[:question_order] = order.downcase.to_sym
|
22
|
+
end
|
17
23
|
|
18
|
-
|
19
|
-
|
24
|
+
opts.on('-f TEST', '--path-to-test-file=TEST', '[Mandatory] Specify the path to the test file.') do |test|
|
25
|
+
options[:test] = test
|
26
|
+
end
|
27
|
+
end
|
28
|
+
process_options(option_parser, options, args)
|
20
29
|
end
|
21
|
-
end
|
22
|
-
option_parser.parse!
|
23
30
|
|
24
|
-
|
25
|
-
|
31
|
+
def self.process_options(option_parser, options, args)
|
32
|
+
option_parser.parse!(args)
|
33
|
+
unless options[:test]
|
34
|
+
puts option_parser.help
|
35
|
+
exit 1
|
36
|
+
end
|
37
|
+
options
|
38
|
+
rescue Exception => e
|
39
|
+
puts "Exception encountered: #{e}"
|
40
|
+
exit 1
|
41
|
+
end
|
26
42
|
end
|
27
43
|
end
|
28
44
|
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.1.
|
4
|
+
version: 0.1.3
|
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-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: one44
|
@@ -24,6 +24,76 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aruba
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.1
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cucumber
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.1.2
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.1.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.9.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.9.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-wait
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.0.9
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.0.9
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.91.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.91.0
|
27
97
|
description: Marks math problems
|
28
98
|
email: adam@bonsu.io
|
29
99
|
executables:
|