asker-tool 2.3.2 → 2.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb6e1e4948869d81d5583b6355bdb242c1897bb2baa69bbb1f03f66cd9e63b3f
4
- data.tar.gz: baf45eb5659c7524680389a3f42731421d39453a36259a048fd6b2dda86b692b
3
+ metadata.gz: 1881a2e04cd676c6eb0a07deeaef15666b8f880b138a4418248d1e80ef3b60e4
4
+ data.tar.gz: e2dd9ddeee2eb2b83ee245c6cdbd6f0991d108c6bcd1bfac4a70e16f0f45af30
5
5
  SHA512:
6
- metadata.gz: 00cceabe5b82f6832723fcfdbe7dce48a17132d83098ea3e52915429ee9ac0b86372dfd0543da2846ad981be9cf11f6fee105c1b2294467215a5cabcb121818a
7
- data.tar.gz: a96b6a08ce66e00be13dfc6eab638e6325d488d671f943befbf7010ecb25aa098c3ae24b87cff6a260c65a5d257ef832bf5ec634d75c91e785b14c2e5f34df11
6
+ metadata.gz: 79bce51d1fc4ed05c08787dc0f5f5828bbf06ba3ba233323d2e4e573d9ada3594106c709fc5199d0ad5cfec23b8fa79a4cc140dbf6f3a48f6bb70bdbb3920139
7
+ data.tar.gz: 8b550ee119b2e7c3a6e2239c5bdfca809e84b2f96f393cef7273c04e788b6f4bc7d096431913b3e407cbfaa7110bb74d8a7387343da3c307a57b9476810668b8
@@ -1,4 +1,3 @@
1
- # frozen_string_literal: true
2
1
 
3
2
  require_relative 'stage_d'
4
3
  require_relative 'stage_b'
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require 'set'
4
2
 
5
3
  require_relative 'base_stage'
@@ -31,8 +29,6 @@ class StageB < BaseStage
31
29
 
32
30
  questions
33
31
  end
34
- # rubocop:enable Metrics/AbcSize
35
- # rubocop:enable Metrics/MethodLength
36
32
 
37
33
  ##
38
34
  # Process table data to generate match questions
@@ -61,19 +57,43 @@ class StageB < BaseStage
61
57
  q.matching << [e[1][:data][index1], e[1][:data][index2]]
62
58
  q.matching << [e[2][:data][index1], e[2][:data][index2]]
63
59
  q.matching << [e[3][:data][index1], e[3][:data][index2]]
64
- # Add an extra line
60
+ questions << q
61
+
65
62
  if list2.count.positive?
63
+ # Add an extra line
64
+ e.shuffle!
65
+ q = Question.new(:match)
66
+ q.name = "#{name}-#{num}-b1match4x5-#{p_table.name}"
67
+ q.tags << 'match'
68
+ q.tags << 'random'
69
+ q.text = random_image_for(name) \
70
+ + lang.text_for(:b1, name, p_table.fields[index1].capitalize, p_table.fields[index2].capitalize)
71
+ q.matching << [e[0][:data][index1], e[0][:data][index2]]
72
+ q.matching << [e[1][:data][index1], e[1][:data][index2]]
73
+ q.matching << [e[2][:data][index1], e[2][:data][index2]]
74
+ q.matching << [e[3][:data][index1], e[3][:data][index2]]
66
75
  q.matching << ['', list2[0][:data][index2]]
76
+ questions << q
67
77
  else
68
- q.tags << 'misspell'
78
+ e.shuffle!
79
+ q = Question.new(:match)
80
+ q.name = "#{name}-#{num}-b1match4x5_1misspelled-#{p_table.name}"
81
+ q.tags << 'match'
82
+ q.tags << 'random'
83
+ q.text = random_image_for(name) \
84
+ + lang.text_for(:b1, name, p_table.fields[index1].capitalize, p_table.fields[index2].capitalize)
85
+ q.matching << [e[0][:data][index1], e[0][:data][index2]]
86
+ q.matching << [e[1][:data][index1], e[1][:data][index2]]
87
+ q.matching << [e[2][:data][index1], e[2][:data][index2]]
88
+ q.matching << [e[3][:data][index1], e[3][:data][index2]]
69
89
  q.matching << ['', lang.do_mistake_to(e[0][:data][index2])]
90
+ questions << q
70
91
  end
71
- questions << q
72
92
 
73
93
  # Question type <b1match>: match 3 items from table-A and 1 item with error
74
94
  e.shuffle!
75
95
  q = Question.new(:match)
76
- q.name = "#{name}-#{num}-b1match3x1misspelled-#{p_table.name}"
96
+ q.name = "#{name}-#{num}-b1match4x4_1misspelled-#{p_table.name}"
77
97
  q.tags << 'match'
78
98
  q.tags << 'random'
79
99
  q.text = random_image_for(name) \
@@ -82,14 +102,40 @@ class StageB < BaseStage
82
102
  q.matching << [e[1][:data][index1], e[1][:data][index2]]
83
103
  q.matching << [e[2][:data][index1], e[2][:data][index2]]
84
104
  q.matching << [lang.do_mistake_to(e[3][:data][index1]), lang.text_for(:misspelling)]
85
- # Add an extra line
105
+ questions << q
106
+
86
107
  if list2.count.positive?
108
+ # Add an extra line error
109
+ e.shuffle!
110
+ q = Question.new(:match)
111
+ q.name = "#{name}-#{num}-b1match4x5_1misspelled_1error-#{p_table.name}"
112
+ q.tags << 'match'
113
+ q.tags << 'random'
114
+ q.text = random_image_for(name) \
115
+ + lang.text_for(:b1, name, p_table.fields[index1].capitalize, p_table.fields[index2].capitalize)
116
+ q.matching << [e[0][:data][index1], e[0][:data][index2]]
117
+ q.matching << [e[1][:data][index1], e[1][:data][index2]]
118
+ q.matching << [e[2][:data][index1], e[2][:data][index2]]
119
+ q.matching << [lang.do_mistake_to(e[3][:data][index1]), lang.text_for(:misspelling)]
87
120
  q.matching << ['', list2[0][:data][index2]]
121
+ questions << q
88
122
  else
89
- q.tags << 'misspell'
123
+ # Add an extra line misspelled
124
+ e.shuffle!
125
+ q = Question.new(:match)
126
+ q.name = "#{name}-#{num}-b1match4x5_2misspelled-#{p_table.name}"
127
+ q.tags << 'match'
128
+ q.tags << 'random'
129
+ q.tags << 'misspelled'
130
+ q.text = random_image_for(name) \
131
+ + lang.text_for(:b1, name, p_table.fields[index1].capitalize, p_table.fields[index2].capitalize)
132
+ q.matching << [e[0][:data][index1], e[0][:data][index2]]
133
+ q.matching << [e[1][:data][index1], e[1][:data][index2]]
134
+ q.matching << [e[2][:data][index1], e[2][:data][index2]]
135
+ q.matching << [lang.do_mistake_to(e[3][:data][index1]), lang.text_for(:misspelling)]
90
136
  q.matching << ['', lang.do_mistake_to(e[0][:data][index2])]
137
+ questions << q
91
138
  end
92
- questions << q
93
139
  end
94
140
  end
95
141
 
@@ -103,7 +149,19 @@ class StageB < BaseStage
103
149
  # Question 3 items from table-A, and 1 item from table-B
104
150
  if s.count > 3
105
151
  q = Question.new(:match)
106
- q.name = "#{name}-#{num}-b1match3x1-#{p_table.name}"
152
+ q.name = "#{name}-#{num}-b1match4x4_1error-#{p_table.name}"
153
+ q.tags << 'match'
154
+ q.tags << 'random'
155
+ q.text = random_image_for(name) \
156
+ + lang.text_for(:b1, name, p_table.fields[index1].capitalize, p_table.fields[index2].capitalize)
157
+ q.matching << [list1[0][:data][index1], list1[0][:data][index2]]
158
+ q.matching << [list1[1][:data][index1], list1[1][:data][index2]]
159
+ q.matching << [list1[2][:data][index1], list1[2][:data][index2]]
160
+ q.matching << [list2[0][:data][index1], lang.text_for(:error)]
161
+ questions << q
162
+
163
+ q = Question.new(:match)
164
+ q.name = "#{name}-#{num}-b1match4x5_1error_1misspelled-#{p_table.name}"
107
165
  q.tags << 'match'
108
166
  q.tags << 'random'
109
167
  q.text = random_image_for(name) \
@@ -119,10 +177,4 @@ class StageB < BaseStage
119
177
 
120
178
  questions
121
179
  end
122
- # rubocop:enable Metrics/AbcSize
123
- # rubocop:enable Metrics/MethodLength
124
- # rubocop:enable Metrics/CyclomaticComplexity
125
- # rubocop:enable Style/ConditionalAssignment
126
- # rubocop:enable Metrics/BlockLength
127
- # rubocop:enable Metrics/PerceivedComplexity
128
180
  end
@@ -28,10 +28,11 @@ default = en
28
28
 
29
29
  ; List of code languages to be loaded
30
30
  ; Accept yes|no
31
+ ca = yes
32
+ du = yes
31
33
  en = yes
32
34
  es = yes
33
35
  fr = yes
34
- du = yes
35
36
  javascript = yes
36
37
  math = no
37
38
  python = yes
@@ -53,7 +54,7 @@ fractions = 0, -50, -33.33, -25, -20
53
54
  ; List of values d,b,f,i,s,t
54
55
  stages = d,b,f,i,s,t
55
56
 
56
- ; Questions category
57
+ ; Questions category. Default value: (empty)
57
58
  category =
58
59
 
59
60
  ; Exclude questions with this texts into their names.
@@ -0,0 +1,103 @@
1
+ ---
2
+ - '[*]'
3
+ - a
4
+ - al
5
+ - a
6
+ - "l'"
7
+ - davant
8
+ - de
9
+ - sota
10
+ - cada
11
+ - com
12
+ - com
13
+ - amb
14
+ - contra
15
+ - quan
16
+ - quant
17
+ - quin
18
+ - quina
19
+ - de
20
+ - des
21
+ - i
22
+ - a
23
+ - entre
24
+ - ell
25
+ - el
26
+ - ella
27
+ - ells
28
+ - es
29
+ - és
30
+ - aquest
31
+ - aquesta
32
+ - això
33
+ - aquests
34
+ - aquestes
35
+ - aquest
36
+ - això
37
+ - aquesta
38
+ - aquests
39
+ - aquestes
40
+ - cap
41
+ - fins
42
+ - la
43
+ - les
44
+ - ho
45
+ - els
46
+ - li
47
+ - els
48
+ - mes
49
+ - més
50
+ - mi
51
+ - em
52
+ - molt
53
+ - molts
54
+ - molt
55
+ - no
56
+ - ens
57
+ - nosaltres
58
+ - o
59
+ - per
60
+ - però
61
+ - per
62
+ - perquè
63
+ - perqué
64
+ - que
65
+ - qué
66
+ - qui
67
+ - si
68
+ - sense
69
+ - sobre
70
+ - tota
71
+ - totes
72
+ - tot
73
+ - tots
74
+ - darrera
75
+ - darrere
76
+ - tu
77
+ - tú
78
+ - es
79
+ - seyu
80
+ - les
81
+ - seves
82
+ - seus
83
+ - seu
84
+ - seva
85
+ - seus
86
+ - seves
87
+ - meu
88
+ - meva
89
+ - meus
90
+ - meves
91
+ - o
92
+ - un
93
+ - un
94
+ - uns
95
+ - una
96
+ - unes
97
+ - vosaltres
98
+ - vostre
99
+ - vostres
100
+ - nostre
101
+ - nostres
102
+ - i
103
+ - jo
@@ -0,0 +1,98 @@
1
+ ---
2
+ :a: 'à,á,e,o,ha'
3
+ :"a ": 'as '
4
+ :"as ": 'a ,os '
5
+ :á: 'a,à,é,há'
6
+ :à: 'a,á,e,ha'
7
+ :al: 'ar,la,el'
8
+ :ar: 'al'
9
+ :b: 'v'
10
+ :c: 's,k,ç'
11
+ :ca: 'ka,ça,ssa'
12
+ :ce: 'se,que,sse'
13
+ :ci: 'si,qui,ssi'
14
+ :co: 'ko,ço'
15
+ :cu: 'ku,qu,çu'
16
+ :ç: 'z,ss,s'
17
+ :e: 'é,è'
18
+ :" e": 'he'
19
+ :é: 'e,è'
20
+ :è: 'e,é'
21
+ :" é": 'hé'
22
+ :"el ": 'er ,ell '
23
+ :"er ": 'el '
24
+ :g: 'j'
25
+ :h: ' '
26
+ :ha: 'a'
27
+ :he: 'e'
28
+ :hi: 'i'
29
+ :ho: 'o'
30
+ :hu: 'u'
31
+ :i: 'í,ì'
32
+ :í: 'i,ì'
33
+ :ì: 'i,í'
34
+ :j: 'g'
35
+ :k: 'q,c'
36
+ :l: 'r'
37
+ :lla: 'ya'
38
+ :lle: 'ye'
39
+ :lli: 'yi'
40
+ :llo: 'yo'
41
+ :llu: 'yu'
42
+ :n: 'm,ny'
43
+ :ny: 'n'
44
+ :m: 'n'
45
+ :mb: 'nb'
46
+ :nb: 'mb'
47
+ :mp: 'np'
48
+ :np: 'mp'
49
+ :o: 'ó,e,ò'
50
+ :"o ": 'os '
51
+ :ó: 'o,ò'
52
+ :ò: 'o,ó'
53
+ :ol: 'or'
54
+ :or: 'ol'
55
+ :os : 'o ,ó ,as '
56
+ :oha: 'oa'
57
+ :p: 'q,o'
58
+ :que: 'ke,què, '
59
+ :qui: 'ki'
60
+ :s: 'z,a,ss,ç'
61
+ :sa: 'za,ssa'
62
+ :se: 'ce,ze,sse'
63
+ :si: 'ci,zi,ssi'
64
+ :so: 'zo,sso'
65
+ :su: 'zu,ssu'
66
+ :st: 'ts'
67
+ :ss: 'z,s,ç'
68
+ :t: 'f,p'
69
+ :u: 'ú,ù'
70
+ :ú: 'u,ù'
71
+ :ù: 'u,ú'
72
+ :ul: 'ur'
73
+ :ur: 'ul'
74
+ :v: 'b,w'
75
+ :w: 'v, gu'
76
+ :wa: 'gua'
77
+ :we: 'gue'
78
+ :wi: 'gui'
79
+ :wo: 'guo'
80
+ :x: 'ks,k,s'
81
+ :y: 'i,v'
82
+ :" y ": ' i '
83
+ :ya: 'lla'
84
+ :ye: 'lle'
85
+ :yi: 'lli'
86
+ :yo: 'llo'
87
+ :yu: 'llu'
88
+ :lla: 'l·la'
89
+ :lle: 'l·le'
90
+ :lli: 'l·li'
91
+ :llo: 'l·lo'
92
+ :llu: 'l·lu'
93
+ :z: 's,ss,ç'
94
+ :za: 'sa,ssa'
95
+ :ze: 'se,sse'
96
+ :zi: 'si,ssi'
97
+ :zo: 'so,sso'
98
+ :zu: 'su,ssu'
@@ -0,0 +1,29 @@
1
+ ---
2
+ :none: 'Ninguna és correcta'
3
+ :error: 'Error'
4
+ :misspelling: 'Error ortográfic'
5
+ :true: 'Cert'
6
+ :false: 'Fals'
7
+ :d1: 'Definició: <i><%=text1%></i><br/>Elige la opción que mejor se corresponda con la definición anterior.<br/>'
8
+ :d2: 'Definició de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/>'
9
+ :d3: 'Definició de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/></br><p>Nota: Cada símbol ? representa una lletra, i * a una o diverses paraules.</p>'
10
+ :d4: 'Definició de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><br/>(Coloca cada paula a la seva posició correcta dins el text)'
11
+ :b1: 'En relació al concepte <b><%=text1%></b>, asocia cada "<%=text2%>" amb el seu "<%=text3%>".<br/>'
12
+ :f1: 'Els seguents elements son "<%=text2%>" del concepte <b><%=text1%></b>:<ul><li><%=text3%></li></ul>'
13
+ :f2: "Els seguents elements son \"<%=text2%>\".<br/>Selecciona l'opció que no pertanyi al concepte <b><%=text1%></b>."
14
+ :f3: 'Els seguents elements son "<%=text2%>" del concepte <b><%=text1%></b>:<br><p><%=text3%></p>(Coloca cada paraula a la seva posició correcta dins el text)'
15
+ :i1: "<%=text1%><br/>Escull l'opció que millor es correspongui amb la imatge anterior.<br/>"
16
+ :i2: '<%=text1%><br/>La imatge/text anterior correspo a <b><%=text2%></b>.'
17
+ :i3: "<%=text1%><br/>Escriu l'opció <%=text2%>, que millor correspongui amb la imatge anterior.<br/>"
18
+ :i4: '<%=text1%><br/>Definició: <i><%=text2%></i><br/><br/>(Coloca cada palabra en su posición correcta dentro del texto)'
19
+ :s1: 'En relació al concepte <b><%=text1%></b>, ordena cada/les/els "<%=text2%>" per tal que es compleixi el criteri "<%=text3%>".<br/>'
20
+ :t1table: "Concepte <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: \"<%=text4%>\"<br/>Escull l'opció correcta.<br/>"
21
+ :t2table: "Concepte <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: \"<%=text4%>\"<br/>Escull l'opció correcta.<br/>"
22
+ :t3table: "Concepte <b><%=text1%></b><br/><%=text2%>: \"<%=text3%>\"<br/><%=text4%>: [*]<br/>Escull l'opció correcta.<br/>"
23
+ :t4table: "Concepte <b><%=text1%></b><br/><%=text2%>: \"<%=text3%>\"<br/><%=text4%>: [*]<br/>Escull l'opció correcta.<br/>"
24
+ :t5table: "Concepte <b><%=text1%></b><br/>L'associació següent és correcta:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
25
+ :t6table: "Concepte <b><%=text1%></b><br/>L'associació següent és correcta:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
26
+ :t7table: "Concepte <b><%=text1%></b><br/>L'associació següent és correcta:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
27
+ :t8table: 'Concepte <b><%=text1%></b><br/>Completa la següent associació:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: [*]</li></ul>Escriu una paraula.<br/>'
28
+ :t9table: 'Concepte <b><%=text1%></b><br/>Completa la següent associació:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: <%=text5%></li></ul>Escriu <%=text6%> paraules.<br/>'
29
+ :code1: '<pre><%=text1%></pre><br/><p>Escriu el número de línia hi ha el primer error. Escriu 0 si no hi ha cap error.</p>'
@@ -1,11 +1,9 @@
1
- # frozen_string_literal: true
2
1
 
3
2
  require 'erb'
4
3
  require 'yaml'
5
4
  require_relative 'text_actions'
6
5
  require_relative '../logger'
7
6
 
8
- # Lang#lang
9
7
  class Lang
10
8
  include TextActions
11
9
 
@@ -32,7 +30,6 @@ class Lang
32
30
  @mistakes = load_yaml_file(filepath)
33
31
  end
34
32
 
35
- # rubocop:disable Security/YAMLLoad
36
33
  def load_yaml_file(filepath)
37
34
  begin
38
35
  content = YAML.load(File.new(filepath))
@@ -44,5 +41,4 @@ class Lang
44
41
  end
45
42
  content
46
43
  end
47
- # rubocop:enable Security/YAMLLoad
48
44
  end
data/lib/asker/version.rb CHANGED
@@ -1,8 +1,7 @@
1
1
 
2
- # Global parameters
3
2
  module Version
4
- MAJOR_NUMBER = '2.3'
5
- VERSION = "#{MAJOR_NUMBER}.2"
3
+ MAJOR_NUMBER = '2.4'
4
+ VERSION = "#{MAJOR_NUMBER}.0"
6
5
  NAME = 'asker'
7
6
  GEM = 'asker-tool'
8
7
  CONFIGFILE = 'asker.ini'
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.3.2
4
+ version: 2.4.0
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: 2022-03-17 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml
@@ -108,48 +108,6 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.20'
111
- - !ruby/object:Gem::Dependency
112
- name: minitest
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '5.11'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '5.11'
125
- - !ruby/object:Gem::Dependency
126
- name: pry-byebug
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.9'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.9'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0.74'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0.74'
153
111
  description: ASKER helps trainers to create a huge amount of questions, from a definitions
154
112
  input file.
155
113
  email: teuton.software@protonmail.com
@@ -212,6 +170,9 @@ files:
212
170
  - lib/asker/files/asker.ini
213
171
  - lib/asker/files/example-code.haml
214
172
  - lib/asker/files/example-concept.haml
173
+ - lib/asker/files/language/ca/connectors.yaml
174
+ - lib/asker/files/language/ca/mistakes.yaml
175
+ - lib/asker/files/language/ca/templates.yaml
215
176
  - lib/asker/files/language/du/connectors.yaml
216
177
  - lib/asker/files/language/du/mistakes.yaml
217
178
  - lib/asker/files/language/du/templates.yaml