asker-tool 2.1.2 → 2.1.7
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/{LICENSE → LICENSE.txt} +0 -0
- data/README.md +17 -18
- data/bin/asker +1 -0
- data/lib/asker.rb +43 -74
- data/lib/asker/ai/ai.rb +4 -0
- data/lib/asker/ai/code/base_code_ai.rb +104 -0
- data/lib/asker/{code/ai → ai/code}/code_ai_factory.rb +11 -1
- data/lib/asker/{code/ai → ai/code}/javascript_code_ai.rb +2 -5
- data/lib/asker/ai/code/problem_code_ai.rb +176 -0
- data/lib/asker/{code/ai → ai/code}/python_code_ai.rb +2 -5
- data/lib/asker/{code/ai → ai/code}/ruby_code_ai.rb +14 -7
- data/lib/asker/{code/ai → ai/code}/sql_code_ai.rb +2 -5
- data/lib/asker/ai/concept_ai.rb +1 -0
- data/lib/asker/ai/stages/stage_t.rb +76 -76
- data/lib/asker/application.rb +19 -3
- data/lib/asker/checker.rb +152 -53
- data/lib/asker/cli.rb +19 -22
- data/lib/asker/data/code.rb +73 -0
- data/lib/asker/data/column.rb +31 -21
- data/lib/asker/data/concept.rb +42 -45
- data/lib/asker/data/data_field.rb +14 -0
- data/lib/asker/data/row.rb +75 -52
- data/lib/asker/data/table.rb +89 -42
- data/lib/asker/data/world.rb +58 -32
- data/lib/asker/{exporter/code_screen_exporter.rb → displayer/code_displayer.rb} +6 -6
- data/lib/asker/displayer/concept_ai_displayer.rb +132 -0
- data/lib/asker/displayer/concept_displayer.rb +29 -0
- data/lib/asker/displayer/stats_displayer.rb +14 -0
- data/lib/asker/exporter/code_gift_exporter.rb +10 -11
- data/lib/asker/exporter/concept_ai_gift_exporter.rb +23 -11
- data/lib/asker/exporter/concept_ai_yaml_exporter.rb +9 -7
- data/lib/asker/exporter/concept_doc_exporter.rb +9 -15
- data/lib/asker/exporter/output_file_exporter.rb +18 -0
- data/lib/asker/files/config.ini +37 -0
- data/lib/asker/files/example-code.haml +0 -0
- data/lib/asker/files/example-concept.haml +29 -0
- data/lib/asker/files/language/du/templates.yaml +50 -0
- data/lib/asker/files/language/en/connectors.yaml +44 -0
- data/lib/asker/files/language/en/mistakes.yaml +37 -0
- data/lib/asker/files/language/en/templates.yaml +29 -0
- data/lib/asker/files/language/es/connectors.yaml +92 -0
- data/lib/asker/files/language/es/mistakes.yaml +82 -0
- data/lib/asker/files/language/es/templates.yaml +29 -0
- data/lib/asker/files/language/fr/connectors.yaml +92 -0
- data/lib/asker/files/language/fr/mistakes.yaml +82 -0
- data/lib/asker/files/language/fr/templates.yaml +29 -0
- data/lib/asker/files/language/javascript/connectors.yaml +11 -0
- data/lib/asker/files/language/javascript/mistakes.yaml +30 -0
- data/lib/asker/files/language/javascript/templates.yaml +3 -0
- data/lib/asker/files/language/math/connectors.yaml +2 -0
- data/lib/asker/files/language/math/mistakes.yaml +2 -0
- data/lib/asker/files/language/math/templates.yaml +1 -0
- data/lib/asker/files/language/python/connectors.yaml +11 -0
- data/lib/asker/files/language/python/mistakes.yaml +26 -0
- data/lib/asker/files/language/python/templates.yaml +3 -0
- data/lib/asker/files/language/ruby/connectors.yaml +11 -0
- data/lib/asker/files/language/ruby/mistakes.yaml +33 -0
- data/lib/asker/files/language/ruby/templates.yaml +3 -0
- data/lib/asker/files/language/sql/connectors.yaml +6 -0
- data/lib/asker/files/language/sql/mistakes.yaml +11 -0
- data/lib/asker/files/language/sql/templates.yaml +2 -0
- data/lib/asker/formatter/concept_string_formatter.rb +9 -8
- data/lib/asker/formatter/question_gift_formatter.rb +9 -1
- data/lib/asker/lang/lang.rb +18 -12
- data/lib/asker/lang/lang_factory.rb +26 -5
- data/lib/asker/lang/text_actions.rb +87 -69
- data/lib/asker/loader/code_loader.rb +3 -3
- data/lib/asker/loader/content_loader.rb +9 -5
- data/lib/asker/loader/file_loader.rb +2 -11
- data/lib/asker/loader/haml_loader.rb +15 -0
- data/lib/asker/loader/image_url_loader.rb +5 -8
- data/lib/asker/loader/input_loader.rb +23 -7
- data/lib/asker/loader/project_loader.rb +32 -29
- data/lib/asker/logger.rb +3 -4
- data/lib/asker/project.rb +28 -52
- data/lib/asker/skeleton.rb +73 -0
- metadata +62 -73
- data/docs/changelog/v2.1.md +0 -99
- data/docs/commands.md +0 -15
- data/docs/contributions.md +0 -18
- data/docs/history.md +0 -40
- data/docs/idea.md +0 -44
- data/docs/inputs/README.md +0 -39
- data/docs/inputs/code.md +0 -69
- data/docs/inputs/concepts.md +0 -142
- data/docs/inputs/jedi.md +0 -68
- data/docs/inputs/tables.md +0 -112
- data/docs/inputs/templates.md +0 -87
- data/docs/install/README.md +0 -38
- data/docs/install/manual.md +0 -26
- data/docs/install/scripts.md +0 -26
- data/docs/revise/asker-file.md +0 -41
- data/docs/revise/buenas-practicas/01-convocatoria.md +0 -30
- data/docs/revise/buenas-practicas/02-formulario.md +0 -35
- data/docs/revise/buenas-practicas/03-descripcion.md +0 -63
- data/docs/revise/buenas-practicas/04-resultados.md +0 -17
- data/docs/revise/buenas-practicas/05-reproducir.md +0 -10
- data/docs/revise/ejemplos/01/README.md +0 -27
- data/docs/revise/ejemplos/02/README.md +0 -31
- data/docs/revise/ejemplos/03/README.md +0 -31
- data/docs/revise/ejemplos/04/README.md +0 -37
- data/docs/revise/ejemplos/05/README.md +0 -25
- data/docs/revise/ejemplos/06/README.md +0 -43
- data/docs/revise/ejemplos/README.md +0 -11
- data/docs/revise/projects.md +0 -74
- data/lib/asker/code/ai/base_code_ai.rb +0 -48
- data/lib/asker/code/code.rb +0 -53
- data/lib/asker/exporter/concept_ai_screen_exporter.rb +0 -115
- data/lib/asker/exporter/concept_screen_exporter.rb +0 -25
- data/lib/asker/exporter/main.rb +0 -9
data/lib/asker/logger.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'application'
|
|
3
4
|
require_relative 'project'
|
|
4
5
|
|
|
5
6
|
# Display and log project messages
|
|
@@ -7,10 +8,8 @@ module Logger
|
|
|
7
8
|
##
|
|
8
9
|
# Display and log text
|
|
9
10
|
def self.verbose(msg)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
project.get(:logfile).write("#{msg}\n") if project.get(:logfile)
|
|
13
|
-
# project.get(:logfile)&.project.get(:logfile).write("#{msg}\n")
|
|
11
|
+
puts msg if Application.instance.config['global']['verbose'] == 'yes'
|
|
12
|
+
Project.instance.get(:logfile)&.write("#{msg}\n")
|
|
14
13
|
end
|
|
15
14
|
|
|
16
15
|
##
|
data/lib/asker/project.rb
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
require 'singleton'
|
|
4
4
|
require 'rainbow'
|
|
5
|
-
require 'fileutils'
|
|
5
|
+
# require 'fileutils'
|
|
6
6
|
require_relative 'application'
|
|
7
|
+
require_relative 'logger'
|
|
7
8
|
|
|
8
9
|
# Contains Project data and methods
|
|
9
10
|
class Project
|
|
@@ -20,16 +21,8 @@ class Project
|
|
|
20
21
|
# Reset project params
|
|
21
22
|
def reset
|
|
22
23
|
@default = { inputbasedir: FileUtils.pwd,
|
|
23
|
-
outputdir: 'output',
|
|
24
|
-
category: :none,
|
|
25
|
-
formula_weights: [1, 1, 1],
|
|
26
|
-
lang: 'en',
|
|
27
|
-
locales: %w[en es javascript math python ruby sql],
|
|
28
|
-
show_mode: :default,
|
|
29
|
-
verbose: true,
|
|
30
24
|
stages: { d: true, b: true, f: true, i: true, s: true, t: true },
|
|
31
|
-
threshold: 0.5
|
|
32
|
-
color_output: true }
|
|
25
|
+
threshold: 0.5 }
|
|
33
26
|
@param = {}
|
|
34
27
|
end
|
|
35
28
|
|
|
@@ -58,33 +51,27 @@ class Project
|
|
|
58
51
|
# * process_file
|
|
59
52
|
# * inputdirs
|
|
60
53
|
def open
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
|
64
58
|
@param[:projectname] = @param[:projectname] ||
|
|
65
59
|
File.basename(@param[:process_file], ext)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@param[:logname] = @param[:
|
|
70
|
-
|
|
71
|
-
@param[:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
@param[:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
@param[:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
File.join(get(:outputdir), @param[:outputname])
|
|
82
|
-
@param[:lessonpath] = @param[:lessonpath] ||
|
|
83
|
-
File.join(get(:outputdir), @param[:lessonname])
|
|
84
|
-
@param[:yamlpath] = @param[:yamlpath] ||
|
|
85
|
-
File.join(get(:outputdir), @param[:yamlname])
|
|
86
|
-
|
|
87
|
-
Dir.mkdir(get(:outputdir)) unless Dir.exist?(get(:outputdir))
|
|
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)
|
|
88
75
|
create_log_file
|
|
89
76
|
create_output_file
|
|
90
77
|
create_lesson_file
|
|
@@ -100,19 +87,6 @@ class Project
|
|
|
100
87
|
get(:yamlfile).close
|
|
101
88
|
end
|
|
102
89
|
|
|
103
|
-
##
|
|
104
|
-
# Display and log text
|
|
105
|
-
def verbose(msg)
|
|
106
|
-
puts msg if get(:verbose)
|
|
107
|
-
get(:logfile).write(msg.to_s + "\n") if get(:logfile)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
##
|
|
111
|
-
# Display and log text line
|
|
112
|
-
def verboseln(msg)
|
|
113
|
-
verbose(msg + "\n")
|
|
114
|
-
end
|
|
115
|
-
|
|
116
90
|
def method_missing(method, *_args, &_block)
|
|
117
91
|
get(method)
|
|
118
92
|
end
|
|
@@ -131,13 +105,14 @@ class Project
|
|
|
131
105
|
f.write("Author : David Vargas Ruiz\n")
|
|
132
106
|
f.write('=' * 50 + "\n\n")
|
|
133
107
|
|
|
134
|
-
verbose '[INFO] Project open'
|
|
135
|
-
verbose ' ├── inputdirs = ' + Rainbow(get(:inputdirs)).bright
|
|
136
|
-
verbose ' └── process_file = ' + Rainbow(get(:process_file)).bright
|
|
108
|
+
Logger.verbose '[INFO] Project open'
|
|
109
|
+
Logger.verbose ' ├── inputdirs = ' + Rainbow(get(:inputdirs)).bright
|
|
110
|
+
Logger.verbose ' └── process_file = ' + Rainbow(get(:process_file)).bright
|
|
137
111
|
end
|
|
138
112
|
|
|
139
113
|
# Create or reset output file
|
|
140
114
|
def create_output_file
|
|
115
|
+
config = Application.instance.config
|
|
141
116
|
@param[:outputfile] = File.open(get(:outputpath), 'w')
|
|
142
117
|
f = get(:outputfile)
|
|
143
118
|
f.write('// ' + ('=' * 50) + "\n")
|
|
@@ -147,7 +122,8 @@ class Project
|
|
|
147
122
|
f.write("// Time : #{Time.new}\n")
|
|
148
123
|
f.write("// Author : David Vargas Ruiz\n")
|
|
149
124
|
f.write('// ' + ('=' * 50) + "\n\n")
|
|
150
|
-
|
|
125
|
+
category = config['questions']['category']
|
|
126
|
+
f.write("$CATEGORY: $course$/#{category}\n") unless category.nil?
|
|
151
127
|
end
|
|
152
128
|
|
|
153
129
|
# Create or reset lesson file
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'rainbow'
|
|
5
|
+
|
|
6
|
+
# Skeleton: create skeleton for asker input files
|
|
7
|
+
# * create
|
|
8
|
+
# * create_main_dir_and_files
|
|
9
|
+
# * create_dir
|
|
10
|
+
# * create_dirs
|
|
11
|
+
# * copyfile
|
|
12
|
+
module Skeleton
|
|
13
|
+
##
|
|
14
|
+
# Create skeleton for asker input files
|
|
15
|
+
# @param inputpath (String)
|
|
16
|
+
# rubocop:disable Metrics/MethodLength
|
|
17
|
+
def self.create_input(inputpath)
|
|
18
|
+
puts "\n[INFO] Creating example input #{Rainbow(inputpath).bright}"
|
|
19
|
+
if File.extname(inputpath) == '.haml'
|
|
20
|
+
dirpath = File.dirname(inputpath)
|
|
21
|
+
filename = File.basename(inputpath)
|
|
22
|
+
else
|
|
23
|
+
dirpath = inputpath
|
|
24
|
+
filename = 'example-concept.haml'
|
|
25
|
+
end
|
|
26
|
+
create_dir dirpath
|
|
27
|
+
source = File.join(File.dirname(__FILE__), 'files/example-concept.haml')
|
|
28
|
+
copyfile(source, File.join(dirpath, filename))
|
|
29
|
+
end
|
|
30
|
+
# rubocop:enable Metrics/MethodLength
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Create default configuration files
|
|
34
|
+
def self.create_configuration
|
|
35
|
+
puts "\n[INFO] Creating configuration files"
|
|
36
|
+
src = File.join(File.dirname(__FILE__), 'files', 'config.ini')
|
|
37
|
+
dst = File.join('config.ini')
|
|
38
|
+
copyfile(src, dst)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# Create folder
|
|
43
|
+
# @param dirpath (String)
|
|
44
|
+
private_class_method def self.create_dir(dirpath)
|
|
45
|
+
if Dir.exist? dirpath
|
|
46
|
+
puts "* Exists dir! => #{Rainbow(dirpath).yellow}"
|
|
47
|
+
else
|
|
48
|
+
begin
|
|
49
|
+
FileUtils.mkdir_p(dirpath)
|
|
50
|
+
puts "* Create dir => #{Rainbow(dirpath).green}"
|
|
51
|
+
rescue StandardError
|
|
52
|
+
puts "* Create dir ERROR => #{Rainbow(dirpath).red}"
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
##
|
|
58
|
+
# Copy target file to dest
|
|
59
|
+
# @param target (String)
|
|
60
|
+
# @param dest (String)
|
|
61
|
+
private_class_method def self.copyfile(target, dest)
|
|
62
|
+
if File.exist? dest
|
|
63
|
+
puts "* Exists file! => #{Rainbow(dest).yellow}"
|
|
64
|
+
return true
|
|
65
|
+
end
|
|
66
|
+
begin
|
|
67
|
+
FileUtils.cp(target, dest)
|
|
68
|
+
puts "* Create file => #{Rainbow(dest).green}"
|
|
69
|
+
rescue StandardError
|
|
70
|
+
puts "* Create file ERROR => #{Rainbow(dest).red}"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
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.1.
|
|
4
|
+
version: 2.1.7
|
|
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: 2020-
|
|
11
|
+
date: 2020-04-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: haml
|
|
@@ -80,6 +80,20 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0.20'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: base64_compatible
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0.0'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0.0'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: minitest
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -116,70 +130,21 @@ executables:
|
|
|
116
130
|
extensions: []
|
|
117
131
|
extra_rdoc_files:
|
|
118
132
|
- README.md
|
|
119
|
-
- LICENSE
|
|
120
|
-
- docs/idea.md
|
|
121
|
-
- docs/changelog/v2.1.md
|
|
122
|
-
- docs/revise/buenas-practicas/05-reproducir.md
|
|
123
|
-
- docs/revise/buenas-practicas/04-resultados.md
|
|
124
|
-
- docs/revise/buenas-practicas/01-convocatoria.md
|
|
125
|
-
- docs/revise/buenas-practicas/02-formulario.md
|
|
126
|
-
- docs/revise/buenas-practicas/03-descripcion.md
|
|
127
|
-
- docs/revise/ejemplos/01/README.md
|
|
128
|
-
- docs/revise/ejemplos/04/README.md
|
|
129
|
-
- docs/revise/ejemplos/06/README.md
|
|
130
|
-
- docs/revise/ejemplos/02/README.md
|
|
131
|
-
- docs/revise/ejemplos/05/README.md
|
|
132
|
-
- docs/revise/ejemplos/03/README.md
|
|
133
|
-
- docs/revise/ejemplos/README.md
|
|
134
|
-
- docs/revise/asker-file.md
|
|
135
|
-
- docs/revise/projects.md
|
|
136
|
-
- docs/commands.md
|
|
137
|
-
- docs/contributions.md
|
|
138
|
-
- docs/install/scripts.md
|
|
139
|
-
- docs/install/README.md
|
|
140
|
-
- docs/install/manual.md
|
|
141
|
-
- docs/inputs/concepts.md
|
|
142
|
-
- docs/inputs/tables.md
|
|
143
|
-
- docs/inputs/code.md
|
|
144
|
-
- docs/inputs/jedi.md
|
|
145
|
-
- docs/inputs/templates.md
|
|
146
|
-
- docs/inputs/README.md
|
|
147
|
-
- docs/history.md
|
|
133
|
+
- LICENSE.txt
|
|
148
134
|
files:
|
|
149
|
-
- LICENSE
|
|
135
|
+
- LICENSE.txt
|
|
150
136
|
- README.md
|
|
151
137
|
- bin/asker
|
|
152
|
-
- docs/changelog/v2.1.md
|
|
153
|
-
- docs/commands.md
|
|
154
|
-
- docs/contributions.md
|
|
155
|
-
- docs/history.md
|
|
156
|
-
- docs/idea.md
|
|
157
|
-
- docs/inputs/README.md
|
|
158
|
-
- docs/inputs/code.md
|
|
159
|
-
- docs/inputs/concepts.md
|
|
160
|
-
- docs/inputs/jedi.md
|
|
161
|
-
- docs/inputs/tables.md
|
|
162
|
-
- docs/inputs/templates.md
|
|
163
|
-
- docs/install/README.md
|
|
164
|
-
- docs/install/manual.md
|
|
165
|
-
- docs/install/scripts.md
|
|
166
|
-
- docs/revise/asker-file.md
|
|
167
|
-
- docs/revise/buenas-practicas/01-convocatoria.md
|
|
168
|
-
- docs/revise/buenas-practicas/02-formulario.md
|
|
169
|
-
- docs/revise/buenas-practicas/03-descripcion.md
|
|
170
|
-
- docs/revise/buenas-practicas/04-resultados.md
|
|
171
|
-
- docs/revise/buenas-practicas/05-reproducir.md
|
|
172
|
-
- docs/revise/ejemplos/01/README.md
|
|
173
|
-
- docs/revise/ejemplos/02/README.md
|
|
174
|
-
- docs/revise/ejemplos/03/README.md
|
|
175
|
-
- docs/revise/ejemplos/04/README.md
|
|
176
|
-
- docs/revise/ejemplos/05/README.md
|
|
177
|
-
- docs/revise/ejemplos/06/README.md
|
|
178
|
-
- docs/revise/ejemplos/README.md
|
|
179
|
-
- docs/revise/projects.md
|
|
180
138
|
- lib/asker.rb
|
|
181
139
|
- lib/asker/ai/ai.rb
|
|
182
140
|
- lib/asker/ai/ai_calculate.rb
|
|
141
|
+
- lib/asker/ai/code/base_code_ai.rb
|
|
142
|
+
- lib/asker/ai/code/code_ai_factory.rb
|
|
143
|
+
- lib/asker/ai/code/javascript_code_ai.rb
|
|
144
|
+
- lib/asker/ai/code/problem_code_ai.rb
|
|
145
|
+
- lib/asker/ai/code/python_code_ai.rb
|
|
146
|
+
- lib/asker/ai/code/ruby_code_ai.rb
|
|
147
|
+
- lib/asker/ai/code/sql_code_ai.rb
|
|
183
148
|
- lib/asker/ai/concept_ai.rb
|
|
184
149
|
- lib/asker/ai/question.rb
|
|
185
150
|
- lib/asker/ai/stages/base_stage.rb
|
|
@@ -193,13 +158,7 @@ files:
|
|
|
193
158
|
- lib/asker/application.rb
|
|
194
159
|
- lib/asker/checker.rb
|
|
195
160
|
- lib/asker/cli.rb
|
|
196
|
-
- lib/asker/code
|
|
197
|
-
- lib/asker/code/ai/code_ai_factory.rb
|
|
198
|
-
- lib/asker/code/ai/javascript_code_ai.rb
|
|
199
|
-
- lib/asker/code/ai/python_code_ai.rb
|
|
200
|
-
- lib/asker/code/ai/ruby_code_ai.rb
|
|
201
|
-
- lib/asker/code/ai/sql_code_ai.rb
|
|
202
|
-
- lib/asker/code/code.rb
|
|
161
|
+
- lib/asker/data/code.rb
|
|
203
162
|
- lib/asker/data/column.rb
|
|
204
163
|
- lib/asker/data/concept.rb
|
|
205
164
|
- lib/asker/data/data_field.rb
|
|
@@ -207,15 +166,43 @@ files:
|
|
|
207
166
|
- lib/asker/data/table.rb
|
|
208
167
|
- lib/asker/data/template.rb
|
|
209
168
|
- lib/asker/data/world.rb
|
|
169
|
+
- lib/asker/displayer/code_displayer.rb
|
|
170
|
+
- lib/asker/displayer/concept_ai_displayer.rb
|
|
171
|
+
- lib/asker/displayer/concept_displayer.rb
|
|
172
|
+
- lib/asker/displayer/stats_displayer.rb
|
|
210
173
|
- lib/asker/exporter/code_gift_exporter.rb
|
|
211
|
-
- lib/asker/exporter/code_screen_exporter.rb
|
|
212
174
|
- lib/asker/exporter/concept_ai_gift_exporter.rb
|
|
213
|
-
- lib/asker/exporter/concept_ai_screen_exporter.rb
|
|
214
175
|
- lib/asker/exporter/concept_ai_yaml_exporter.rb
|
|
215
176
|
- lib/asker/exporter/concept_doc_exporter.rb
|
|
216
|
-
- lib/asker/exporter/
|
|
217
|
-
- lib/asker/exporter/main.rb
|
|
177
|
+
- lib/asker/exporter/output_file_exporter.rb
|
|
218
178
|
- lib/asker/files/config.ini
|
|
179
|
+
- lib/asker/files/example-code.haml
|
|
180
|
+
- lib/asker/files/example-concept.haml
|
|
181
|
+
- lib/asker/files/language/du/templates.yaml
|
|
182
|
+
- lib/asker/files/language/en/connectors.yaml
|
|
183
|
+
- lib/asker/files/language/en/mistakes.yaml
|
|
184
|
+
- lib/asker/files/language/en/templates.yaml
|
|
185
|
+
- lib/asker/files/language/es/connectors.yaml
|
|
186
|
+
- lib/asker/files/language/es/mistakes.yaml
|
|
187
|
+
- lib/asker/files/language/es/templates.yaml
|
|
188
|
+
- lib/asker/files/language/fr/connectors.yaml
|
|
189
|
+
- lib/asker/files/language/fr/mistakes.yaml
|
|
190
|
+
- lib/asker/files/language/fr/templates.yaml
|
|
191
|
+
- lib/asker/files/language/javascript/connectors.yaml
|
|
192
|
+
- lib/asker/files/language/javascript/mistakes.yaml
|
|
193
|
+
- lib/asker/files/language/javascript/templates.yaml
|
|
194
|
+
- lib/asker/files/language/math/connectors.yaml
|
|
195
|
+
- lib/asker/files/language/math/mistakes.yaml
|
|
196
|
+
- lib/asker/files/language/math/templates.yaml
|
|
197
|
+
- lib/asker/files/language/python/connectors.yaml
|
|
198
|
+
- lib/asker/files/language/python/mistakes.yaml
|
|
199
|
+
- lib/asker/files/language/python/templates.yaml
|
|
200
|
+
- lib/asker/files/language/ruby/connectors.yaml
|
|
201
|
+
- lib/asker/files/language/ruby/mistakes.yaml
|
|
202
|
+
- lib/asker/files/language/ruby/templates.yaml
|
|
203
|
+
- lib/asker/files/language/sql/connectors.yaml
|
|
204
|
+
- lib/asker/files/language/sql/mistakes.yaml
|
|
205
|
+
- lib/asker/files/language/sql/templates.yaml
|
|
219
206
|
- lib/asker/formatter/code_string_formatter.rb
|
|
220
207
|
- lib/asker/formatter/concept_doc_formatter.rb
|
|
221
208
|
- lib/asker/formatter/concept_string_formatter.rb
|
|
@@ -230,12 +217,14 @@ files:
|
|
|
230
217
|
- lib/asker/loader/content_loader.rb
|
|
231
218
|
- lib/asker/loader/directory_loader.rb
|
|
232
219
|
- lib/asker/loader/file_loader.rb
|
|
220
|
+
- lib/asker/loader/haml_loader.rb
|
|
233
221
|
- lib/asker/loader/image_url_loader.rb
|
|
234
222
|
- lib/asker/loader/input_loader.rb
|
|
235
223
|
- lib/asker/loader/project_loader.rb
|
|
236
224
|
- lib/asker/logger.rb
|
|
237
225
|
- lib/asker/project.rb
|
|
238
|
-
|
|
226
|
+
- lib/asker/skeleton.rb
|
|
227
|
+
homepage: https://github.com/dvarrui/asker/tree/devel
|
|
239
228
|
licenses:
|
|
240
229
|
- GPL-3.0
|
|
241
230
|
metadata: {}
|
|
@@ -247,7 +236,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
247
236
|
requirements:
|
|
248
237
|
- - ">="
|
|
249
238
|
- !ruby/object:Gem::Version
|
|
250
|
-
version: 2.
|
|
239
|
+
version: 2.5.0
|
|
251
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
241
|
requirements:
|
|
253
242
|
- - ">="
|
data/docs/changelog/v2.1.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# version 2.1
|
|
3
|
-
|
|
4
|
-
Things/ideas to do for 2.1 Asker version.
|
|
5
|
-
|
|
6
|
-
## GUI
|
|
7
|
-
|
|
8
|
-
Create a graphic fron end to execute asker and edit input files.
|
|
9
|
-
|
|
10
|
-
## Videos
|
|
11
|
-
|
|
12
|
-
* Documentation: Revise documentation
|
|
13
|
-
* Perhaps, videos on youtube explaining all this: (1) Get documentation, (2) Installation, (3) Consult demo input, (4) Create our input file usign def, (5) Add tables to our input file.
|
|
14
|
-
|
|
15
|
-
## Languages
|
|
16
|
-
|
|
17
|
-
* Language support: French, Dutch, Catalán and Esperanto.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Better table keyword
|
|
22
|
-
|
|
23
|
-
* Process tables definitions with more than 2 fields.
|
|
24
|
-
|
|
25
|
-
## info keyword
|
|
26
|
-
|
|
27
|
-
* Add new keyword called info. Example:
|
|
28
|
-
```
|
|
29
|
-
%map{ :lang => 'en', :context => 'rock, bands', :version => '1'}
|
|
30
|
-
%info Generic text about music, rock, bands, concerts, etc.
|
|
31
|
-
%info more...
|
|
32
|
-
```
|
|
33
|
-
* When AI create new question may use (randomly) info text to be included into it. Example:
|
|
34
|
-
```
|
|
35
|
-
Rock music style was created for ....
|
|
36
|
-
|
|
37
|
-
Definition of [*]: Australian rock band formed by Scottish-born brothers Malcolm and Angus Young.
|
|
38
|
-
|
|
39
|
-
Select right option:
|
|
40
|
-
a. Led Zepellin
|
|
41
|
-
b. Beatles
|
|
42
|
-
c. ACDC
|
|
43
|
-
d. None
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Code inputs
|
|
47
|
-
|
|
48
|
-
Let's take a look at the [issues](https://github.com/dvarrui/asker/issues)
|
|
49
|
-
|
|
50
|
-
Actually we are experimenting with new keywords: code, type, path, features.
|
|
51
|
-
|
|
52
|
-
Example:
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
%code
|
|
56
|
-
%type ruby
|
|
57
|
-
%path files/string1.rb
|
|
58
|
-
%features
|
|
59
|
-
%row Muestra en pantalla "Hola Mundo!"
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Where `type` could be: ruby, python or sql.
|
|
63
|
-
|
|
64
|
-
> Also bash, math, crontab, fstab, etc.
|
|
65
|
-
|
|
66
|
-
## More output formats
|
|
67
|
-
|
|
68
|
-
* Images
|
|
69
|
-
* Questions with images, sounds or other files embebed.
|
|
70
|
-
* Embeded images into question texts
|
|
71
|
-
* Work on other export formats (Perhaps Moodle format)
|
|
72
|
-
|
|
73
|
-
## Etc
|
|
74
|
-
|
|
75
|
-
* Texts
|
|
76
|
-
* Concept name drop and fill...
|
|
77
|
-
* Question types
|
|
78
|
-
* crossword
|
|
79
|
-
* type hangmann
|
|
80
|
-
* Dictionary
|
|
81
|
-
* Diccionario de sinónimos, antónimos
|
|
82
|
-
* Learn about the words or better download dictonary from RAE?
|
|
83
|
-
|
|
84
|
-
## Quizzer
|
|
85
|
-
|
|
86
|
-
* Export questions to YAML format then use them with app quizzer to create PDF exams.
|
|
87
|
-
* For example:
|
|
88
|
-
```
|
|
89
|
-
# Create output/funiture-questions.yaml
|
|
90
|
-
asker en/home/furniture.haml
|
|
91
|
-
|
|
92
|
-
# Create 3 PDF exams with 10 questions every one
|
|
93
|
-
quizzer 3x10 output/furniture-questions.yaml
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Develop more Tests
|
|
97
|
-
|
|
98
|
-
* minitest for every class into lib directory
|
|
99
|
-
* Apply rubocop rules to all them.
|