asker-tool 2.1.7 → 2.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +14 -15
- data/bin/asker +1 -1
- data/lib/asker/ai/ai.rb +6 -3
- data/lib/asker/ai/ai_calculate.rb +20 -6
- data/lib/asker/ai/concept_ai.rb +12 -3
- data/lib/asker/ai/question.rb +28 -6
- data/lib/asker/ai/stages/base_stage.rb +45 -6
- data/lib/asker/ai/stages/stage_b.rb +90 -49
- data/lib/asker/ai/stages/stage_d.rb +69 -90
- data/lib/asker/ai/stages/stage_f.rb +47 -38
- data/lib/asker/ai/stages/stage_i.rb +79 -92
- data/lib/asker/ai/stages/stage_s.rb +41 -36
- data/lib/asker/ai/stages/stage_t.rb +114 -73
- data/lib/asker/application.rb +7 -16
- data/lib/asker/check_input/check_haml_data.rb +264 -0
- data/lib/asker/check_input/check_table.rb +104 -0
- data/lib/asker/check_input.rb +51 -0
- data/lib/asker/cli.rb +47 -44
- data/lib/asker/data/code.rb +5 -16
- data/lib/asker/data/concept.rb +71 -24
- data/lib/asker/data/project_data.rb +63 -0
- data/lib/asker/data/table.rb +2 -0
- data/lib/asker/data/template.rb +3 -1
- data/lib/asker/data/world.rb +8 -16
- data/lib/asker/displayer/code_displayer.rb +7 -0
- data/lib/asker/displayer/concept_ai_displayer.erb +10 -0
- data/lib/asker/displayer/concept_ai_displayer.rb +24 -22
- data/lib/asker/displayer/concept_displayer.rb +9 -4
- data/lib/asker/displayer/stats_displayer.rb +8 -0
- data/lib/asker/exporter/concept_ai_gift_exporter.rb +7 -11
- data/lib/asker/exporter/concept_ai_moodle_exporter.rb +45 -0
- data/lib/asker/exporter/concept_ai_yaml_exporter.rb +6 -3
- data/lib/asker/exporter/concept_doc_exporter.rb +12 -2
- data/lib/asker/exporter/data_gift_exporter.rb +31 -0
- data/lib/asker/exporter/output_file_exporter.rb +9 -6
- data/lib/asker/files/{config.ini → asker.ini} +14 -4
- data/lib/asker/files/language/du/connectors.yaml +81 -0
- data/lib/asker/files/language/du/mistakes.yaml +82 -0
- data/lib/asker/files/language/du/templates.yaml +28 -49
- data/lib/asker/files/language/en/templates.yaml +19 -19
- data/lib/asker/files/language/es/mistakes.yaml +9 -7
- data/lib/asker/files/language/es/templates.yaml +19 -19
- data/lib/asker/files/language/fr/connectors.yaml +68 -84
- data/lib/asker/files/language/fr/templates.yaml +22 -22
- data/lib/asker/formatter/concept_doc_formatter.rb +0 -4
- data/lib/asker/formatter/concept_string_formatter.rb +7 -4
- data/lib/asker/formatter/moodle/matching.erb +38 -0
- data/lib/asker/formatter/moodle/multichoice.erb +49 -0
- data/lib/asker/formatter/moodle/shortanswer.erb +30 -0
- data/lib/asker/formatter/moodle/truefalse.erb +47 -0
- data/lib/asker/formatter/question_gift_formatter.rb +21 -19
- data/lib/asker/formatter/question_moodle_formatter.rb +27 -0
- data/lib/asker/lang/lang_factory.rb +7 -1
- data/lib/asker/loader/code_loader.rb +1 -1
- data/lib/asker/loader/content_loader.rb +12 -14
- data/lib/asker/loader/directory_loader.rb +1 -8
- data/lib/asker/loader/embedded_file.rb +42 -0
- data/lib/asker/loader/file_loader.rb +1 -6
- data/lib/asker/loader/haml_loader.rb +9 -5
- data/lib/asker/loader/image_url_loader.rb +8 -9
- data/lib/asker/loader/input_loader.rb +5 -6
- data/lib/asker/loader/project_loader.rb +18 -10
- data/lib/asker/logger.rb +36 -9
- data/lib/asker/skeleton.rb +3 -2
- data/lib/asker/version.rb +9 -0
- data/lib/asker.rb +72 -43
- metadata +60 -18
- data/lib/asker/checker.rb +0 -455
- data/lib/asker/project.rb +0 -146
data/lib/asker/project.rb
DELETED
@@ -1,146 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'singleton'
|
4
|
-
require 'rainbow'
|
5
|
-
# require 'fileutils'
|
6
|
-
require_relative 'application'
|
7
|
-
require_relative 'logger'
|
8
|
-
|
9
|
-
# Contains Project data and methods
|
10
|
-
class Project
|
11
|
-
include Singleton
|
12
|
-
attr_reader :default, :param
|
13
|
-
|
14
|
-
##
|
15
|
-
# Initialize
|
16
|
-
def initialize
|
17
|
-
reset
|
18
|
-
end
|
19
|
-
|
20
|
-
##
|
21
|
-
# Reset project params
|
22
|
-
def reset
|
23
|
-
@default = { inputbasedir: FileUtils.pwd,
|
24
|
-
stages: { d: true, b: true, f: true, i: true, s: true, t: true },
|
25
|
-
threshold: 0.5 }
|
26
|
-
@param = {}
|
27
|
-
end
|
28
|
-
|
29
|
-
##
|
30
|
-
# Get value param
|
31
|
-
# @param key (Symbol) key
|
32
|
-
def get(key)
|
33
|
-
return @param[key] unless @param[key].nil?
|
34
|
-
|
35
|
-
@default[key]
|
36
|
-
end
|
37
|
-
|
38
|
-
##
|
39
|
-
# Set value param
|
40
|
-
# @param key (Symbol) key
|
41
|
-
# @param value (String) value
|
42
|
-
def set(key, value)
|
43
|
-
@param[key] = value
|
44
|
-
end
|
45
|
-
|
46
|
-
##
|
47
|
-
# Open new project
|
48
|
-
# * setting new params and
|
49
|
-
# * creating output files
|
50
|
-
# IMPORTANT: We need at least theses values
|
51
|
-
# * process_file
|
52
|
-
# * inputdirs
|
53
|
-
def open
|
54
|
-
config = Application.instance.config
|
55
|
-
ext = File.extname(@param[:process_file]) || '.haml'
|
56
|
-
#@param[:process_file] = @param[:process_file] ||
|
57
|
-
# get(:projectdir).split(File::SEPARATOR).last + ext
|
58
|
-
@param[:projectname] = @param[:projectname] ||
|
59
|
-
File.basename(@param[:process_file], ext)
|
60
|
-
#@param[:inputdirs] = @param[:inputdirs] ||
|
61
|
-
# File.join(get(:inputbasedir), @param[:projectdir])
|
62
|
-
|
63
|
-
@param[:logname] = "#{@param[:projectname]}-log.txt"
|
64
|
-
@param[:outputname] = "#{@param[:projectname]}-gift.txt"
|
65
|
-
@param[:lessonname] = "#{@param[:projectname]}-doc.txt"
|
66
|
-
@param[:yamlname] = "#{@param[:projectname]}.yaml"
|
67
|
-
|
68
|
-
outputdir = config['global']['outputdir']
|
69
|
-
@param[:logpath] = File.join(outputdir, get(:logname))
|
70
|
-
@param[:outputpath] = File.join(outputdir, get(:outputname))
|
71
|
-
@param[:lessonpath] = File.join(outputdir, get(:lessonname))
|
72
|
-
@param[:yamlpath] = File.join(outputdir, get(:yamlname))
|
73
|
-
|
74
|
-
Dir.mkdir(outputdir) unless Dir.exist?(outputdir)
|
75
|
-
create_log_file
|
76
|
-
create_output_file
|
77
|
-
create_lesson_file
|
78
|
-
create_yaml_file
|
79
|
-
end
|
80
|
-
|
81
|
-
##
|
82
|
-
# Close output files
|
83
|
-
def close
|
84
|
-
get(:logfile).close
|
85
|
-
get(:outputfile).close
|
86
|
-
get(:lessonfile).close
|
87
|
-
get(:yamlfile).close
|
88
|
-
end
|
89
|
-
|
90
|
-
def method_missing(method, *_args, &_block)
|
91
|
-
get(method)
|
92
|
-
end
|
93
|
-
|
94
|
-
private
|
95
|
-
|
96
|
-
# create or reset logfile
|
97
|
-
def create_log_file
|
98
|
-
@param[:logfile] = File.open(get(:logpath), 'w')
|
99
|
-
f = get(:logfile)
|
100
|
-
f.write('=' * 50 + "\n")
|
101
|
-
f.write("Created by : #{Application::NAME}")
|
102
|
-
f.write(" (version #{Application::VERSION})\n")
|
103
|
-
f.write("File : #{get(:logname)}\n")
|
104
|
-
f.write("Time : #{Time.new}\n")
|
105
|
-
f.write("Author : David Vargas Ruiz\n")
|
106
|
-
f.write('=' * 50 + "\n\n")
|
107
|
-
|
108
|
-
Logger.verbose '[INFO] Project open'
|
109
|
-
Logger.verbose ' ├── inputdirs = ' + Rainbow(get(:inputdirs)).bright
|
110
|
-
Logger.verbose ' └── process_file = ' + Rainbow(get(:process_file)).bright
|
111
|
-
end
|
112
|
-
|
113
|
-
# Create or reset output file
|
114
|
-
def create_output_file
|
115
|
-
config = Application.instance.config
|
116
|
-
@param[:outputfile] = File.open(get(:outputpath), 'w')
|
117
|
-
f = get(:outputfile)
|
118
|
-
f.write('// ' + ('=' * 50) + "\n")
|
119
|
-
f.write("// Created by : #{Application::NAME}")
|
120
|
-
f.write(" (version #{Application::VERSION})\n")
|
121
|
-
f.write("// File : #{get(:outputname)}\n")
|
122
|
-
f.write("// Time : #{Time.new}\n")
|
123
|
-
f.write("// Author : David Vargas Ruiz\n")
|
124
|
-
f.write('// ' + ('=' * 50) + "\n\n")
|
125
|
-
category = config['questions']['category']
|
126
|
-
f.write("$CATEGORY: $course$/#{category}\n") unless category.nil?
|
127
|
-
end
|
128
|
-
|
129
|
-
# Create or reset lesson file
|
130
|
-
def create_lesson_file
|
131
|
-
@param[:lessonfile] = File.new(get(:lessonpath), 'w')
|
132
|
-
f = get(:lessonfile)
|
133
|
-
f.write('=' * 50 + "\n")
|
134
|
-
f.write("Created by : #{Application::NAME}")
|
135
|
-
f.write(" (version #{Application::VERSION})\n")
|
136
|
-
f.write("File : #{get(:lessonname)}\n")
|
137
|
-
f.write("Time : #{Time.new}\n")
|
138
|
-
f.write("Author : David Vargas Ruiz\n")
|
139
|
-
f.write('=' * 50 + "\n")
|
140
|
-
end
|
141
|
-
|
142
|
-
# Create or reset yaml file
|
143
|
-
def create_yaml_file
|
144
|
-
@param[:yamlfile] = File.open(get(:yamlpath), 'w')
|
145
|
-
end
|
146
|
-
end
|