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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/{LICENSE → LICENSE.txt} +0 -0
  3. data/README.md +17 -18
  4. data/bin/asker +1 -0
  5. data/lib/asker.rb +43 -74
  6. data/lib/asker/ai/ai.rb +4 -0
  7. data/lib/asker/ai/code/base_code_ai.rb +104 -0
  8. data/lib/asker/{code/ai → ai/code}/code_ai_factory.rb +11 -1
  9. data/lib/asker/{code/ai → ai/code}/javascript_code_ai.rb +2 -5
  10. data/lib/asker/ai/code/problem_code_ai.rb +176 -0
  11. data/lib/asker/{code/ai → ai/code}/python_code_ai.rb +2 -5
  12. data/lib/asker/{code/ai → ai/code}/ruby_code_ai.rb +14 -7
  13. data/lib/asker/{code/ai → ai/code}/sql_code_ai.rb +2 -5
  14. data/lib/asker/ai/concept_ai.rb +1 -0
  15. data/lib/asker/ai/stages/stage_t.rb +76 -76
  16. data/lib/asker/application.rb +19 -3
  17. data/lib/asker/checker.rb +152 -53
  18. data/lib/asker/cli.rb +19 -22
  19. data/lib/asker/data/code.rb +73 -0
  20. data/lib/asker/data/column.rb +31 -21
  21. data/lib/asker/data/concept.rb +42 -45
  22. data/lib/asker/data/data_field.rb +14 -0
  23. data/lib/asker/data/row.rb +75 -52
  24. data/lib/asker/data/table.rb +89 -42
  25. data/lib/asker/data/world.rb +58 -32
  26. data/lib/asker/{exporter/code_screen_exporter.rb → displayer/code_displayer.rb} +6 -6
  27. data/lib/asker/displayer/concept_ai_displayer.rb +132 -0
  28. data/lib/asker/displayer/concept_displayer.rb +29 -0
  29. data/lib/asker/displayer/stats_displayer.rb +14 -0
  30. data/lib/asker/exporter/code_gift_exporter.rb +10 -11
  31. data/lib/asker/exporter/concept_ai_gift_exporter.rb +23 -11
  32. data/lib/asker/exporter/concept_ai_yaml_exporter.rb +9 -7
  33. data/lib/asker/exporter/concept_doc_exporter.rb +9 -15
  34. data/lib/asker/exporter/output_file_exporter.rb +18 -0
  35. data/lib/asker/files/config.ini +37 -0
  36. data/lib/asker/files/example-code.haml +0 -0
  37. data/lib/asker/files/example-concept.haml +29 -0
  38. data/lib/asker/files/language/du/templates.yaml +50 -0
  39. data/lib/asker/files/language/en/connectors.yaml +44 -0
  40. data/lib/asker/files/language/en/mistakes.yaml +37 -0
  41. data/lib/asker/files/language/en/templates.yaml +29 -0
  42. data/lib/asker/files/language/es/connectors.yaml +92 -0
  43. data/lib/asker/files/language/es/mistakes.yaml +82 -0
  44. data/lib/asker/files/language/es/templates.yaml +29 -0
  45. data/lib/asker/files/language/fr/connectors.yaml +92 -0
  46. data/lib/asker/files/language/fr/mistakes.yaml +82 -0
  47. data/lib/asker/files/language/fr/templates.yaml +29 -0
  48. data/lib/asker/files/language/javascript/connectors.yaml +11 -0
  49. data/lib/asker/files/language/javascript/mistakes.yaml +30 -0
  50. data/lib/asker/files/language/javascript/templates.yaml +3 -0
  51. data/lib/asker/files/language/math/connectors.yaml +2 -0
  52. data/lib/asker/files/language/math/mistakes.yaml +2 -0
  53. data/lib/asker/files/language/math/templates.yaml +1 -0
  54. data/lib/asker/files/language/python/connectors.yaml +11 -0
  55. data/lib/asker/files/language/python/mistakes.yaml +26 -0
  56. data/lib/asker/files/language/python/templates.yaml +3 -0
  57. data/lib/asker/files/language/ruby/connectors.yaml +11 -0
  58. data/lib/asker/files/language/ruby/mistakes.yaml +33 -0
  59. data/lib/asker/files/language/ruby/templates.yaml +3 -0
  60. data/lib/asker/files/language/sql/connectors.yaml +6 -0
  61. data/lib/asker/files/language/sql/mistakes.yaml +11 -0
  62. data/lib/asker/files/language/sql/templates.yaml +2 -0
  63. data/lib/asker/formatter/concept_string_formatter.rb +9 -8
  64. data/lib/asker/formatter/question_gift_formatter.rb +9 -1
  65. data/lib/asker/lang/lang.rb +18 -12
  66. data/lib/asker/lang/lang_factory.rb +26 -5
  67. data/lib/asker/lang/text_actions.rb +87 -69
  68. data/lib/asker/loader/code_loader.rb +3 -3
  69. data/lib/asker/loader/content_loader.rb +9 -5
  70. data/lib/asker/loader/file_loader.rb +2 -11
  71. data/lib/asker/loader/haml_loader.rb +15 -0
  72. data/lib/asker/loader/image_url_loader.rb +5 -8
  73. data/lib/asker/loader/input_loader.rb +23 -7
  74. data/lib/asker/loader/project_loader.rb +32 -29
  75. data/lib/asker/logger.rb +3 -4
  76. data/lib/asker/project.rb +28 -52
  77. data/lib/asker/skeleton.rb +73 -0
  78. metadata +62 -73
  79. data/docs/changelog/v2.1.md +0 -99
  80. data/docs/commands.md +0 -15
  81. data/docs/contributions.md +0 -18
  82. data/docs/history.md +0 -40
  83. data/docs/idea.md +0 -44
  84. data/docs/inputs/README.md +0 -39
  85. data/docs/inputs/code.md +0 -69
  86. data/docs/inputs/concepts.md +0 -142
  87. data/docs/inputs/jedi.md +0 -68
  88. data/docs/inputs/tables.md +0 -112
  89. data/docs/inputs/templates.md +0 -87
  90. data/docs/install/README.md +0 -38
  91. data/docs/install/manual.md +0 -26
  92. data/docs/install/scripts.md +0 -26
  93. data/docs/revise/asker-file.md +0 -41
  94. data/docs/revise/buenas-practicas/01-convocatoria.md +0 -30
  95. data/docs/revise/buenas-practicas/02-formulario.md +0 -35
  96. data/docs/revise/buenas-practicas/03-descripcion.md +0 -63
  97. data/docs/revise/buenas-practicas/04-resultados.md +0 -17
  98. data/docs/revise/buenas-practicas/05-reproducir.md +0 -10
  99. data/docs/revise/ejemplos/01/README.md +0 -27
  100. data/docs/revise/ejemplos/02/README.md +0 -31
  101. data/docs/revise/ejemplos/03/README.md +0 -31
  102. data/docs/revise/ejemplos/04/README.md +0 -37
  103. data/docs/revise/ejemplos/05/README.md +0 -25
  104. data/docs/revise/ejemplos/06/README.md +0 -43
  105. data/docs/revise/ejemplos/README.md +0 -11
  106. data/docs/revise/projects.md +0 -74
  107. data/lib/asker/code/ai/base_code_ai.rb +0 -48
  108. data/lib/asker/code/code.rb +0 -53
  109. data/lib/asker/exporter/concept_ai_screen_exporter.rb +0 -115
  110. data/lib/asker/exporter/concept_screen_exporter.rb +0 -25
  111. data/lib/asker/exporter/main.rb +0 -9
@@ -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
- project = Project.instance
11
- puts msg if project.get(:verbose)
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
  ##
@@ -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
- ext = '.haml'
62
- @param[:process_file] = @param[:process_file] ||
63
- get(:projectdir).split(File::SEPARATOR).last + ext
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
- @param[:inputdirs] = @param[:inputdirs] ||
67
- File.join(get(:inputbasedir), @param[:projectdir])
68
-
69
- @param[:logname] = @param[:logname] ||
70
- "#{@param[:projectname]}-log.txt"
71
- @param[:outputname] = @param[:outputname] ||
72
- "#{@param[:projectname]}-gift.txt"
73
- @param[:lessonname] = @param[:lessonname] ||
74
- "#{@param[:projectname]}-doc.txt"
75
- @param[:yamlname] = @param[:yamlname] ||
76
- "#{@param[:projectname]}.yaml"
77
-
78
- @param[:logpath] = @param[:logpath] ||
79
- File.join(get(:outputdir), @param[:logname])
80
- @param[:outputpath] = @param[:outputpath] ||
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
- f.write("$CATEGORY: $course$/#{get(:category)}\n") unless get(:category) == :none
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.2
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-02-25 00:00:00.000000000 Z
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/ai/base_code_ai.rb
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/concept_screen_exporter.rb
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
- homepage: https://github.com/dvarrui/asker
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.3.0
239
+ version: 2.5.0
251
240
  required_rubygems_version: !ruby/object:Gem::Requirement
252
241
  requirements:
253
242
  - - ">="
@@ -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.