quby-compiler 0.5.38 → 0.5.40

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: 9f717b87f1eeac5b54e6230cc80880a40b46596790536a513a3802d050e25ab6
4
- data.tar.gz: e28bf580f65ab625b51d8448f5a49f03169694a0864e7d3d888cef7d7d83f3f3
3
+ metadata.gz: 6342b4cf939e7eb0301d8aa79f211c3bfa56a04b9eff6ea45d83fbba5dd02697
4
+ data.tar.gz: 68e0da157dc122ff494e1121f986ff5e205f5b2955a1484e5de7290133549a9c
5
5
  SHA512:
6
- metadata.gz: 0ee40da6cd79071369b6b183ef357b915a03a6f7755a92e06ee61167c7a39863086656b61e715e03e68db0d856d4fbf76b394801ae488c5673750aa7ac57cd2e
7
- data.tar.gz: be3c0096361e0713738fdbbd3e2d497c9788a0dfe72df83298e189caa811ca55707d57f78bc32c7acb6ae42c7f4e9b3f646865e675b86a2c60a458d865c41528
6
+ metadata.gz: 4eb85ba7632d54ff9ab1bdb28cd2d4f803d260e6696b18a6ceeea368525ce23bf9a31cb2a8e6aa8d4e3fdd13691a39c0140cee910a2643ced5477faa84d476cc
7
+ data.tar.gz: bbe2f9d6ea2b0e733f2ceeb2da703d5b429864184fc1745bcda80e0a96e18485a04c6616347c4ed4dfc191352cb879737577a86e235fc826ebc51625d026a7c6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 0.5.40
2
+
3
+ * add editable_from_version setting
4
+
5
+ # 0.5.39
6
+
7
+ * Remove ostruct dependency (next ruby version requires a gem for this). Make tags simple array and only export to roqua.json.
8
+ * Remove unneeded attributes from frontend v1 json.
9
+
1
10
  # 0.5.38
2
11
 
3
12
  * Fail when using unsupported features in layout_version :v2
@@ -118,13 +118,17 @@ module Quby
118
118
 
119
119
  def version(number, release_notes:, regenerate_outcome: false, deactivate_answers: false)
120
120
  @questionnaire.versions << Entities::Version.new(
121
- number: number,
122
- release_notes: release_notes,
123
- regenerate_outcome: regenerate_outcome,
124
- deactivate_answers: deactivate_answers
121
+ number:,
122
+ release_notes:,
123
+ regenerate_outcome:,
124
+ deactivate_answers:,
125
125
  )
126
126
  end
127
127
 
128
+ def editable_from_version(number)
129
+ @questionnaire.editable_from_version = number
130
+ end
131
+
128
132
  def outcome_regeneration_requested_at(timestamp)
129
133
  @questionnaire.outcome_regeneration_requested_at = timestamp
130
134
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ostruct'
4
3
  require 'active_model'
5
4
  require 'quby/settings'
6
5
  require 'quby/compiler/entities/flag'
@@ -46,7 +45,7 @@ module Quby
46
45
  @textvars = {}.with_indifferent_access
47
46
  @language = :nl
48
47
  @respondent_types = []
49
- @tags = OpenStruct.new
48
+ @tags = []
50
49
  @check_key_clashes = true
51
50
  @validate_html = true
52
51
  @score_schemas = {}.with_indifferent_access
@@ -56,6 +55,7 @@ module Quby
56
55
  @sexp_variables = {}
57
56
  @sexp_visibility_rules = []
58
57
  @versions = []
58
+ @editable_from_version = nil
59
59
  @seeds_patch = {}
60
60
  @anonymous_conditions = Entities::AnonymousConditions.new
61
61
  @check_checkbox_options_start_with_question_key = true
@@ -70,7 +70,7 @@ module Quby
70
70
  attr_writer :roqua_keys
71
71
  attr_accessor :sbg_key # not required to be unique
72
72
  attr_accessor :sbg_domains
73
- attr_accessor :versions
73
+ attr_accessor :versions, :editable_from_version
74
74
  attr_accessor :abortable
75
75
  attr_accessor :enable_previous_questionnaire_button
76
76
  attr_accessor :panels
@@ -96,7 +96,6 @@ module Quby
96
96
  # If false, we don't check html for validity (for mate1 and mate1_pre)
97
97
  attr_accessor :validate_html
98
98
 
99
- attr_accessor :last_author
100
99
  attr_writer :allow_hotkeys # allow hotkeys for :all views, just :bulk views (default), or :none for never
101
100
 
102
101
  attr_accessor :charts
@@ -116,9 +115,7 @@ module Quby
116
115
  delegate :question_hash, :input_keys, :answer_keys, :expand_input_keys, to: :fields
117
116
 
118
117
  def tags=(tags)
119
- tags.each do |tag|
120
- @tags[tag] = true
121
- end
118
+ @tags = @tags.union(tags)
122
119
  end
123
120
 
124
121
  def leave_page_alert
@@ -20,4 +20,4 @@ module Quby
20
20
  end
21
21
  end
22
22
  end
23
- end
23
+ end
@@ -233,45 +233,6 @@ module Quby
233
233
  end
234
234
  end
235
235
 
236
- def charts
237
- {
238
- overview: questionnaire.charts.overview && {
239
- subscore: questionnaire.charts.overview.subscore,
240
- y_max: questionnaire.charts.overview.y_max,
241
- },
242
- others: questionnaire.charts.map do |chart|
243
- case chart
244
- when Quby::Compiler::Entities::Charting::LineChart
245
- {
246
- y_label: chart.y_label,
247
- tonality: chart.tonality,
248
- baseline: YAML.dump(chart.baseline),
249
- clinically_relevant_change: chart.clinically_relevant_change,
250
- }
251
- when Quby::Compiler::Entities::Charting::OverviewChart
252
- {
253
- subscore: chart.subscore,
254
- y_max: chart.y_max,
255
- }
256
- else
257
- {}
258
- end.merge(
259
- key: chart.key,
260
- type: chart.type,
261
- title: chart.title,
262
- plottables: chart.plottables,
263
- y_categories: chart.y_categories,
264
- y_range_categories: chart.y_range_categories,
265
- chart_type: chart.chart_type,
266
- y_range: range_as_json(chart.y_range),
267
- tick_interval: chart.tick_interval,
268
- plotbands: chart.plotbands,
269
- plotlines: chart.plotlines
270
- )
271
- end
272
- }
273
- end
274
-
275
236
  def flags
276
237
  questionnaire.flags.transform_values do |flag|
277
238
  {
@@ -305,35 +266,16 @@ module Quby
305
266
  YAML.dump(questionnaire.lookup_tables)
306
267
  end
307
268
 
308
- def outcome_tables
309
- # TODO DOes not seem to be used in definitions?
310
- questionnaire.outcome_tables.map do |outcome_table|
311
- {
312
- key: outcome_table.key,
313
- score_keys: outcome_table.score_keys,
314
- subscore_keys: outcome_table.subscore_keys,
315
- name: outcome_table.name,
316
- default_collapsed: outcome_table.default_collapsed,
317
- }
318
- end
319
- end
320
-
321
269
  def as_json(options = {})
322
270
  {
323
271
  key: questionnaire.key,
324
272
  title: questionnaire.title,
325
- description: questionnaire.description,
326
- outcome_description: questionnaire.outcome_description,
327
- short_description: questionnaire.short_description,
328
273
  abortable: questionnaire.abortable,
329
274
  enable_previous_questionnaire_button: questionnaire.enable_previous_questionnaire_button,
330
275
  default_answer_value: questionnaire.default_answer_value,
331
276
  leave_page_alert: questionnaire.leave_page_alert,
332
277
  allow_hotkeys: questionnaire.allow_hotkeys,
333
- license: questionnaire.license,
334
- licensor: questionnaire.licensor,
335
278
  language: questionnaire.language,
336
- last_author: questionnaire.last_author,
337
279
  extra_css: questionnaire.extra_css,
338
280
 
339
281
  panels: panels,
@@ -342,17 +284,6 @@ module Quby
342
284
  flags: flags,
343
285
  textvars: textvars,
344
286
  lookup_tables: lookup_tables,
345
-
346
- # belong to roqua domain, but for now they're here too:
347
- roqua_keys: questionnaire.roqua_keys,
348
- sbg_key: questionnaire.sbg_key,
349
- sbg_domains: questionnaire.sbg_domains,
350
- outcome_regeneration_requested_at: questionnaire.outcome_regeneration_requested_at,
351
- deactivate_answers_requested_at: questionnaire.deactivate_answers_requested_at,
352
- respondent_types: questionnaire.respondent_types,
353
- tags: questionnaire.tags.to_h.keys,
354
- charts: charts,
355
- outcome_tables: outcome_tables,
356
287
  }
357
288
  end
358
289
 
@@ -25,6 +25,7 @@ module Quby
25
25
  key: questionnaire.key,
26
26
  renderer:,
27
27
  versions: versions,
28
+ editable_from_version: questionnaire.editable_from_version,
28
29
  keys: questionnaire.roqua_keys,
29
30
  roqua_keys: questionnaire.roqua_keys,
30
31
  sbg_key: questionnaire.sbg_key,
@@ -32,7 +33,7 @@ module Quby
32
33
  outcome_regeneration_requested_at: questionnaire.outcome_regeneration_requested_at,
33
34
  deactivate_answers_requested_at: questionnaire.deactivate_answers_requested_at,
34
35
  respondent_types: questionnaire.respondent_types,
35
- tags: questionnaire.tags.to_h.keys,
36
+ tags: questionnaire.tags,
36
37
  charts: charts,
37
38
  outcome_tables_schema: outcome_tables_schema,
38
39
  outcome_description: questionnaire.outcome_description,
@@ -56,12 +57,7 @@ module Quby
56
57
 
57
58
  def versions
58
59
  questionnaire.versions.map do |version|
59
- {
60
- number: version.number,
61
- release_notes: version.release_notes,
62
- regenerate_outcome: version.regenerate_outcome,
63
- deactivate_answers: version.deactivate_answers
64
- }
60
+ version.as_json(only: %w[number release_notes regenerate_outcome deactivate_answers])
65
61
  end
66
62
  end
67
63
 
@@ -1,5 +1,5 @@
1
1
  module Quby
2
2
  module Compiler
3
- VERSION = "0.5.38"
3
+ VERSION = "0.5.40"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quby-compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.38
4
+ version: 0.5.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marten Veldthuis
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-10-27 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activemodel
@@ -51,6 +51,20 @@ dependencies:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '5.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: csv
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
54
68
  - !ruby/object:Gem::Dependency
55
69
  name: dry-struct
56
70
  requirement: !ruby/object:Gem::Requirement
@@ -250,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
264
  - !ruby/object:Gem::Version
251
265
  version: '0'
252
266
  requirements: []
253
- rubygems_version: 3.6.3
267
+ rubygems_version: 3.6.9
254
268
  specification_version: 4
255
269
  summary: Quby::Compiler compiles a DSL for questionnaires to JSON
256
270
  test_files: []