asker-tool 2.1.3 → 2.1.5
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/README.md +17 -17
- data/lib/asker.rb +40 -83
- data/lib/asker/application.rb +1 -1
- data/lib/asker/checker.rb +42 -25
- data/lib/asker/cli.rb +1 -1
- data/lib/asker/data/world.rb +2 -0
- data/lib/asker/{exporter/code_screen_exporter.rb → displayer/code_displayer.rb} +6 -6
- data/lib/asker/{exporter/concept_ai_screen_exporter.rb → displayer/concept_ai_displayer.rb} +27 -29
- data/lib/asker/displayer/concept_displayer.rb +27 -0
- data/lib/asker/displayer/stats_displayer.rb +13 -0
- data/lib/asker/exporter/code_gift_exporter.rb +10 -11
- data/lib/asker/exporter/concept_ai_gift_exporter.rb +9 -9
- data/lib/asker/exporter/concept_ai_yaml_exporter.rb +2 -4
- data/lib/asker/exporter/concept_doc_exporter.rb +9 -15
- data/lib/asker/exporter/output_file_exporter.rb +18 -0
- data/lib/asker/files/example-concept.haml +25 -8
- data/lib/asker/formatter/concept_string_formatter.rb +9 -8
- data/lib/asker/lang/lang.rb +3 -4
- data/lib/asker/lang/locales/du/templates.yaml +50 -0
- data/lib/asker/lang/locales/en/connectors.yaml +44 -0
- data/lib/asker/lang/locales/en/mistakes.yaml +37 -0
- data/lib/asker/lang/locales/en/templates.yaml +29 -0
- data/lib/asker/lang/locales/es/connectors.yaml +92 -0
- data/lib/asker/lang/locales/es/mistakes.yaml +82 -0
- data/lib/asker/lang/locales/es/templates.yaml +29 -0
- data/lib/asker/lang/locales/fr/connectors.yaml +92 -0
- data/lib/asker/lang/locales/fr/mistakes.yaml +82 -0
- data/lib/asker/lang/locales/fr/templates.yaml +29 -0
- data/lib/asker/lang/locales/javascript/connectors.yaml +11 -0
- data/lib/asker/lang/locales/javascript/mistakes.yaml +30 -0
- data/lib/asker/lang/locales/javascript/templates.yaml +3 -0
- data/lib/asker/lang/locales/math/connectors.yaml +2 -0
- data/lib/asker/lang/locales/math/mistakes.yaml +2 -0
- data/lib/asker/lang/locales/math/templates.yaml +1 -0
- data/lib/asker/lang/locales/python/connectors.yaml +11 -0
- data/lib/asker/lang/locales/python/mistakes.yaml +26 -0
- data/lib/asker/lang/locales/python/templates.yaml +3 -0
- data/lib/asker/lang/locales/ruby/connectors.yaml +11 -0
- data/lib/asker/lang/locales/ruby/mistakes.yaml +33 -0
- data/lib/asker/lang/locales/ruby/templates.yaml +3 -0
- data/lib/asker/lang/locales/sql/connectors.yaml +6 -0
- data/lib/asker/lang/locales/sql/mistakes.yaml +11 -0
- data/lib/asker/lang/locales/sql/templates.yaml +2 -0
- data/lib/asker/loader/input_loader.rb +22 -5
- data/lib/asker/loader/project_loader.rb +25 -24
- data/lib/asker/logger.rb +1 -2
- data/lib/asker/project.rb +5 -3
- data/lib/asker/skeleton.rb +25 -24
- metadata +47 -63
- data/docs/changelog/v2.1.md +0 -99
- data/docs/commands.md +0 -12
- 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 -38
- 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/exporter/concept_screen_exporter.rb +0 -25
- data/lib/asker/exporter/main.rb +0 -9
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'terminal-table'
|
4
|
+
require_relative '../logger'
|
4
5
|
|
5
6
|
# Export Code into Screen
|
6
|
-
module
|
7
|
-
def self.
|
8
|
-
|
9
|
-
return if project.show_mode == :none || codes.nil? || codes.size.zero?
|
7
|
+
module CodeDisplayer
|
8
|
+
def self.show(codes)
|
9
|
+
return if codes.nil? || codes.size.zero?
|
10
10
|
|
11
11
|
total_c = total_q = total_e = 0
|
12
12
|
my_screen_table = Terminal::Table.new do |st|
|
@@ -39,7 +39,7 @@ module CodeScreenExporter
|
|
39
39
|
Rainbow((total_q / total_e.to_f).round(2)).bright]
|
40
40
|
return unless total_c.positive?
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
Logger.verboseln "\n[INFO] Showing CODE statistics"
|
43
|
+
Logger.verboseln my_screen_table.to_s
|
44
44
|
end
|
45
45
|
end
|
@@ -1,28 +1,27 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'terminal-table'
|
4
|
+
require_relative '../logger'
|
4
5
|
|
5
|
-
#
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
# Display ConceptAI stat on screen
|
7
|
+
class ConceptAIDisplayer
|
8
|
+
##
|
9
|
+
# Display ConceptAI stat on screen
|
10
|
+
# @param concepts_ai (Array)
|
11
|
+
def self.show(concepts_ai)
|
12
12
|
# Create table HEAD
|
13
13
|
screen_table = Terminal::Table.new do |st|
|
14
14
|
st << ['Concept','Questions','Entries','xFactor',
|
15
15
|
'd','b','f','i','s','t']
|
16
16
|
st << :separator
|
17
17
|
end
|
18
|
-
|
19
18
|
# Create table BODY
|
20
19
|
total = {}
|
21
20
|
total[:q] = total[:e] = total[:c] = 0
|
22
21
|
total[:sd] = total[:sb] = total[:sf] = 0
|
23
22
|
total[:si] = total[:ss] = total[:st] = 0
|
24
23
|
|
25
|
-
|
24
|
+
concepts_ai.each do |concept_ai|
|
26
25
|
if concept_ai.process?
|
27
26
|
e = concept_ai.texts.size
|
28
27
|
concept_ai.tables.each { |t| e += t.fields.size * t.rows.size }
|
@@ -51,7 +50,7 @@ class ConceptAIScreenExporter
|
|
51
50
|
return if total[:c] == 0 # No concepts to be process?
|
52
51
|
|
53
52
|
# Add row with excluded questions
|
54
|
-
export_excluded_questions(screen_table,
|
53
|
+
export_excluded_questions(screen_table, concepts_ai)
|
55
54
|
|
56
55
|
# Create table TAIL
|
57
56
|
screen_table.add_separator
|
@@ -62,10 +61,10 @@ class ConceptAIScreenExporter
|
|
62
61
|
total[:sd], total[:sb], total[:sf],
|
63
62
|
total[:si], total[:ss], total[:st]]
|
64
63
|
export_notes
|
65
|
-
|
64
|
+
Logger.verbose "#{screen_table}\n"
|
66
65
|
end
|
67
66
|
|
68
|
-
def self.export_excluded_questions(screen_table, concepts_ai)
|
67
|
+
private_class_method def self.export_excluded_questions(screen_table, concepts_ai)
|
69
68
|
# Create table BODY
|
70
69
|
total = {}
|
71
70
|
total[:q] = total[:c] = 0
|
@@ -94,22 +93,21 @@ class ConceptAIScreenExporter
|
|
94
93
|
total[:ss], total[:st]]
|
95
94
|
end
|
96
95
|
|
97
|
-
def self.export_notes
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
p.verbose "\n"
|
96
|
+
private_class_method def self.export_notes
|
97
|
+
Logger.verbose "\n[INFO] Showing CONCEPT statistics\n"
|
98
|
+
Logger.verbose ' * Exclude questions: ' +
|
99
|
+
Application.instance.config['questions']['exclude'].to_s
|
100
|
+
Logger.verbose ' * Annotations:'
|
101
|
+
Logger.verbose ' ├── (d) Definitions <= Concept.def'
|
102
|
+
Logger.verbose ' ├── (b) Table Matching <= ' \
|
103
|
+
'Concept.table.rows.columns'
|
104
|
+
Logger.verbose ' ├── (f) Tables 1 Field <= Concept.table.fields.size==1'
|
105
|
+
Logger.verbose ' ├── (i) Images URL <= ' \
|
106
|
+
"Concept.def{:type => 'image_url'}"
|
107
|
+
Logger.verbose ' ├── (s) Sequences <= ' \
|
108
|
+
"Concept.table{:sequence => '...'}"
|
109
|
+
Logger.verbose ' └── (t) Table Rows&Cols <= ' \
|
110
|
+
'Concept.table.rows.columns'
|
111
|
+
Logger.verbose "\n"
|
114
112
|
end
|
115
113
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
require_relative '../formatter/concept_string_formatter'
|
3
|
+
require_relative '../logger'
|
4
|
+
|
5
|
+
# Show Concept Data on screen
|
6
|
+
module ConceptDisplayer
|
7
|
+
##
|
8
|
+
# Show concepts on screen
|
9
|
+
# @param concepts (Array)
|
10
|
+
# @param show_mode (Symbol)
|
11
|
+
def self.show(concepts, show_mode = :default)
|
12
|
+
return if show_mode == :none
|
13
|
+
msg = "\n[INFO] Showing concept data (#{Rainbow(show_mode).bright})"
|
14
|
+
Logger.verbose msg
|
15
|
+
case show_mode
|
16
|
+
when :resume
|
17
|
+
s = "* Concepts (#{concepts.count}): "
|
18
|
+
concepts.each { |c| s += c.name + ', ' }
|
19
|
+
Logger.verbose s
|
20
|
+
when :default
|
21
|
+
# Only show Concepts with process attr true
|
22
|
+
concepts.each do |c|
|
23
|
+
Logger.verbose ConceptStringFormatter.to_s(c) if c.process?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'concept_ai_displayer'
|
2
|
+
require_relative 'code_displayer'
|
3
|
+
|
4
|
+
# Display Stats on screen.
|
5
|
+
module StatsDisplayer
|
6
|
+
def self.show(data, show_mode)
|
7
|
+
return if show_mode == :none
|
8
|
+
|
9
|
+
# show_final_results
|
10
|
+
ConceptAIDisplayer.show(data[:concepts_ai])
|
11
|
+
CodeDisplayer.show(data[:codes])
|
12
|
+
end
|
13
|
+
end
|
@@ -1,31 +1,30 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative '../project'
|
4
3
|
require_relative '../formatter/question_gift_formatter'
|
5
4
|
|
6
|
-
# UNDER DEVELOPMENT
|
7
5
|
# Use to export questions from Code to gift format
|
8
6
|
module CodeGiftExporter
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
##
|
8
|
+
# Export an Array of codes to gift format file
|
9
|
+
# @param codes (Array)
|
10
|
+
def self.export_all(codes, file)
|
11
|
+
codes.each { |code| export(code, file) }
|
14
12
|
end
|
15
13
|
|
16
|
-
|
14
|
+
##
|
15
|
+
# Export 1 code to gift format file
|
16
|
+
# @param code (Code)
|
17
|
+
def self.export(code, file)
|
17
18
|
return false unless code.process?
|
18
19
|
|
19
|
-
file = Project.instance.outputfile
|
20
20
|
file.write head(code)
|
21
|
-
|
22
21
|
code.questions.each do |question|
|
23
22
|
file.write QuestionGiftFormatter.to_s(question)
|
24
23
|
end
|
25
24
|
true
|
26
25
|
end
|
27
26
|
|
28
|
-
def self.head(code)
|
27
|
+
private_class_method def self.head(code)
|
29
28
|
s = "\n"
|
30
29
|
s += '// ' + '=' * 50 + "\n"
|
31
30
|
s += "// Code #{code.type}: #{code.filename} (#{code.questions.size})\n"
|
@@ -3,20 +3,20 @@
|
|
3
3
|
require_relative '../project'
|
4
4
|
require_relative '../formatter/question_gift_formatter'
|
5
5
|
|
6
|
-
#
|
6
|
+
# Export ConceptIA data to gift to outputfile
|
7
7
|
module ConceptAIGiftExporter
|
8
|
-
|
9
|
-
|
8
|
+
##
|
9
|
+
# Export list of ConceptAI into outpufile
|
10
|
+
def self.export_all(concepts_ai, project)
|
11
|
+
concepts_ai.each { |concept_ai| export(concept_ai, project) }
|
10
12
|
end
|
11
|
-
|
12
|
-
def self.export(concept_ai)
|
13
|
+
|
14
|
+
def self.export(concept_ai, project)
|
13
15
|
return unless concept_ai.process?
|
14
16
|
|
15
|
-
file =
|
17
|
+
file = project.get(:outputfile)
|
16
18
|
file.write head(concept_ai.name)
|
17
|
-
|
18
|
-
stages = Project.instance.stages
|
19
|
-
stages.each_key do |stage|
|
19
|
+
project.stages.each_key do |stage|
|
20
20
|
concept_ai.questions[stage].each do |question|
|
21
21
|
file.write(QuestionGiftFormatter.to_s(question))
|
22
22
|
end
|
@@ -1,21 +1,19 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
-
require_relative '../project'
|
5
4
|
require_relative '../formatter/question_hash_formatter'
|
6
5
|
|
7
6
|
# Use to export data from ConceptIA to YAML format
|
8
7
|
module ConceptAIYAMLExporter
|
9
|
-
def self.export_all(concepts_ai)
|
8
|
+
def self.export_all(concepts_ai, project)
|
10
9
|
questions = []
|
11
10
|
concepts_ai.each do |concept_ai|
|
12
11
|
questions += get_questions_from concept_ai
|
13
12
|
end
|
14
|
-
project = Project.instance
|
15
13
|
params = { lang: project.get(:lang) ,
|
16
14
|
projectname: project.get(:projectname) }
|
17
15
|
output = { params: params, questions: questions }
|
18
|
-
project.yamlfile.write(output.to_yaml)
|
16
|
+
project.get(:yamlfile).write(output.to_yaml)
|
19
17
|
end
|
20
18
|
|
21
19
|
def self.get_questions_from(concept_ai)
|
@@ -1,21 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative '../project'
|
4
3
|
require_relative '../formatter/concept_doc_formatter'
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@concepts.each do |concept|
|
15
|
-
if concept.process
|
16
|
-
file.write(ConceptDocFormatter.to_s(concept))
|
17
|
-
end
|
5
|
+
##
|
6
|
+
# Export Concept to Doc file
|
7
|
+
module ConceptDocExporter
|
8
|
+
##
|
9
|
+
# Export arrya of concepts to doc
|
10
|
+
def self.export_all(concepts, file)
|
11
|
+
concepts.each do |concept|
|
12
|
+
file.write(ConceptDocFormatter.to_s(concept)) if concept.process
|
18
13
|
end
|
19
14
|
end
|
20
|
-
|
21
15
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'concept_ai_gift_exporter'
|
2
|
+
require_relative 'code_gift_exporter'
|
3
|
+
require_relative 'concept_ai_yaml_exporter'
|
4
|
+
require_relative 'concept_doc_exporter'
|
5
|
+
|
6
|
+
# Export Output data:
|
7
|
+
# * Gift (ConceptAI, Code)
|
8
|
+
# * YAML
|
9
|
+
# * Doc (txt)
|
10
|
+
module OutputFileExporter
|
11
|
+
def self.export(data, project)
|
12
|
+
ConceptAIGiftExporter.export_all(data[:concepts_ai], project)
|
13
|
+
# UNDER DEVELOPMENT
|
14
|
+
CodeGiftExporter.export_all(data[:codes], project.get(:outputfile))
|
15
|
+
ConceptAIYAMLExporter.export_all(data[:concepts_ai], project)
|
16
|
+
ConceptDocExporter.export_all(data[:concepts], project.get(:lessonfile))
|
17
|
+
end
|
18
|
+
end
|
@@ -1,13 +1,30 @@
|
|
1
|
-
%map{ :lang => 'en', :context => '
|
1
|
+
%map{ :lang => 'en', :context => 'music, band', :version => '1'}
|
2
2
|
|
3
3
|
%concept
|
4
|
-
%names
|
5
|
-
%tags
|
6
|
-
%
|
4
|
+
%names AC/DC, ACDC
|
5
|
+
%tags single, seat, leg, backrest
|
6
|
+
%tags rock, band, australia
|
7
|
+
%def Australian rock band formed by Scottish-born brothers Malcolm and Angus Young
|
8
|
+
%table{ :fields => 'members'}
|
9
|
+
%row Bon Scott
|
10
|
+
%row Angus Young
|
11
|
+
%row Malcolm Young
|
12
|
+
%row Phil Rudd
|
13
|
+
%row Cliff Williams
|
7
14
|
%table{ :fields => 'attribute, value'}
|
8
15
|
%row
|
9
|
-
%col
|
10
|
-
%col
|
16
|
+
%col Genres
|
17
|
+
%col Hard rock blues rock rock and roll
|
11
18
|
%row
|
12
|
-
%col
|
13
|
-
%col
|
19
|
+
%col Years active
|
20
|
+
%col 1973-present
|
21
|
+
%row
|
22
|
+
%col Formed in
|
23
|
+
%col Sydney
|
24
|
+
%table{ :fields => 'Albums', :sequence => 'Albums sorted by date'}
|
25
|
+
%row Albums High Voltage
|
26
|
+
%row Powerage
|
27
|
+
%row Highway to Hell
|
28
|
+
%row Back in Black
|
29
|
+
%row Ballbreaker
|
30
|
+
%row Rock or Bust
|
@@ -11,14 +11,14 @@ module ConceptStringFormatter
|
|
11
11
|
# @return String
|
12
12
|
def self.to_s(concept)
|
13
13
|
tt = Terminal::Table.new
|
14
|
-
|
15
|
-
rows.each { |row| tt.add_row row }
|
14
|
+
get_tt_rows(concept).each { |row| tt.add_row row }
|
16
15
|
"#{tt}\n"
|
17
16
|
end
|
18
17
|
|
19
18
|
# rubocop:disable Metrics/AbcSize
|
20
19
|
# rubocop:disable Metrics/MethodLength
|
21
|
-
|
20
|
+
# rubocop:disable Layout/LineLength
|
21
|
+
private_class_method def self.get_tt_rows(concept)
|
22
22
|
rows = []
|
23
23
|
rows << [Rainbow(concept.id.to_s).bright,
|
24
24
|
Rainbow(concept.name(:screen)).white.bg(:blue).bright +
|
@@ -31,14 +31,15 @@ module ConceptStringFormatter
|
|
31
31
|
rows << [Rainbow('Referenced by').blue,
|
32
32
|
concept.referenced_by.join(', ')[0...70].to_s]
|
33
33
|
rows << format_texts(concept)
|
34
|
-
rows << [Rainbow('.def(images)').blue, concept.images.size.to_s]
|
35
|
-
rows << format_tables(concept)
|
34
|
+
rows << [Rainbow('.def(images)').blue, concept.images.size.to_s] unless concept.images.size.zero?
|
35
|
+
rows << format_tables(concept) unless concept.tables.count.zero?
|
36
36
|
rows << format_neighbors(concept)
|
37
37
|
end
|
38
38
|
# rubocop:enable Metrics/AbcSize
|
39
39
|
# rubocop:enable Metrics/MethodLength
|
40
|
+
# rubocop:enable Layout/LineLength
|
40
41
|
|
41
|
-
def self.format_texts(concept)
|
42
|
+
private_class_method def self.format_texts(concept)
|
42
43
|
list = []
|
43
44
|
concept.texts.each do |i|
|
44
45
|
if i.size < 60
|
@@ -50,14 +51,14 @@ module ConceptStringFormatter
|
|
50
51
|
[Rainbow('.def(text)').blue, list.join("\n")]
|
51
52
|
end
|
52
53
|
|
53
|
-
def self.format_tables(concept)
|
54
|
+
private_class_method def self.format_tables(concept)
|
54
55
|
return [] if concept.tables.count.zero?
|
55
56
|
|
56
57
|
list = concept.tables.map(&:to_s)
|
57
58
|
[Rainbow('.tables').color(:blue), list.join("\n")]
|
58
59
|
end
|
59
60
|
|
60
|
-
def self.format_neighbors(concept)
|
61
|
+
private_class_method def self.format_neighbors(concept)
|
61
62
|
list = concept.neighbors[0..4].map do |i|
|
62
63
|
i[:concept].name(:screen) + '(' + i[:value].to_s[0..4] + ')'
|
63
64
|
end
|
data/lib/asker/lang/lang.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'erb'
|
4
4
|
require 'yaml'
|
5
5
|
require_relative 'text_actions'
|
6
|
+
require_relative '../logger'
|
6
7
|
|
7
8
|
# Lang#lang
|
8
9
|
class Lang
|
@@ -27,9 +28,8 @@ class Lang
|
|
27
28
|
begin
|
28
29
|
@templates = YAML.load(File.new(filename))
|
29
30
|
rescue StandardError => e
|
30
|
-
|
31
|
-
|
32
|
-
p.vervose "[ADVISE] Revise apostrophe into string without \\ char\n"
|
31
|
+
Logger.verboseln "[ERROR] lang.initialize(): Reading YAML file <#{filename}>"
|
32
|
+
Logger.verboseln "[ADVISE] Revise apostrophe into string without \\ char\n"
|
33
33
|
raise e
|
34
34
|
end
|
35
35
|
filename = File.join(dirbase, 'locales', @code, 'connectors.yaml')
|
@@ -38,5 +38,4 @@ class Lang
|
|
38
38
|
filename = File.join(dirbase, 'locales', @code, 'mistakes.yaml')
|
39
39
|
@mistakes = YAML.load(File.new(filename))
|
40
40
|
end
|
41
|
-
|
42
41
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
:none: keine Antwort ist richtig
|
3
|
+
:error: Fehler
|
4
|
+
:misspelling: Rechtschreibfehler
|
5
|
+
:true: richtig
|
6
|
+
:false: falsch
|
7
|
+
:d1: 'Bedeutung \: <i><%=text1%></i><br/> Wählen Sie die dazu passende Option aus, die am besten zu der vorstehenden Bedeutung passt.<br/>'
|
8
|
+
:d2: 'Bedeutung des Begriffs <b><%=text1%></b>\:<br/> <i><%=text2%></i><br/>'
|
9
|
+
:d3: 'Bedeutung des Begriffs <b><%=text1%></b>\:<br/> <i><%=text2%></i><br/></br><p> Bemerkung: Ein Fragezeichnen stellt einen Buchstaben dar, und ein Sternchen steht für ein Wort oder mehrere Wörter.</p>'
|
10
|
+
:d4: 'Bedeutung des Begriffs <b><%=text1%></b>\:<br/> <i><%=text2%></i><br/><br/>(Setzen Sie die Wörter in die Lücken ein)'
|
11
|
+
|
12
|
+
:b1: 'En relación al concepto <b><%=text1%></b>, asocia cada "<%=text2%>" con su "<%=text3%>".<br/>'
|
13
|
+
:f1: 'Los siguientes elementos son "<%=text2%>" del concepto <b><%=text1%></b>\:<ul><li><%=text3%></li></ul>'
|
14
|
+
:f2: 'Los siguientes elementos son "<%=text2%>".<br/>Selecciona la opción que no pertenezca al concepto <b><%=text1%></b>.'
|
15
|
+
:f3: 'Los siguientes elementos son "<%=text2%>" del concepto <b><%=text1%></b>\:<br><p><%=text3%></p>(Coloca cada palabra en su posición correcta dentro del texto)'
|
16
|
+
:i1: '<img src="<%=text1%>" alt\="image" width="400" height="300"><br/>Elige la opción que mejor se corresponda con la imagen anterior.<br/>'
|
17
|
+
:i2: '<img src="<%=text1%>" alt\="image" width="400" height="300"><br/>La imagen anterior corresponde a <b><%=text2%></b>.'
|
18
|
+
:i3: '<img src="<%=text1%>" alt\="image" width="400" height="300"><br/>Escribe la opción <%=text2%>, que mejor corresponda con la imagen anterior.<br/>'
|
19
|
+
:i4: '<img src="<%=text1%>" alt\="image" width="400" height="300"><br/>Definición\: <i><%=text2%></i><br/><br/>(Coloca cada palabra en su posición correcta dentro del texto)'
|
20
|
+
:s1: 'En relación al concepto <b><%=text1%></b>, ordena cada "<%=text2%>" de modo que se cumpla el criterio "<%=text3%>".<br/>'
|
21
|
+
:t1table: 'Concepto <b><%=text1%></b><br/><%=text2%>\: [*]<br/><%=text3%>\: "<%=text4%>"<br/>Elige la opción correcta.<br/>'
|
22
|
+
:t2table: 'Concepto <b><%=text1%></b><br/><%=text2%>\: [*]<br/><%=text3%>\: "<%=text4%>"<br/>Elige la opción correcta.<br/>'
|
23
|
+
:t3table: 'Concepto <b><%=text1%></b><br/><%=text2%>\: "<%=text3%>"<br/><%=text4%>: [*]<br/>Elige la opción correcta.<br/>'
|
24
|
+
:t4table: 'Concepto <b><%=text1%></b><br/><%=text2%>\: "<%=text3%>"<br/><%=text4%>: [*]<br/>Elige la opción correcta.<br/>'
|
25
|
+
:t5table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta\:<br/><ul><li><%=text2%>\: "<%=text3%>"</li><li><%=text4%>\: "<%=text5%>"</li></ul>'
|
26
|
+
:t6table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta\:<br/><ul><li><%=text2%>\: "<%=text3%>"</li><li><%=text4%>\: "<%=text5%>"</li></ul>'
|
27
|
+
:t7table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta\:<br/><ul><li><%=text2%>\: "<%=text3%>"</li><li><%=text4%>\: "<%=text5%>"</li></ul>'
|
28
|
+
:t8table: 'Concepto <b><%=text1%></b><br/>Completa la siguiente asociación\:<br/><ul><li><%=text2%>\: "<%=text3%>"</li><li><%=text4%>\: [*]</li></ul>Escribir una palabra.<br/>'
|
29
|
+
:t9table: 'Concepto <b><%=text1%></b><br/>Completa la siguiente asociación\:<br/><ul><li><%=text2%>\: "<%=text3%>"</li><li><%=text4%>\: <%=text5%></li></ul>Escribir <%=text6%> palabras.<br/>'
|
30
|
+
:code1: '<pre><%=text1%></pre><br/><p>Escribir el número de línea donde está el primer error. Escribir 0 si no hay ningún error.</p>'
|
31
|
+
|
32
|
+
B1: In Bezug auf den Begriff (+++++), verbinden Sie die passenden Begriffe.
|
33
|
+
F1: Die folgenden Elemente sind (+++++) des Begriffs (++++)
|
34
|
+
F2: Die folgenden Elemente sind (+++++) Wählen Sie die Antwortmöglichkeit aus, die nicht zum Begriff (++++) passt
|
35
|
+
F3: Die folgenden Elemente sind (+++++) des Begriffs (++++) (Setzen Sie die Wörter in die Lücken ein)
|
36
|
+
I1: Wählen Sie die Antwortmöglichkeit, die am besten zu dem gezeigten Bild passt.
|
37
|
+
I2: Das gezeigte Bild gehört zu (++++)
|
38
|
+
I3: Setzen Sie die Antwort ein (+++), die am besten zu dem gezeigten Bild passt.
|
39
|
+
I4: Bedeutung (Setzen Sie die Wörter in die Lücken ein)
|
40
|
+
S1: Beziehen Sie sich auf den Begriff (+++++) und ordnen Sie die richtigen Lösungen zu.
|
41
|
+
T1: Begriff / Wählen Sie die richtige Lösung aus.
|
42
|
+
T2: Begriff / Wählen Sie die richtige Lösung aus.
|
43
|
+
T3: Begriff / Wählen Sie die richtige Lösung aus.
|
44
|
+
T4: Begriff / Wählen Sie die richtige Lösung aus.
|
45
|
+
T5: Begriff / Die Lösung ist richtig
|
46
|
+
T6: Begriff / Die Lösung ist richtig
|
47
|
+
T7: Begriff / Die Lösung ist richtig
|
48
|
+
T8: Begriff / Vervollständigen Sie / Schreiben Sie einen Begriff
|
49
|
+
T9: Begriff / Verbinden Sie / Schreiben Sie fogende Begriffe
|
50
|
+
Code1: Nennen Sie die Nummer der Zeile, in der sich der erste Fehler befindet / Wenn es keinen Fehler gibt, setzen Sie 0 ein.
|