asker-tool 2.1.3 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -17
  3. data/lib/asker.rb +40 -83
  4. data/lib/asker/application.rb +1 -1
  5. data/lib/asker/checker.rb +42 -25
  6. data/lib/asker/cli.rb +1 -1
  7. data/lib/asker/data/world.rb +2 -0
  8. data/lib/asker/{exporter/code_screen_exporter.rb → displayer/code_displayer.rb} +6 -6
  9. data/lib/asker/{exporter/concept_ai_screen_exporter.rb → displayer/concept_ai_displayer.rb} +27 -29
  10. data/lib/asker/displayer/concept_displayer.rb +27 -0
  11. data/lib/asker/displayer/stats_displayer.rb +13 -0
  12. data/lib/asker/exporter/code_gift_exporter.rb +10 -11
  13. data/lib/asker/exporter/concept_ai_gift_exporter.rb +9 -9
  14. data/lib/asker/exporter/concept_ai_yaml_exporter.rb +2 -4
  15. data/lib/asker/exporter/concept_doc_exporter.rb +9 -15
  16. data/lib/asker/exporter/output_file_exporter.rb +18 -0
  17. data/lib/asker/files/example-concept.haml +25 -8
  18. data/lib/asker/formatter/concept_string_formatter.rb +9 -8
  19. data/lib/asker/lang/lang.rb +3 -4
  20. data/lib/asker/lang/locales/du/templates.yaml +50 -0
  21. data/lib/asker/lang/locales/en/connectors.yaml +44 -0
  22. data/lib/asker/lang/locales/en/mistakes.yaml +37 -0
  23. data/lib/asker/lang/locales/en/templates.yaml +29 -0
  24. data/lib/asker/lang/locales/es/connectors.yaml +92 -0
  25. data/lib/asker/lang/locales/es/mistakes.yaml +82 -0
  26. data/lib/asker/lang/locales/es/templates.yaml +29 -0
  27. data/lib/asker/lang/locales/fr/connectors.yaml +92 -0
  28. data/lib/asker/lang/locales/fr/mistakes.yaml +82 -0
  29. data/lib/asker/lang/locales/fr/templates.yaml +29 -0
  30. data/lib/asker/lang/locales/javascript/connectors.yaml +11 -0
  31. data/lib/asker/lang/locales/javascript/mistakes.yaml +30 -0
  32. data/lib/asker/lang/locales/javascript/templates.yaml +3 -0
  33. data/lib/asker/lang/locales/math/connectors.yaml +2 -0
  34. data/lib/asker/lang/locales/math/mistakes.yaml +2 -0
  35. data/lib/asker/lang/locales/math/templates.yaml +1 -0
  36. data/lib/asker/lang/locales/python/connectors.yaml +11 -0
  37. data/lib/asker/lang/locales/python/mistakes.yaml +26 -0
  38. data/lib/asker/lang/locales/python/templates.yaml +3 -0
  39. data/lib/asker/lang/locales/ruby/connectors.yaml +11 -0
  40. data/lib/asker/lang/locales/ruby/mistakes.yaml +33 -0
  41. data/lib/asker/lang/locales/ruby/templates.yaml +3 -0
  42. data/lib/asker/lang/locales/sql/connectors.yaml +6 -0
  43. data/lib/asker/lang/locales/sql/mistakes.yaml +11 -0
  44. data/lib/asker/lang/locales/sql/templates.yaml +2 -0
  45. data/lib/asker/loader/input_loader.rb +22 -5
  46. data/lib/asker/loader/project_loader.rb +25 -24
  47. data/lib/asker/logger.rb +1 -2
  48. data/lib/asker/project.rb +5 -3
  49. data/lib/asker/skeleton.rb +25 -24
  50. metadata +47 -63
  51. data/docs/changelog/v2.1.md +0 -99
  52. data/docs/commands.md +0 -12
  53. data/docs/contributions.md +0 -18
  54. data/docs/history.md +0 -40
  55. data/docs/idea.md +0 -44
  56. data/docs/inputs/README.md +0 -39
  57. data/docs/inputs/code.md +0 -69
  58. data/docs/inputs/concepts.md +0 -142
  59. data/docs/inputs/jedi.md +0 -68
  60. data/docs/inputs/tables.md +0 -112
  61. data/docs/inputs/templates.md +0 -87
  62. data/docs/install/README.md +0 -38
  63. data/docs/install/manual.md +0 -26
  64. data/docs/install/scripts.md +0 -38
  65. data/docs/revise/asker-file.md +0 -41
  66. data/docs/revise/buenas-practicas/01-convocatoria.md +0 -30
  67. data/docs/revise/buenas-practicas/02-formulario.md +0 -35
  68. data/docs/revise/buenas-practicas/03-descripcion.md +0 -63
  69. data/docs/revise/buenas-practicas/04-resultados.md +0 -17
  70. data/docs/revise/buenas-practicas/05-reproducir.md +0 -10
  71. data/docs/revise/ejemplos/01/README.md +0 -27
  72. data/docs/revise/ejemplos/02/README.md +0 -31
  73. data/docs/revise/ejemplos/03/README.md +0 -31
  74. data/docs/revise/ejemplos/04/README.md +0 -37
  75. data/docs/revise/ejemplos/05/README.md +0 -25
  76. data/docs/revise/ejemplos/06/README.md +0 -43
  77. data/docs/revise/ejemplos/README.md +0 -11
  78. data/docs/revise/projects.md +0 -74
  79. data/lib/asker/exporter/concept_screen_exporter.rb +0 -25
  80. data/lib/asker/exporter/main.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 649acd19a295cc267a200754428f54c987a688cf6b81487d4ea0f2662bc4968a
4
- data.tar.gz: bebb65797eefd45784b3a1db72d0f41c15ec6fca9e8792ca893670712fe425f3
3
+ metadata.gz: 39bc74c80c6c83d62fb43bee32e10d3c3503880132cbaaa81f5e14115c9286d7
4
+ data.tar.gz: b60194338ffb8429c665d726b62f784c7a0787efb79db4a079b4c13bcbcd6fe8
5
5
  SHA512:
6
- metadata.gz: 7aa8c6683ed5931197398b88d2651c06f99fa75f713643bbf04f6c31fbad900d2cdc08efc7ccc6f3ab255de04d6345e7a2751786e760444e91fda4cf84cac1eb
7
- data.tar.gz: 3440de3f9bd77a4c0b3d0ce023ef76bf3335dfe555d52d7bea91b7a9148ac0804659803ae5bd662452801e8c1cbdabc6bfe114b9ec4e2a4d74b5b5d3cef3ef8d
6
+ metadata.gz: 11b8da624fedb21e507ec7f015e8e921d8d2a85efd613e1a85646114e4b505a73f303b96b2a76ce77653cf511143f495dffcb6477959eb43ad139446547e55ae
7
+ data.tar.gz: f6c64ac247cada2b4099385e77b2e86b953f60d4250a01f2907ff811b92d10d50628ffeb0c1f8921bef5900be3f46bec18f664276e03441e8af7ae7183965f28
data/README.md CHANGED
@@ -7,41 +7,41 @@ Generate a lot of questions from an _input file_ base on your own _definitions_.
7
7
 
8
8
  ASKER helps trainers to create a huge amount of questions, from a definitions (_conceptual entities_) input file.
9
9
 
10
- Steps:
11
-
12
- 1. Create an input file with your definitions (_conceptual entities_).
13
- 1. Run _asker_ and get the results into `output` directory.
14
-
15
- Features:
16
-
17
10
  * Free Software [LICENSE](https://github.com/dvarrui/asker/blob/devel/LICENSE).
18
11
  * Multiplatform.
19
- * Input file formats: HAML, XML.
20
- * Output file format: GIFT (Moodle cuestionairs).
21
12
  * Ruby program.
22
13
 
14
+ ---
15
+ # Installation
16
+
17
+ 1. Install Ruby on your system.
18
+ 2. `gem install asker-tool`
19
+
23
20
  ---
24
21
  # Usage
25
22
 
26
- To execute ASKER, we use `asker` command, with a path to an input file as argument. For example, to run our `jedi.haml` input file example, we do:
23
+ Steps:
24
+
25
+ 1. Create an input file with your definitions (_conceptual entities_).
26
+ 1. Run _asker_ and get the results into `output` directory.
27
+
28
+ Run `asker` with our example input file as argument (`jedi.haml`):
27
29
 
28
30
  ```
29
31
  asker docs/examples/starwars/jedi.haml
30
32
  ```
31
33
 
32
- * The program generates your output files into the `output` directory by default.
33
- * In this example, we use a demo input definition file `docs/examples/starwars/jedi.haml`, that contains conceptual entities about _"Jedi's"_ context.
34
- * [Example input files](https://github.com/dvarrui/asker/blob/devel/docs/examples).
35
- * More examples at `github/dvarrui/asker-inputs` repository.
34
+ * Output files created into the `output` folder.
35
+ * This example use an example input definition file `docs/examples/starwars/jedi.haml`, with concepts about _"Jedi's"_. ;-)
36
+ * More [example input files](https://github.com/dvarrui/asker/tree/devel/docs/examples).
37
+ * More asker input files at `github/dvarrui/asker-inputs` repository.
36
38
 
37
39
  ---
38
40
  # Documentation
39
41
 
40
42
  * [Installation](https://github.com/dvarrui/asker/blob/devel/docs/install/README.md)
41
- 1. Install Ruby on your system.
42
- 2. `gem install asker-tool`
43
43
  * [Inputs](https://github.com/dvarrui/asker/blob/devel/docs/inputs/README.md)
44
- * [Commands](https://github.com/dvarrui/asker/blob/devel/docs/commands.md)
44
+ * [Usage](https://github.com/dvarrui/asker/blob/devel/docs/usage.md)
45
45
  * [Contributions](https://github.com/dvarrui/asker/blob/devel/docs/contributions.md)
46
46
  * [Base idea](https://github.com/dvarrui/asker/blob/devel/docs/idea.md)
47
47
  * [History](https://github.com/dvarrui/asker/blob/devel/docs/history.md)
data/lib/asker.rb CHANGED
@@ -2,63 +2,23 @@
2
2
 
3
3
  require 'rainbow'
4
4
 
5
- require_relative 'asker/project'
6
- require_relative 'asker/data/concept'
7
- require_relative 'asker/data/world'
8
- require_relative 'asker/ai/concept_ai'
9
- require_relative 'asker/formatter/concept_string_formatter'
10
- require_relative 'asker/exporter/main'
5
+ require_relative 'asker/displayer/concept_displayer'
6
+ require_relative 'asker/displayer/stats_displayer'
7
+ require_relative 'asker/exporter/output_file_exporter'
11
8
  require_relative 'asker/loader/project_loader'
12
9
  require_relative 'asker/loader/input_loader'
13
10
  require_relative 'asker/checker'
11
+ require_relative 'asker/logger'
14
12
  require_relative 'asker/skeleton'
15
13
 
16
- # This class does all the job
17
- # * start
18
- # * load_input_data
19
- # * create_output_files, show_create_output_files
20
- # * create_questions
21
- # * show_final_results
14
+ ##
15
+ # Asker main class
22
16
  class Asker
23
- # Initialize atributes
24
- def initialize
25
- @concepts_ai = []
26
- @concepts = []
27
- @codes = []
28
- end
29
-
30
- ##
31
- # Start working
32
- # @param args (Hash)
33
- def start(args = {})
34
- load_input_data(args)
35
- create_output_files
36
- show_final_results
37
- end
38
-
39
17
  ##
40
- # Load input data
41
- # @param args (Hash)
42
- def load_input_data(args)
43
- ProjectLoader.load(args)
44
- Project.instance.open
45
- data = InputLoader.load(Project.instance.get(:inputdirs).split(','))
46
- @concepts = data[:concepts]
47
- @codes = data[:codes]
48
- Project.instance.verbose "\n[INFO] Loading data from Internet"
49
- @world = World.new(@concepts)
50
- ConceptScreenExporter.export_all(@concepts)
51
- end
52
-
53
- ##
54
- # Create output files
55
- # * Gift
56
- # * YAML
57
- # * TXT Doc
58
- def create_output_files
59
- show_create_output_files
60
- create_questions
61
- ConceptDocExporter.new(@concepts).export
18
+ # Create asker input demo files
19
+ # @param dirpath (String)
20
+ def self.create_skeleton(dirpath)
21
+ Skeleton.create(dirpath)
62
22
  end
63
23
 
64
24
  ##
@@ -69,43 +29,40 @@ class Asker
69
29
  end
70
30
 
71
31
  ##
72
- # Create asker input demo files
73
- # @param dirpath (String)
74
- def self.create_skeleton(dirpath)
75
- Skeleton.create(dirpath)
76
- end
77
-
78
- private
79
-
80
- def show_create_output_files
81
- p = Project.instance
82
- p.verbose "\n[INFO] Creating output files"
83
- p.verbose " ├── Gift questions file => #{Rainbow(p.outputpath).bright}"
84
- p.verbose " ├── YAML questions file => #{Rainbow(p.yamlpath).bright}"
85
- p.verbose " └── Lesson file => #{Rainbow(p.lessonpath).bright}"
32
+ # Start working
33
+ # @param filepath (String) HAML or XML filepath
34
+ def self.start(filepath)
35
+ project, data = load_input(filepath)
36
+ ConceptDisplayer.show(data[:concepts], project.get(:show_mode))
37
+ create_output(project, data)
86
38
  end
87
39
 
88
40
  ##
89
- # Create questions for every "concept"
90
- # Export output to:
91
- # * GIFT format file
92
- # * YAML format file
93
- # Create questions for every "code"
94
- # Export output to GIFT format file
95
- def create_questions
96
- @concepts.each do |concept|
97
- concept_ai = ConceptAI.new(concept, @world)
98
- concept_ai.make_questions
99
- @concepts_ai << concept_ai
100
- end
101
- ConceptAIGiftExporter.export_all(@concepts_ai)
102
- ConceptAIYAMLExporter.export_all(@concepts_ai)
103
- CodeGiftExporter.export_all(@codes) # UNDER DEVELOPMENT
41
+ # Load input data
42
+ # @param args (Hash)
43
+ private_class_method def self.load_input(args)
44
+ project = ProjectLoader.load(args)
45
+ project.open # Open output files
46
+ data = InputLoader.load(project.get(:inputdirs).split(','))
47
+ [project, data]
104
48
  end
105
49
 
106
- def show_final_results
107
- ConceptAIScreenExporter.export_all(@concepts_ai)
108
- CodeScreenExporter.export_all(@codes)
109
- Project.instance.close
50
+ ##
51
+ # Create output files: Gift, YAML, TXT Doc
52
+ # rubocop:disable Metrics/AbcSize
53
+ # rubocop:disable Metrics/MethodLength
54
+ private_class_method def self.create_output(project, data)
55
+ Logger.verbose "\n[INFO] Creating output files"
56
+ Logger.verbose ' ├── Gift questions file => ' +
57
+ Rainbow(project.get(:outputpath)).bright
58
+ Logger.verbose ' ├── YAML questions file => ' +
59
+ Rainbow(project.get(:yamlpath)).bright
60
+ Logger.verbose ' └── Lesson file => ' +
61
+ Rainbow(project.get(:lessonpath)).bright
62
+ OutputFileExporter.export(data, project)
63
+ StatsDisplayer.show(data, project.get(:show_mode))
64
+ project.close # Logger use Project.get(:logfile) until the end
110
65
  end
66
+ # rubocop:enable Metrics/AbcSize
67
+ # rubocop:enable Metrics/MethodLength
111
68
  end
@@ -7,7 +7,7 @@ require 'inifile'
7
7
  class Application
8
8
  include Singleton
9
9
 
10
- VERSION = '2.1.3' # Application version
10
+ VERSION = '2.1.5' # Application version
11
11
  NAME = 'asker' # Application name
12
12
  GEM = 'asker-tool' # Gem name
13
13
  attr_reader :config
data/lib/asker/checker.rb CHANGED
@@ -1,7 +1,15 @@
1
1
 
2
2
  require 'rainbow'
3
3
 
4
+ ##
5
+ # Check HAML file syntax
4
6
  module Checker
7
+ ##
8
+ # Check:
9
+ # * file exist
10
+ # * filename extension
11
+ # * and HAML syntax
12
+ # @param filepath (String)
5
13
  def self.check(filepath)
6
14
  unless File.exist? filepath
7
15
  puts Rainbow("File not found!").red.bright
@@ -14,6 +22,9 @@ module Checker
14
22
  check_filepath(filepath)
15
23
  end
16
24
 
25
+ ##
26
+ # Check HAML syntax
27
+ # @param filepath (String)
17
28
  def self.check_filepath(filepath)
18
29
  data = Data.new(filepath)
19
30
  data.check
@@ -85,6 +96,8 @@ module Checker
85
96
  @ok
86
97
  end
87
98
 
99
+ private
100
+
88
101
  def check_empty_lines(line, index)
89
102
  if line.strip.size.zero? or line.start_with? '#'
90
103
  @outputs[index][:type] = :empty
@@ -100,12 +113,12 @@ module Checker
100
113
  @outputs[index][:state] = :ok
101
114
  else
102
115
  @outputs[index][:state] = :err
103
- @outputs[index][:msg] = "Start with '%map{'"
116
+ @outputs[index][:msg] = 'Start with %map{'
104
117
  end
105
118
  elsif index > 0 and line.include?('%map{')
106
119
  @outputs[index][:state] = :err
107
120
  @outputs[index][:type] = :map
108
- @outputs[index][:msg] = "Write '%map' on line 0"
121
+ @outputs[index][:msg] = 'Write %map on line 0'
109
122
  end
110
123
  end
111
124
 
@@ -135,9 +148,9 @@ module Checker
135
148
  if find_parent(index) != :concept
136
149
  @outputs[index][:state] = :err
137
150
  @outputs[index][:msg] = 'Parent(concept) not found!'
138
- elsif not line.start_with? ' %names'
151
+ elsif !line.start_with? ' %names'
139
152
  @outputs[index][:state] = :err
140
- @outputs[index][:msg] = "Write 4 spaces before %names"
153
+ @outputs[index][:msg] = 'Write 4 spaces before %names'
141
154
  end
142
155
  end
143
156
 
@@ -151,9 +164,9 @@ module Checker
151
164
  if find_parent(index) != :concept
152
165
  @outputs[index][:state] = :err
153
166
  @outputs[index][:msg] = 'Parent(concept) not found!'
154
- elsif not line.start_with? ' %tags'
167
+ elsif !line.start_with? ' %tags'
155
168
  @outputs[index][:state] = :err
156
- @outputs[index][:msg] = "Write 4 spaces before %tags"
169
+ @outputs[index][:msg] = 'Write 4 spaces before %tags'
157
170
  end
158
171
  end
159
172
 
@@ -167,9 +180,9 @@ module Checker
167
180
  if find_parent(index) != :concept
168
181
  @outputs[index][:state] = :err
169
182
  @outputs[index][:msg] = 'Parent(concept) not found!'
170
- elsif not line.start_with? ' %def'
183
+ elsif !line.start_with? ' %def'
171
184
  @outputs[index][:state] = :err
172
- @outputs[index][:msg] = "Write 4 spaces before %def"
185
+ @outputs[index][:msg] = 'Write 4 spaces before %def'
173
186
  end
174
187
  end
175
188
 
@@ -183,9 +196,9 @@ module Checker
183
196
  if find_parent(index) != :concept
184
197
  @outputs[index][:state] = :err
185
198
  @outputs[index][:msg] = 'Parent(concept) not found!'
186
- elsif not line.start_with? ' %table'
199
+ elsif !line.start_with? ' %table'
187
200
  @outputs[index][:state] = :err
188
- @outputs[index][:msg] = "Write 4 spaces before %table"
201
+ @outputs[index][:msg] = 'Write 4 spaces before %table'
189
202
  end
190
203
  end
191
204
 
@@ -211,7 +224,7 @@ module Checker
211
224
  end
212
225
  else
213
226
  @outputs[index][:state] = :err
214
- @outputs[index][:msg] = "Write 6 or 8 spaces before %row"
227
+ @outputs[index][:msg] = 'Write 6 or 8 spaces before %row'
215
228
  end
216
229
  end
217
230
 
@@ -235,7 +248,7 @@ module Checker
235
248
  end
236
249
  else
237
250
  @outputs[index][:state] = :err
238
- @outputs[index][:msg] = "Write 8 or 10 spaces before %col"
251
+ @outputs[index][:msg] = 'Write 8 or 10 spaces before %col'
239
252
  end
240
253
  end
241
254
 
@@ -249,9 +262,9 @@ module Checker
249
262
  if find_parent(index) != :table
250
263
  @outputs[index][:state] = :err
251
264
  @outputs[index][:msg] = 'Parent(concept) not found!'
252
- elsif not line.start_with? ' %template'
265
+ elsif !line.start_with? ' %template'
253
266
  @outputs[index][:state] = :err
254
- @outputs[index][:msg] = "Write 6 spaces before %template"
267
+ @outputs[index][:msg] = 'Write 6 spaces before %template'
255
268
  end
256
269
  end
257
270
 
@@ -281,9 +294,9 @@ module Checker
281
294
  if find_parent(index) != :code
282
295
  @outputs[index][:state] = :err
283
296
  @outputs[index][:msg] = 'Parent(code) not found!'
284
- elsif not line.start_with? ' %type'
297
+ elsif !line.start_with? ' %type'
285
298
  @outputs[index][:state] = :err
286
- @outputs[index][:msg] = "Write 4 spaces before %type"
299
+ @outputs[index][:msg] = 'Write 4 spaces before %type'
287
300
  end
288
301
  end
289
302
 
@@ -297,9 +310,9 @@ module Checker
297
310
  if find_parent(index) != :code
298
311
  @outputs[index][:state] = :err
299
312
  @outputs[index][:msg] = 'Parent(code) not found!'
300
- elsif not line.start_with? ' %path'
313
+ elsif !line.start_with? ' %path'
301
314
  @outputs[index][:state] = :err
302
- @outputs[index][:msg] = "Write 4 spaces before %type"
315
+ @outputs[index][:msg] = 'Write 4 spaces before %type'
303
316
  end
304
317
  end
305
318
 
@@ -313,16 +326,17 @@ module Checker
313
326
  if find_parent(index) != :code
314
327
  @outputs[index][:state] = :err
315
328
  @outputs[index][:msg] = 'Parent(code) not found!'
316
- elsif not line.start_with? ' %features'
329
+ elsif !line.start_with? ' %features'
317
330
  @outputs[index][:state] = :err
318
- @outputs[index][:msg] = "Write 4 spaces before %features"
331
+ @outputs[index][:msg] = 'Write 4 spaces before %features'
319
332
  end
320
333
  end
321
334
 
322
335
  def check_unknown(line, index)
323
336
  return unless @outputs[index][:state] == :none
337
+
324
338
  @outputs[index][:type] = :unknown
325
- @outputs[index][:level] = count_spaces(line)/2
339
+ @outputs[index][:level] = count_spaces(line) / 2
326
340
  @outputs[index][:state] = :err
327
341
  @outputs[index][:msg] = "Unknown tag with parent(#{find_parent(index)})!"
328
342
  end
@@ -330,12 +344,14 @@ module Checker
330
344
  def find_parent(index)
331
345
  current_level = @outputs[index][:level]
332
346
  return :noparent if current_level.zero?
347
+
333
348
  i = index - 1
334
- while(i >= 0)
349
+ while i >= 0
335
350
  return @outputs[i][:type] if @outputs[i][:level] == current_level - 1
336
- i = i - 1
351
+
352
+ i -= 1
337
353
  end
338
- return :noparent
354
+ :noparent
339
355
  end
340
356
 
341
357
  def count_spaces(line)
@@ -350,7 +366,8 @@ module Checker
350
366
  return 8 if line.start_with? ' %'
351
367
  return 9 if line.start_with? ' %'
352
368
  return 10 if line.start_with? ' %'
353
- return -1
369
+
370
+ -1
354
371
  end
355
372
  end
356
373
  end
data/lib/asker/cli.rb CHANGED
@@ -45,7 +45,7 @@ class CLI < Thor
45
45
  # Enable/disable color output
46
46
  Rainbow.enabled = false if options['color'] == false
47
47
  # Asker start processing input file
48
- Asker.new.start(filename)
48
+ Asker.start(filename)
49
49
  end
50
50
 
51
51
  map ['i', '-i', '--init'] => 'init'
@@ -1,6 +1,7 @@
1
1
 
2
2
  require_relative '../loader/image_url_loader'
3
3
  require_relative '../project'
4
+ require_relative '../logger'
4
5
 
5
6
  class World
6
7
  attr_reader :concepts, :filenames, :contexts, :image_urls
@@ -23,6 +24,7 @@ class World
23
24
  @filenames.uniq!
24
25
  @contexts.uniq!
25
26
 
27
+ Logger.verbose "\n[INFO] Loading data from Internet" if show_progress
26
28
  threads = []
27
29
  concepts.each do |c|
28
30
  print('.') if show_progress