quby-compiler 0.3.1 → 0.3.3
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/CHANGELOG.md +8 -0
- data/Gemfile.lock +5 -5
- data/lib/quby/compiler/dsl.rb +3 -3
- data/lib/quby/compiler/dsl/base.rb +2 -2
- data/lib/quby/compiler/dsl/calls_custom_methods.rb +1 -2
- data/lib/quby/compiler/dsl/charting/chart_builder.rb +3 -3
- data/lib/quby/compiler/dsl/charting/overview_chart_builder.rb +1 -1
- data/lib/quby/compiler/dsl/helpers.rb +3 -3
- data/lib/quby/compiler/dsl/panel_builder.rb +13 -10
- data/lib/quby/compiler/dsl/question_builder.rb +2 -2
- data/lib/quby/compiler/dsl/questionnaire_builder.rb +24 -24
- data/lib/quby/compiler/dsl/questions/base.rb +7 -7
- data/lib/quby/compiler/dsl/questions/checkbox_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/date_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/deprecated_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/float_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/integer_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/radio_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/select_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/string_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/text_question_builder.rb +1 -1
- data/lib/quby/compiler/dsl/score_builder.rb +1 -1
- data/lib/quby/compiler/dsl/table_builder.rb +5 -5
- data/lib/quby/compiler/entities/definition.rb +3 -2
- data/lib/quby/compiler/entities/questionnaire.rb +2 -2
- data/lib/quby/compiler/instance.rb +1 -1
- data/lib/quby/compiler/services/definition_validator.rb +1 -1
- data/lib/quby/compiler/services/quby_proxy.rb +6 -6
- data/lib/quby/compiler/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf1f976b37af794cf97fffb6ab66d420951f6d24ade6362851e0564ac504485f
|
4
|
+
data.tar.gz: bf363984e69fd45a2ccae488f2ea587d0482dd2cbf501a7b36fffc314368b6f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3b3470eea0acae3245483e780baa6fe9e9e321fc37ba6422ac5674aeaf5e7ad2a3c145aa6260359a12da34b5d818187e0d9f6de4b177886c5764631aecfd0e2
|
7
|
+
data.tar.gz: ad44885ecf958d9cabb332081dda45710c6baa8a96620b1998c7d86c56995051547f28d7b9b2f2776ab1df5335677d6dce904b56a1c56fd565583b16db7f9e7e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# 0.3.3
|
2
|
+
|
3
|
+
Replace `options={}` with `**options` in the builders to prevent prepare for ruby 3.0
|
4
|
+
|
5
|
+
# 0.3.2
|
6
|
+
|
7
|
+
* Fix slashes-after-numbers removal when question does not have a title
|
8
|
+
|
1
9
|
# 0.3.1
|
2
10
|
|
3
11
|
* Slashes after numbers are now removed from question titles when making RoQua seeds (quests attribute).
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
quby-compiler (0.3.
|
4
|
+
quby-compiler (0.3.3)
|
5
5
|
actionview (>= 5.0)
|
6
6
|
activemodel (>= 5.0)
|
7
7
|
activesupport (>= 5.0)
|
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
concurrent-ruby (1.1.8)
|
42
42
|
crass (1.0.6)
|
43
43
|
diff-lcs (1.4.4)
|
44
|
-
dry-configurable (0.12.
|
44
|
+
dry-configurable (0.12.0)
|
45
45
|
concurrent-ruby (~> 1.0)
|
46
46
|
dry-core (~> 0.5, >= 0.5.0)
|
47
47
|
dry-container (0.7.2)
|
@@ -57,7 +57,7 @@ GEM
|
|
57
57
|
dry-core (~> 0.5, >= 0.5)
|
58
58
|
dry-types (~> 1.5)
|
59
59
|
ice_nine (~> 0.11)
|
60
|
-
dry-types (1.5.
|
60
|
+
dry-types (1.5.0)
|
61
61
|
concurrent-ruby (~> 1.0)
|
62
62
|
dry-container (~> 0.3)
|
63
63
|
dry-core (~> 0.5, >= 0.5)
|
@@ -77,7 +77,7 @@ GEM
|
|
77
77
|
nokogiri (1.11.1)
|
78
78
|
mini_portile2 (~> 2.5.0)
|
79
79
|
racc (~> 1.4)
|
80
|
-
nokogumbo (2.0.
|
80
|
+
nokogumbo (2.0.3)
|
81
81
|
nokogiri (~> 1.8, >= 1.8.4)
|
82
82
|
pry (0.13.1)
|
83
83
|
coderay (~> 1.1)
|
@@ -90,7 +90,7 @@ GEM
|
|
90
90
|
rails-html-sanitizer (1.3.0)
|
91
91
|
loofah (~> 2.3)
|
92
92
|
rake (12.3.3)
|
93
|
-
redcarpet (3.5.
|
93
|
+
redcarpet (3.5.0)
|
94
94
|
roqua-support (0.3.5)
|
95
95
|
active_interaction (~> 3.0)
|
96
96
|
activesupport (>= 5.1, < 6.1)
|
data/lib/quby/compiler/dsl.rb
CHANGED
@@ -10,15 +10,15 @@ module Quby
|
|
10
10
|
module DSL
|
11
11
|
def self.build_from_definition(definition)
|
12
12
|
Entities::Questionnaire.new(definition.key, last_update: definition.timestamp).tap do |questionnaire|
|
13
|
-
builder = QuestionnaireBuilder.new(questionnaire)
|
13
|
+
builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: definition.lookup_tables)
|
14
14
|
builder.instance_eval(definition.sourcecode, definition.path) if definition.sourcecode
|
15
15
|
questionnaire.callback_after_dsl_enhance_on_questions
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.build(key, sourcecode = nil, path: nil, timestamp: nil, &block)
|
19
|
+
def self.build(key, sourcecode = nil, path: nil, timestamp: nil, lookup_tables: {}, &block)
|
20
20
|
Entities::Questionnaire.new(key, last_update: timestamp).tap do |questionnaire|
|
21
|
-
builder = QuestionnaireBuilder.new(questionnaire)
|
21
|
+
builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: lookup_tables)
|
22
22
|
builder.instance_eval(sourcecode, path || key) if sourcecode
|
23
23
|
builder.instance_eval(&block) if block
|
24
24
|
questionnaire.callback_after_dsl_enhance_on_questions
|
@@ -16,8 +16,8 @@ module Quby
|
|
16
16
|
@chart_class
|
17
17
|
end
|
18
18
|
|
19
|
-
def initialize(questionnaire, key, options
|
20
|
-
@chart = self.class.chart_class.new(key, options)
|
19
|
+
def initialize(questionnaire, key, **options)
|
20
|
+
@chart = self.class.chart_class.new(key, **options)
|
21
21
|
@questionnaire = questionnaire
|
22
22
|
end
|
23
23
|
|
@@ -49,7 +49,7 @@ module Quby
|
|
49
49
|
@chart.plotlines << {value: value, color: color}
|
50
50
|
end
|
51
51
|
|
52
|
-
def plot(key, options
|
52
|
+
def plot(key, **options)
|
53
53
|
unless plottable = @questionnaire.find_plottable(key)
|
54
54
|
fail "Questionnaire #{@questionnaire.key} chart #{@chart.key} references unknown score or question #{key}"
|
55
55
|
end
|
@@ -7,7 +7,7 @@ module Quby
|
|
7
7
|
class OverviewChartBuilder < ChartBuilder
|
8
8
|
set_chart_class(Entities::Charting::OverviewChart)
|
9
9
|
|
10
|
-
def initialize(questionnaire, options
|
10
|
+
def initialize(questionnaire, **options)
|
11
11
|
@questionnaire = questionnaire
|
12
12
|
@chart = self.class.chart_class.new
|
13
13
|
end
|
@@ -7,8 +7,8 @@ module Quby
|
|
7
7
|
include ActionView::Helpers::TagHelper
|
8
8
|
include ActionView::Helpers::OutputSafetyHelper
|
9
9
|
|
10
|
-
def image_tag(source, options
|
11
|
-
tag.img(options.reverse_merge(src: source, alt: image_alt(source)))
|
10
|
+
def image_tag(source, **options)
|
11
|
+
tag.img(**options.reverse_merge(src: source, alt: image_alt(source)))
|
12
12
|
end
|
13
13
|
|
14
14
|
# Copied from ActionController::Base.helpers.image_alt, because it will be removed from Rails 6.0, but we want
|
@@ -18,7 +18,7 @@ module Quby
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def check_question_keys_uniqueness(key, options, questionnaire)
|
21
|
-
keys = QuestionBuilder.build(key, options).claimed_keys
|
21
|
+
keys = QuestionBuilder.build(key, **options).claimed_keys
|
22
22
|
if keys.any? { |k| questionnaire.key_in_use? k }
|
23
23
|
fail "#{questionnaire.key}:#{key}: A question or option with input key #{key} is already defined."
|
24
24
|
end
|
@@ -9,9 +9,9 @@ module Quby
|
|
9
9
|
attr_reader :title
|
10
10
|
attr_reader :questionnaire
|
11
11
|
|
12
|
-
def initialize(title,
|
13
|
-
@panel = Entities::Panel.new(
|
14
|
-
@default_question_options =
|
12
|
+
def initialize(title, default_question_options: {}, **options)
|
13
|
+
@panel = Entities::Panel.new({title: title, items: [], **options})
|
14
|
+
@default_question_options = default_question_options
|
15
15
|
@questionnaire = options[:questionnaire]
|
16
16
|
@custom_methods = options[:custom_methods] || {}
|
17
17
|
end
|
@@ -41,25 +41,28 @@ module Quby
|
|
41
41
|
@panel.items << Entities::Text.new('', raw_content: video_html)
|
42
42
|
end
|
43
43
|
|
44
|
-
def default_question_options(options
|
44
|
+
def default_question_options(**options)
|
45
45
|
@default_question_options = @default_question_options.merge(options)
|
46
46
|
end
|
47
47
|
|
48
|
-
def question(key, options
|
48
|
+
def question(key, **options, &block)
|
49
49
|
options = @default_question_options.merge(options).merge(questionnaire: @panel.questionnaire)
|
50
50
|
|
51
51
|
check_question_keys_uniqueness key, options, @questionnaire
|
52
52
|
|
53
|
-
question = QuestionBuilder.build(key, options, &block)
|
53
|
+
question = QuestionBuilder.build(key, **options, &block)
|
54
54
|
|
55
55
|
@questionnaire.register_question(question)
|
56
56
|
@panel.items << question
|
57
57
|
end
|
58
58
|
|
59
|
-
def table(options
|
60
|
-
table_builder = TableBuilder.new
|
61
|
-
|
62
|
-
|
59
|
+
def table(**options, &block)
|
60
|
+
table_builder = TableBuilder.new \
|
61
|
+
@panel,
|
62
|
+
questionnaire: @panel.questionnaire,
|
63
|
+
default_question_options: @default_question_options,
|
64
|
+
custom_methods: @custom_methods,
|
65
|
+
**options
|
63
66
|
table_builder.instance_eval(&block) if block
|
64
67
|
end
|
65
68
|
|
@@ -31,8 +31,8 @@ module Quby
|
|
31
31
|
'hidden' => Questions::DeprecatedQuestionBuilder
|
32
32
|
}
|
33
33
|
|
34
|
-
def self.build(key, options
|
35
|
-
BUILDERS.fetch(options.fetch(:type).to_s).build(key, options, &block)
|
34
|
+
def self.build(key, **options, &block)
|
35
|
+
BUILDERS.fetch(options.fetch(:type).to_s).build(key, **options, &block)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -19,7 +19,7 @@ module Quby
|
|
19
19
|
include StandardizedPanelGenerators
|
20
20
|
include Helpers
|
21
21
|
|
22
|
-
def initialize(target_instance, lookup_tables:
|
22
|
+
def initialize(target_instance, lookup_tables:)
|
23
23
|
@questionnaire = target_instance
|
24
24
|
@lookup_tables = lookup_tables
|
25
25
|
@default_question_options = {}
|
@@ -148,7 +148,7 @@ module Quby
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def panel(title = nil, options = {}, &block)
|
151
|
-
panel = PanelBuilder.build(title, options
|
151
|
+
panel = PanelBuilder.build(title, **options, **default_panel_options, &block)
|
152
152
|
@questionnaire.add_panel(panel)
|
153
153
|
end
|
154
154
|
|
@@ -167,28 +167,28 @@ module Quby
|
|
167
167
|
@questionnaire.lookup_tables[key] = {levels: levels, tree: tree}
|
168
168
|
end
|
169
169
|
|
170
|
-
def default_question_options(options
|
170
|
+
def default_question_options(**options)
|
171
171
|
@default_question_options.merge!(options)
|
172
172
|
end
|
173
173
|
|
174
174
|
# Short-circuit the question command to perform an implicit panel
|
175
|
-
def question(key, options
|
175
|
+
def question(key, **options, &block)
|
176
176
|
panel(nil, default_panel_options) do
|
177
|
-
question(key,
|
177
|
+
question(key, questionnaire: @questionnaire, **@default_question_options, **options, &block)
|
178
178
|
end
|
179
179
|
end
|
180
180
|
|
181
181
|
# Short-circuit the text command to perform an implicit panel
|
182
|
-
def text(value, options
|
183
|
-
panel(nil, default_panel_options) do
|
184
|
-
text(value, options)
|
182
|
+
def text(value, **options)
|
183
|
+
panel(nil, **default_panel_options) do
|
184
|
+
text(value, **options)
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
188
188
|
# Short-circuit the table command to perform an implicit panel
|
189
|
-
def table(options
|
190
|
-
panel(nil, default_panel_options) do
|
191
|
-
table(options, &block)
|
189
|
+
def table(**options, &block)
|
190
|
+
panel(nil, **default_panel_options) do
|
191
|
+
table(**options, &block)
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
@@ -197,15 +197,15 @@ module Quby
|
|
197
197
|
# # variables are private to the score calculation
|
198
198
|
# q01 + q02 + q03
|
199
199
|
# end
|
200
|
-
def variable(key, options
|
201
|
-
@questionnaire.add_score_calculation ScoreBuilder.new(key, options, &block).build
|
200
|
+
def variable(key, **options, &block)
|
201
|
+
@questionnaire.add_score_calculation ScoreBuilder.new(key, **options, &block).build
|
202
202
|
end
|
203
203
|
|
204
|
-
def score(key, options
|
204
|
+
def score(key, **options, &block)
|
205
205
|
@questionnaire.errors.add "Score #{key}", 'misses label in score call' if options[:label].blank?
|
206
206
|
schema = options.delete(:schema)
|
207
207
|
score_schema(key, options[:label], schema) if schema.present?
|
208
|
-
variable(key,
|
208
|
+
variable(key, score: true, **options, &block)
|
209
209
|
end
|
210
210
|
|
211
211
|
def score_schema(key, label, options = nil, &block)
|
@@ -222,16 +222,16 @@ module Quby
|
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
|
-
def attention(options
|
226
|
-
variable(:attention,
|
225
|
+
def attention(**options, &block)
|
226
|
+
variable(:attention, action: true, **options, &block)
|
227
227
|
end
|
228
228
|
|
229
|
-
def alarm(options
|
230
|
-
variable(:alarm,
|
229
|
+
def alarm(**options, &block)
|
230
|
+
variable(:alarm, action: true, **options, &block)
|
231
231
|
end
|
232
232
|
|
233
|
-
def completion(options
|
234
|
-
variable(:completion,
|
233
|
+
def completion(**options, &block)
|
234
|
+
variable(:completion, completion: true, **options, &block)
|
235
235
|
end
|
236
236
|
|
237
237
|
def overview_chart(*args, &block)
|
@@ -255,15 +255,15 @@ module Quby
|
|
255
255
|
@questionnaire.add_chart(builder.build(&block))
|
256
256
|
end
|
257
257
|
|
258
|
-
def flag(flag_options)
|
258
|
+
def flag(**flag_options)
|
259
259
|
@questionnaire.add_flag flag_options
|
260
260
|
end
|
261
261
|
|
262
|
-
def textvar(textvar_options)
|
262
|
+
def textvar(**textvar_options)
|
263
263
|
@questionnaire.add_textvar textvar_options
|
264
264
|
end
|
265
265
|
|
266
|
-
def outcome_table(table_options)
|
266
|
+
def outcome_table(**table_options)
|
267
267
|
@questionnaire.add_outcome_table table_options
|
268
268
|
end
|
269
269
|
|
@@ -10,8 +10,8 @@ module Quby
|
|
10
10
|
attr_reader :type
|
11
11
|
attr_reader :questionnaire
|
12
12
|
|
13
|
-
def initialize(key, options
|
14
|
-
@questionnaire =
|
13
|
+
def initialize(key, questionnaire:, **options)
|
14
|
+
@questionnaire = questionnaire
|
15
15
|
end
|
16
16
|
|
17
17
|
def build
|
@@ -111,7 +111,7 @@ module Quby
|
|
111
111
|
end
|
112
112
|
|
113
113
|
module Subquestions
|
114
|
-
def initialize(key, options
|
114
|
+
def initialize(key, **options, &block)
|
115
115
|
super
|
116
116
|
@default_question_options = options[:default_question_options] || {}
|
117
117
|
@title_question = nil
|
@@ -126,7 +126,7 @@ module Quby
|
|
126
126
|
super
|
127
127
|
end
|
128
128
|
|
129
|
-
def title_question(key, options
|
129
|
+
def title_question(key, **options, &block)
|
130
130
|
options = @default_question_options.merge({depends_on: @question.key,
|
131
131
|
questionnaire: @questionnaire,
|
132
132
|
parent: @question,
|
@@ -135,13 +135,13 @@ module Quby
|
|
135
135
|
|
136
136
|
check_question_keys_uniqueness key, options, @questionnaire
|
137
137
|
|
138
|
-
question = QuestionBuilder.build(key, options, &block)
|
138
|
+
question = QuestionBuilder.build(key, **options, &block)
|
139
139
|
|
140
140
|
@questionnaire.register_question(question)
|
141
141
|
@title_question = question
|
142
142
|
end
|
143
143
|
|
144
|
-
def question(key, options
|
144
|
+
def question(key, **options, &block)
|
145
145
|
options = @default_question_options.merge(options)
|
146
146
|
.merge(questionnaire: @questionnaire,
|
147
147
|
parent: @question,
|
@@ -149,7 +149,7 @@ module Quby
|
|
149
149
|
|
150
150
|
check_question_keys_uniqueness key, options, @questionnaire
|
151
151
|
|
152
|
-
question = QuestionBuilder.build(key, options, &block)
|
152
|
+
question = QuestionBuilder.build(key, **options, &block)
|
153
153
|
|
154
154
|
@questionnaire.register_question(question)
|
155
155
|
@question.options.last.questions << question
|
@@ -9,10 +9,10 @@ module Quby
|
|
9
9
|
prepend CallsCustomMethods
|
10
10
|
include Helpers
|
11
11
|
|
12
|
-
def initialize(panel,
|
12
|
+
def initialize(panel, default_question_options: {}, **options)
|
13
13
|
@panel = panel
|
14
14
|
@table = Entities::Table.new(options)
|
15
|
-
@default_question_options =
|
15
|
+
@default_question_options = default_question_options
|
16
16
|
@panel.items << @table
|
17
17
|
end
|
18
18
|
|
@@ -24,11 +24,11 @@ module Quby
|
|
24
24
|
@table.description = value
|
25
25
|
end
|
26
26
|
|
27
|
-
def text(value, options
|
27
|
+
def text(value, **options)
|
28
28
|
@table.items << Entities::Text.new(value.to_s, options)
|
29
29
|
end
|
30
30
|
|
31
|
-
def question(key, options
|
31
|
+
def question(key, **options, &block)
|
32
32
|
options = @default_question_options.merge(options)
|
33
33
|
.merge(table: @table,
|
34
34
|
questionnaire: @panel.questionnaire)
|
@@ -36,7 +36,7 @@ module Quby
|
|
36
36
|
check_question_keys_uniqueness key, options, @panel.questionnaire
|
37
37
|
fail "You can't create a slider in a table at the moment" if options[:as] == :slider
|
38
38
|
|
39
|
-
question = QuestionBuilder.build(key, options, &block)
|
39
|
+
question = QuestionBuilder.build(key, **options, &block)
|
40
40
|
|
41
41
|
@panel.questionnaire.register_question(question)
|
42
42
|
@table.items << question
|
@@ -10,13 +10,14 @@ module Quby
|
|
10
10
|
extend ActiveModel::Naming
|
11
11
|
include ActiveModel::Validations
|
12
12
|
|
13
|
-
attr_accessor :key, :sourcecode, :timestamp, :path
|
13
|
+
attr_accessor :key, :sourcecode, :timestamp, :path, :lookup_tables
|
14
14
|
|
15
|
-
def initialize(key:, path:, sourcecode: "", timestamp: nil)
|
15
|
+
def initialize(key:, path:, sourcecode: "", timestamp: nil, lookup_tables: {})
|
16
16
|
@path = path
|
17
17
|
@key = key
|
18
18
|
@sourcecode = sourcecode
|
19
19
|
@timestamp = timestamp
|
20
|
+
@lookup_tables = lookup_tables
|
20
21
|
end
|
21
22
|
|
22
23
|
validates_with Services::DefinitionValidator
|
@@ -283,7 +283,7 @@ module Quby
|
|
283
283
|
end
|
284
284
|
flag_options[:key] = flag_key
|
285
285
|
fail(ArgumentError, "Flag '#{flag_key}' already defined") if flags.key?(flag_key)
|
286
|
-
flags[flag_key] = Flag.new(flag_options)
|
286
|
+
flags[flag_key] = Flag.new(**flag_options)
|
287
287
|
end
|
288
288
|
|
289
289
|
def filter_flags(given_flags)
|
@@ -297,7 +297,7 @@ module Quby
|
|
297
297
|
textvar_options[:key] = textvar_key
|
298
298
|
validate_textvar_keys_unique(textvar_key)
|
299
299
|
validate_depends_on_flag(textvar_key, textvar_options)
|
300
|
-
textvars[textvar_key] = Textvar.new(textvar_options)
|
300
|
+
textvars[textvar_key] = Textvar.new(**textvar_options)
|
301
301
|
end
|
302
302
|
|
303
303
|
def filter_textvars(given_textvars)
|
@@ -63,7 +63,7 @@ module Quby
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def validate(key:, sourcecode:)
|
66
|
-
definition = Entities::Definition.new(key: key, sourcecode: sourcecode, path: "validating '#{key}'")
|
66
|
+
definition = Entities::Definition.new(key: key, sourcecode: sourcecode, path: "validating '#{key}'", lookup_tables: lookup_tables)
|
67
67
|
definition.valid?
|
68
68
|
definition
|
69
69
|
end
|
@@ -30,7 +30,7 @@ module Quby
|
|
30
30
|
rescue Exception => exception # rubocop:disable Lint/RescueException
|
31
31
|
definition.errors.add(:sourcecode, {message: "Questionnaire error: #{definition.key}\n" \
|
32
32
|
"#{exception.message}",
|
33
|
-
backtrace: exception.backtrace[0..
|
33
|
+
backtrace: exception.backtrace[0..20]})
|
34
34
|
end
|
35
35
|
|
36
36
|
def validate_fields(questionnaire)
|
@@ -292,19 +292,19 @@ module Quby
|
|
292
292
|
|
293
293
|
def strip_question_number_slashes(quests)
|
294
294
|
quests.transform_values! do |value|
|
295
|
-
value
|
295
|
+
value&.gsub /^(\s*\d+)\\/, '\1'
|
296
296
|
end
|
297
297
|
end
|
298
298
|
|
299
299
|
def process_scores
|
300
300
|
scores_from_schemas
|
301
301
|
end
|
302
|
-
|
302
|
+
|
303
303
|
def scores_from_schemas
|
304
304
|
score_headers = [] # headers outcome (humanized name for subscores)
|
305
305
|
score_keys = [] # headers data-export (not all of it, just the score_subscore part, shortened)
|
306
306
|
score_labels = [] # score names outcome (humanized name for score as a whole)
|
307
|
-
|
307
|
+
|
308
308
|
questionnaire.score_schemas.values.each do |score_schema|
|
309
309
|
score_labels << score_schema.label
|
310
310
|
score_keys << score_schema.subscore_schemas.map do |subschema|
|
@@ -318,18 +318,18 @@ module Quby
|
|
318
318
|
hash
|
319
319
|
end
|
320
320
|
end
|
321
|
-
|
321
|
+
|
322
322
|
headers = score_schema.subscore_schemas.map(&:label)
|
323
323
|
score_headers += headers - score_headers
|
324
324
|
end
|
325
|
-
|
325
|
+
|
326
326
|
{
|
327
327
|
headers: score_headers,
|
328
328
|
keys: score_keys,
|
329
329
|
labels: score_labels
|
330
330
|
}
|
331
331
|
end
|
332
|
-
|
332
|
+
|
333
333
|
class ShortenKeysUniq
|
334
334
|
def initialize
|
335
335
|
@seen_results = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quby-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
-
description:
|
139
|
+
description:
|
140
140
|
email:
|
141
141
|
- marten@veldthuis.com
|
142
142
|
executables:
|
@@ -256,7 +256,7 @@ licenses:
|
|
256
256
|
- MIT
|
257
257
|
metadata:
|
258
258
|
homepage_uri: https://gitlab.roqua.nl/roqua/quby-compiler
|
259
|
-
post_install_message:
|
259
|
+
post_install_message:
|
260
260
|
rdoc_options: []
|
261
261
|
require_paths:
|
262
262
|
- lib
|
@@ -272,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
272
|
version: '0'
|
273
273
|
requirements: []
|
274
274
|
rubygems_version: 3.1.2
|
275
|
-
signing_key:
|
275
|
+
signing_key:
|
276
276
|
specification_version: 4
|
277
277
|
summary: Quby::Compiler compiles a DSL for questionnaires to JSON
|
278
278
|
test_files: []
|