asker-tool 2.1.2 → 2.1.7

Sign up to get free protection for your applications and to get access to all the features.
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.