asker-tool 2.2.1 → 2.2.5
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 +3 -1
- data/lib/asker/ai/stages/stage_b.rb +1 -10
- data/lib/asker/ai/stages/stage_d.rb +4 -10
- data/lib/asker/ai/stages/stage_f.rb +1 -20
- data/lib/asker/application.rb +6 -7
- data/lib/asker/check_input/check_haml_data.rb +264 -0
- data/lib/asker/check_input/check_table.rb +117 -0
- data/lib/asker/check_input.rb +51 -0
- data/lib/asker/cli.rb +29 -26
- data/lib/asker/exporter/concept_ai_moodle_exporter.rb +3 -2
- data/lib/asker/exporter/concept_doc_exporter.rb +3 -6
- data/lib/asker/exporter/data_gift_exporter.rb +4 -2
- data/lib/asker/loader/content_loader.rb +3 -3
- data/lib/asker/loader/file_loader.rb +0 -3
- data/lib/asker/loader/haml_loader.rb +9 -5
- data/lib/asker/logger.rb +3 -3
- data/lib/asker/skeleton.rb +3 -3
- data/lib/asker/version.rb +10 -0
- data/lib/asker.rb +2 -3
- metadata +52 -6
- data/lib/asker/input_checker.rb +0 -450
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative '../formatter/question_moodle_formatter'
|
4
|
+
require_relative '../version'
|
4
5
|
|
5
6
|
# Export ConceptIA data to gift to moodlefile
|
6
7
|
module ConceptAIMoodleExporter
|
@@ -13,8 +14,8 @@ module ConceptAIMoodleExporter
|
|
13
14
|
file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
|
14
15
|
file.write("<quiz>\n")
|
15
16
|
file.write("<!--\n#{('=' * 50)}\n")
|
16
|
-
file.write(" Created by : #{
|
17
|
-
file.write(" (version #{
|
17
|
+
file.write(" Created by : #{Version::NAME}")
|
18
|
+
file.write(" (version #{Version::VERSION})\n")
|
18
19
|
file.write(" File : #{project.get(:moodlename)}\n")
|
19
20
|
file.write(" Time : #{Time.new}\n")
|
20
21
|
file.write(" Author : David Vargas Ruiz\n")
|
@@ -1,18 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative '../formatter/concept_doc_formatter'
|
4
|
+
require_relative '../version'
|
4
5
|
|
5
6
|
##
|
6
7
|
# Export Concept to Doc file
|
7
8
|
module ConceptDocExporter
|
8
9
|
##
|
9
|
-
# Export
|
10
|
-
# rubocop:disable Metrics/AbcSize
|
11
|
-
# rubocop:disable Metrics/MethodLength
|
10
|
+
# Export array of concepts to doc
|
12
11
|
def self.export_all(concepts, project)
|
13
12
|
file = File.new(project.get(:lessonpath), 'w')
|
14
13
|
file.write('=' * 50 + "\n")
|
15
|
-
file.write("Created by : #{
|
14
|
+
file.write("Created by : #{Version::NAME} (version #{Version::VERSION})\n")
|
16
15
|
file.write("File : #{project.get(:lessonname)}\n")
|
17
16
|
file.write("Time : #{Time.new}\n")
|
18
17
|
file.write("Author : David Vargas Ruiz\n")
|
@@ -23,6 +22,4 @@ module ConceptDocExporter
|
|
23
22
|
end
|
24
23
|
file.close
|
25
24
|
end
|
26
|
-
# rubocop:enable Metrics/AbcSize
|
27
|
-
# rubocop:enable Metrics/MethodLength
|
28
25
|
end
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require_relative 'concept_ai_gift_exporter'
|
4
4
|
require_relative 'code_gift_exporter'
|
5
|
+
require_relative '../version'
|
6
|
+
require_relative '../application'
|
5
7
|
|
6
8
|
# Export Data (ConceptIA and Code) to gift to outputfile
|
7
9
|
module DataGiftExporter
|
@@ -12,8 +14,8 @@ module DataGiftExporter
|
|
12
14
|
def self.export_all(data, project)
|
13
15
|
file = File.open(project.get(:outputpath), 'w')
|
14
16
|
file.write('// ' + ('=' * 50) + "\n")
|
15
|
-
file.write("// Created by : #{
|
16
|
-
file.write(" (version #{
|
17
|
+
file.write("// Created by : #{Version::NAME}")
|
18
|
+
file.write(" (version #{Version::VERSION})\n")
|
17
19
|
file.write("// File : #{project.get(:outputname)}\n")
|
18
20
|
file.write("// Time : #{Time.new}\n")
|
19
21
|
file.write("// Author : David Vargas Ruiz\n")
|
@@ -12,8 +12,6 @@ module ContentLoader
|
|
12
12
|
# Load XML content into Asker data objects
|
13
13
|
# @param filepath (String) File path
|
14
14
|
# @param content (String) XML plane text content
|
15
|
-
# rubocop:disable Metrics/MethodLength
|
16
|
-
# rubocop:disable Metrics/AbcSize
|
17
15
|
def self.load(filepath, content)
|
18
16
|
concepts = []
|
19
17
|
codes = []
|
@@ -94,7 +92,9 @@ module ContentLoader
|
|
94
92
|
# @param filepath (String)
|
95
93
|
# @param content (String)
|
96
94
|
private_class_method def self.raise_error_with(filepath, content)
|
97
|
-
|
95
|
+
msg = "[ERROR] ContentLoader: Format error in #{filepath}\n"
|
96
|
+
msg += " Take a look at ouput/error.xml"
|
97
|
+
puts Rainbow(msg).red.bright
|
98
98
|
f = File.open('output/error.xml', 'w')
|
99
99
|
f.write(content)
|
100
100
|
f.close
|
@@ -5,9 +5,6 @@ require_relative 'haml_loader'
|
|
5
5
|
|
6
6
|
# Methods that load a filename and return list of concepts
|
7
7
|
module FileLoader
|
8
|
-
##
|
9
|
-
# Load asker data from file
|
10
|
-
# @param filename (String) File name to be load
|
11
8
|
def self.load(filename)
|
12
9
|
if File.extname(filename).casecmp('.haml').zero?
|
13
10
|
file_content = HamlLoader.load filename
|
@@ -4,12 +4,16 @@ require 'haml'
|
|
4
4
|
|
5
5
|
# HAML file loader
|
6
6
|
module HamlLoader
|
7
|
-
##
|
8
|
-
# Load HAML file name
|
9
|
-
# @param filename (String) HAML file name
|
10
7
|
def self.load(filename)
|
11
8
|
template = File.read(filename)
|
12
|
-
|
13
|
-
|
9
|
+
begin
|
10
|
+
haml_engine = Haml::Engine.new(template)
|
11
|
+
return haml_engine.render
|
12
|
+
rescue StandardError => e
|
13
|
+
puts "[ERROR] HamlLoader: Can't load <#{filename}> file!"
|
14
|
+
puts " => #{e}"
|
15
|
+
exit 0
|
16
|
+
end
|
14
17
|
end
|
18
|
+
|
15
19
|
end
|
data/lib/asker/logger.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'singleton'
|
4
|
-
require_relative '
|
4
|
+
require_relative 'version'
|
5
5
|
|
6
6
|
# Display and log project messages
|
7
7
|
class Logger
|
@@ -33,8 +33,8 @@ class Logger
|
|
33
33
|
def self.create(logpath, logname)
|
34
34
|
@logfile = File.open(logpath, 'w')
|
35
35
|
@logfile.write('=' * 50 + "\n")
|
36
|
-
@logfile.write("Created by : #{
|
37
|
-
@logfile.write(" (version #{
|
36
|
+
@logfile.write("Created by : #{Version::NAME}")
|
37
|
+
@logfile.write(" (version #{Version::VERSION})\n")
|
38
38
|
@logfile.write("File : #{logname}\n")
|
39
39
|
@logfile.write("Time : #{Time.new}\n")
|
40
40
|
@logfile.write("Author : David Vargas Ruiz\n")
|
data/lib/asker/skeleton.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'rainbow'
|
5
|
-
require_relative '
|
5
|
+
require_relative 'version'
|
6
6
|
|
7
7
|
# Skeleton: create skeleton for asker input files
|
8
8
|
# * create
|
@@ -34,8 +34,8 @@ module Skeleton
|
|
34
34
|
# Create default configuration files
|
35
35
|
def self.create_configuration
|
36
36
|
puts "\n[INFO] Creating configuration files"
|
37
|
-
src = File.join(File.dirname(__FILE__), 'files',
|
38
|
-
dst = File.join(
|
37
|
+
src = File.join(File.dirname(__FILE__), 'files', Version::CONFIGFILE)
|
38
|
+
dst = File.join(Version::CONFIGFILE)
|
39
39
|
copyfile(src, dst)
|
40
40
|
end
|
41
41
|
|
data/lib/asker.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'rainbow'
|
4
4
|
|
5
5
|
require_relative 'asker/skeleton'
|
6
|
-
require_relative 'asker/
|
6
|
+
require_relative 'asker/check_input'
|
7
7
|
|
8
8
|
require_relative 'asker/displayer/concept_displayer'
|
9
9
|
require_relative 'asker/displayer/stats_displayer'
|
@@ -12,7 +12,6 @@ require_relative 'asker/logger'
|
|
12
12
|
|
13
13
|
require_relative 'asker/loader/project_loader'
|
14
14
|
require_relative 'asker/loader/input_loader'
|
15
|
-
|
16
15
|
class Asker
|
17
16
|
def self.init
|
18
17
|
Skeleton.create_configuration
|
@@ -23,7 +22,7 @@ class Asker
|
|
23
22
|
end
|
24
23
|
|
25
24
|
def self.check(filepath)
|
26
|
-
|
25
|
+
CheckInput.new.file(filepath).check
|
27
26
|
end
|
28
27
|
|
29
28
|
def self.start(filepath)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asker-tool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Vargas Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: colorize
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.8'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rexml
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.2'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.2'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: terminal-table
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +122,20 @@ dependencies:
|
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '5.11'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry-byebug
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.9'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.9'
|
97
139
|
- !ruby/object:Gem::Dependency
|
98
140
|
name: rubocop
|
99
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,6 +184,9 @@ files:
|
|
142
184
|
- lib/asker/ai/stages/stage_s.rb
|
143
185
|
- lib/asker/ai/stages/stage_t.rb
|
144
186
|
- lib/asker/application.rb
|
187
|
+
- lib/asker/check_input.rb
|
188
|
+
- lib/asker/check_input/check_haml_data.rb
|
189
|
+
- lib/asker/check_input/check_table.rb
|
145
190
|
- lib/asker/cli.rb
|
146
191
|
- lib/asker/data/code.rb
|
147
192
|
- lib/asker/data/column.rb
|
@@ -206,7 +251,6 @@ files:
|
|
206
251
|
- lib/asker/formatter/question_moodle_formatter.rb
|
207
252
|
- lib/asker/formatter/question_moodlexml_formatter.rb
|
208
253
|
- lib/asker/formatter/rb2haml_formatter.rb
|
209
|
-
- lib/asker/input_checker.rb
|
210
254
|
- lib/asker/lang/lang.rb
|
211
255
|
- lib/asker/lang/lang_factory.rb
|
212
256
|
- lib/asker/lang/text_actions.rb
|
@@ -221,7 +265,8 @@ files:
|
|
221
265
|
- lib/asker/loader/project_loader.rb
|
222
266
|
- lib/asker/logger.rb
|
223
267
|
- lib/asker/skeleton.rb
|
224
|
-
|
268
|
+
- lib/asker/version.rb
|
269
|
+
homepage: https://github.com/teuton-software/asker/tree/v2.2#readme
|
225
270
|
licenses:
|
226
271
|
- GPL-3.0
|
227
272
|
metadata: {}
|
@@ -233,14 +278,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
278
|
requirements:
|
234
279
|
- - ">="
|
235
280
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.
|
281
|
+
version: 2.5.5
|
237
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
283
|
requirements:
|
239
284
|
- - ">="
|
240
285
|
- !ruby/object:Gem::Version
|
241
286
|
version: '0'
|
242
287
|
requirements: []
|
243
|
-
|
288
|
+
rubyforge_project:
|
289
|
+
rubygems_version: 2.7.6.3
|
244
290
|
signing_key:
|
245
291
|
specification_version: 4
|
246
292
|
summary: Asker generates questions from input definitions file.
|