quby-compiler 0.3.3 → 0.3.4

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: cf1f976b37af794cf97fffb6ab66d420951f6d24ade6362851e0564ac504485f
4
- data.tar.gz: bf363984e69fd45a2ccae488f2ea587d0482dd2cbf501a7b36fffc314368b6f3
3
+ metadata.gz: 0a1a654ea10bed63b7487aaaa16c663efdd89d3a034e52574ea0f05aa08c3845
4
+ data.tar.gz: 2e6adaba2286e5400de5bebd944fceb3c71b62d32fea9abd9462cc98a9000084
5
5
  SHA512:
6
- metadata.gz: d3b3470eea0acae3245483e780baa6fe9e9e321fc37ba6422ac5674aeaf5e7ad2a3c145aa6260359a12da34b5d818187e0d9f6de4b177886c5764631aecfd0e2
7
- data.tar.gz: ad44885ecf958d9cabb332081dda45710c6baa8a96620b1998c7d86c56995051547f28d7b9b2f2776ab1df5335677d6dce904b56a1c56fd565583b16db7f9e7e
6
+ metadata.gz: 17b23528f435db0eee2157915f3540b4bce2e1cd23adc1247a019a18740588d15ca3d93ce78612f57d0213f54d3156aaa222f8b997f8c7ff4dc9c616dbd89ca9
7
+ data.tar.gz: 381bc8a3debabde57309e9ae19ba4a46bf1ed7e91a9975314a12bb8784e46ca44c1538c1c6970ae2b142b67b66a00e970f241f91b4c8130c87286fa497a9f8f6
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
+ # 0.3.4
2
+
3
+ * Added preliminary support for sliders to the v2 output.
4
+
1
5
  # 0.3.3
2
6
 
3
- Replace `options={}` with `**options` in the builders to prevent prepare for ruby 3.0
7
+ * Replace `options={}` with `**options` in the builders to prevent prepare for ruby 3.0
4
8
 
5
9
  # 0.3.2
6
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- quby-compiler (0.3.3)
4
+ quby-compiler (0.3.4)
5
5
  actionview (>= 5.0)
6
6
  activemodel (>= 5.0)
7
7
  activesupport (>= 5.0)
@@ -15,20 +15,20 @@ PATH
15
15
  GEM
16
16
  remote: https://rubygems.org/
17
17
  specs:
18
- actionview (6.0.3.5)
19
- activesupport (= 6.0.3.5)
18
+ actionview (6.0.4)
19
+ activesupport (= 6.0.4)
20
20
  builder (~> 3.1)
21
21
  erubi (~> 1.4)
22
22
  rails-dom-testing (~> 2.0)
23
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
24
  active_interaction (3.8.3)
25
25
  activemodel (>= 4, < 7)
26
- activemodel (6.0.3.5)
27
- activesupport (= 6.0.3.5)
28
- activerecord (6.0.3.5)
29
- activemodel (= 6.0.3.5)
30
- activesupport (= 6.0.3.5)
31
- activesupport (6.0.3.5)
26
+ activemodel (6.0.4)
27
+ activesupport (= 6.0.4)
28
+ activerecord (6.0.4)
29
+ activemodel (= 6.0.4)
30
+ activesupport (= 6.0.4)
31
+ activesupport (6.0.4)
32
32
  concurrent-ruby (~> 1.0, >= 1.0.2)
33
33
  i18n (>= 0.7, < 2)
34
34
  minitest (~> 5.1)
@@ -38,10 +38,10 @@ GEM
38
38
  rack
39
39
  builder (3.2.4)
40
40
  coderay (1.1.3)
41
- concurrent-ruby (1.1.8)
41
+ concurrent-ruby (1.1.9)
42
42
  crass (1.0.6)
43
43
  diff-lcs (1.4.4)
44
- dry-configurable (0.12.0)
44
+ dry-configurable (0.12.1)
45
45
  concurrent-ruby (~> 1.0)
46
46
  dry-core (~> 0.5, >= 0.5.0)
47
47
  dry-container (0.7.2)
@@ -57,27 +57,27 @@ 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.0)
60
+ dry-types (1.5.1)
61
61
  concurrent-ruby (~> 1.0)
62
62
  dry-container (~> 0.3)
63
63
  dry-core (~> 0.5, >= 0.5)
64
64
  dry-inflector (~> 0.1, >= 0.1.2)
65
65
  dry-logic (~> 1.0, >= 1.0.2)
66
66
  erubi (1.10.0)
67
- i18n (1.8.9)
67
+ i18n (1.8.10)
68
68
  concurrent-ruby (~> 1.0)
69
69
  ice_nine (0.11.2)
70
- loofah (2.9.0)
70
+ loofah (2.10.0)
71
71
  crass (~> 1.0.2)
72
72
  nokogiri (>= 1.5.9)
73
73
  method_source (1.0.0)
74
- mini_portile2 (2.5.0)
74
+ mini_portile2 (2.5.3)
75
75
  minitest (5.14.4)
76
76
  naught (1.1.0)
77
- nokogiri (1.11.1)
77
+ nokogiri (1.11.7)
78
78
  mini_portile2 (~> 2.5.0)
79
79
  racc (~> 1.4)
80
- nokogumbo (2.0.3)
80
+ nokogumbo (2.0.5)
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.0)
93
+ redcarpet (3.5.1)
94
94
  roqua-support (0.3.5)
95
95
  active_interaction (~> 3.0)
96
96
  activesupport (>= 5.1, < 6.1)
data/exe/quby-compile CHANGED
@@ -21,7 +21,7 @@ OptionParser.new do |opts|
21
21
  end
22
22
 
23
23
  opts.on("--seeds=INPUT") do |value|
24
- seeds_path = value
24
+ puts '--seeds is a deprecated option, questionnaire definitions should use seed_patches to conserve seed tweaks'
25
25
  end
26
26
  end.parse!
27
27
 
@@ -38,7 +38,7 @@ lookup_tables = Quby::Compiler::Entities::LookupTables.new(lookup_tables_path)
38
38
  paths.each do |path|
39
39
  puts "Compiling #{path}"
40
40
 
41
- key = File.basename(path, File.extname(path))
41
+ key = File.basename(File.dirname(path))
42
42
  sourcecode = File.read(path)
43
43
  last_update = File.mtime(path)
44
44
  seed_path = File.join(seeds_path, "#{key}.yml")
@@ -46,7 +46,6 @@ paths.each do |path|
46
46
  compiled = Quby::Compiler.compile(key, sourcecode, path: path, seeds: seeds, lookup_tables: lookup_tables, last_update: last_update)
47
47
 
48
48
  FileUtils.mkdir_p(File.join(output_path, key))
49
-
50
49
  compiled[:outputs].each do |type, output|
51
50
  next unless output
52
51
  File.open(File.join(output_path, key, output.filename), 'w') do |file|
@@ -5,6 +5,15 @@ module Quby
5
5
  module Entities
6
6
  module Questions
7
7
  class FloatQuestion < Question
8
+ def as_json(options = {})
9
+ super.merge(
10
+ minimum: minimum,
11
+ maximum: maximum,
12
+ step: 0.01, # fixed in v1.
13
+ # defaultPosition: default_position # Needs discussion, can be number or string "hidden"
14
+ )
15
+ end
16
+
8
17
  def size
9
18
  @size || 30
10
19
  end
@@ -5,6 +5,15 @@ module Quby
5
5
  module Entities
6
6
  module Questions
7
7
  class IntegerQuestion < Question
8
+ def as_json(options = {})
9
+ super.merge(
10
+ minimum: minimum,
11
+ maximum: maximum,
12
+ step: 1, # fixed in v1.
13
+ # defaultPosition: default_position # Needs discussion, can be number or string "hidden"
14
+ )
15
+ end
16
+
8
17
  def size
9
18
  @size || 30
10
19
  end
@@ -11,7 +11,7 @@ module Quby
11
11
  if block # defined in block for tests
12
12
  questionnaire = DSL.build(key, path: path, &block)
13
13
  else # sourcecode given as string
14
- tempfile = Tempfile.new(key)
14
+ tempfile = Tempfile.new([key, '.rb'])
15
15
  questionnaire = Entities::Questionnaire.new(key, last_update: last_update)
16
16
  Thread.current["quby-questionnaire-loading"] = Quby::Compiler::DSL::QuestionnaireBuilder.new(questionnaire, lookup_tables: lookup_tables)
17
17
 
@@ -25,7 +25,6 @@ module Quby
25
25
  validate_outcome_tables(questionnaire)
26
26
  validate_markdown_fields(questionnaire) if questionnaire.validate_html
27
27
  validate_raw_content_items(questionnaire) if questionnaire.validate_html
28
- validate_scores(questionnaire)
29
28
  # Some compilation errors are Exceptions (pure syntax errors) and some StandardErrors (NameErrors)
30
29
  rescue Exception => exception # rubocop:disable Lint/RescueException
31
30
  definition.errors.add(:sourcecode, {message: "Questionnaire error: #{definition.key}\n" \
@@ -81,6 +80,13 @@ module Quby
81
80
  fail "Score #{score.key} does not have a score schema" unless score_schema
82
81
  fail "Score label langer dan 100 tekens (geeft problemen oru accare)\n #{score_schema.label}" if score_schema.label&.length > 100
83
82
  end
83
+
84
+ export_keys = questionnaire.score_schemas.flat_map { |_key, score_schema|
85
+ score_schema.subscore_schemas.map(&:export_key)
86
+ }
87
+
88
+ duplicate_export_keys = export_keys.tally.select { |key, count| count > 1 }.keys
89
+ fail "Score export keys not unique, duplicates: #{duplicate_export_keys}" if duplicate_export_keys.present?
84
90
  end
85
91
 
86
92
  def validate_question_options(questionnaire, question)
@@ -241,8 +247,6 @@ scores_schema tables to the resulting seed."
241
247
 
242
248
  def validate_score_label_present(score)
243
249
  fail "Score #{score.key} label must be passed in as an option." unless score.label.present?
244
-
245
-
246
250
  end
247
251
 
248
252
  def validate_subquestion_absence_in_select(question)
@@ -1,5 +1,5 @@
1
1
  module Quby
2
2
  module Compiler
3
- VERSION = "0.3.3"
3
+ VERSION = "0.3.4"
4
4
  end
5
5
  end
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.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marten Veldthuis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-26 00:00:00.000000000 Z
11
+ date: 2021-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel