quby-compiler 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/quby/compiler/dsl/panel_builder.rb +1 -2
- data/lib/quby/compiler/dsl/questionnaire_builder.rb +1 -1
- data/lib/quby/compiler/dsl/questions/base.rb +0 -3
- data/lib/quby/compiler/entities/charting/chart.rb +2 -2
- data/lib/quby/compiler/entities/charting/line_chart.rb +1 -1
- data/lib/quby/compiler/entities/item.rb +1 -1
- data/lib/quby/compiler/entities/panel.rb +0 -2
- data/lib/quby/compiler/entities/question.rb +7 -9
- data/lib/quby/compiler/entities/question_option.rb +2 -2
- data/lib/quby/compiler/entities/questionnaire.rb +4 -4
- data/lib/quby/compiler/entities/text.rb +1 -2
- data/lib/quby/{markdown_parser.rb → compiler/markdown_parser.rb} +1 -1
- data/lib/quby/compiler/outputs/roqua_serializer.rb +1 -1
- data/lib/quby/compiler/services/definition_validator.rb +4 -4
- data/lib/quby/compiler/services/quby_proxy.rb +2 -2
- data/lib/quby/compiler/services/seed_diff.rb +1 -1
- data/lib/quby/{type_validator.rb → compiler/type_validator.rb} +1 -1
- data/lib/quby/compiler/version.rb +1 -1
- data/lib/quby/compiler.rb +2 -4
- metadata +5 -21
- data/lib/quby/array_attribute_valid_validator.rb +0 -15
- data/lib/quby/attribute_valid_validator.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ea3512ba476d435c7ccee8f406eca9ae089814fc3e7bbb53eaca08cf292b692
|
4
|
+
data.tar.gz: c8f548fb3d164616917cd8b9c7bb346f904ecf0291daaa3c370fa3f47e90d1f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3090b95294d1ecafd72019b4523e98a3cb931a71cbbc59794d7cea764fd4acfc6d1107cd1623118678f627605b244df8f3a6c91557804045cc9cc2458585219b
|
7
|
+
data.tar.gz: 8efc820b5cb48c37c1adb977d482178d8d92002f451d2c66e03d7f5a15b478b5fd261b4c3b2995e4ed6316d4df382b39ab718e2af969c1321cd45247c1dd56a7
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,6 @@ module Quby
|
|
6
6
|
module Compiler
|
7
7
|
module DSL
|
8
8
|
class PanelBuilder < Base
|
9
|
-
attr_reader :title
|
10
9
|
attr_reader :questionnaire
|
11
10
|
|
12
11
|
def initialize(title, default_question_options: {}, **options)
|
@@ -37,7 +36,7 @@ module Quby
|
|
37
36
|
end
|
38
37
|
|
39
38
|
def video(*urls, **options)
|
40
|
-
video_html = video_tag
|
39
|
+
video_html = video_tag(*urls, **options)
|
41
40
|
@panel.items << Entities::Text.new('', raw_content: video_html)
|
42
41
|
end
|
43
42
|
|
@@ -49,10 +49,10 @@ module Quby
|
|
49
49
|
attr_accessor :y_range_categories
|
50
50
|
|
51
51
|
# @return [Symbol]
|
52
|
-
|
52
|
+
attr_reader :chart_type
|
53
53
|
|
54
54
|
# @return [Range]
|
55
|
-
|
55
|
+
attr_writer :y_range
|
56
56
|
|
57
57
|
# @return [Float]
|
58
58
|
attr_accessor :tick_interval
|
@@ -12,7 +12,7 @@ module Quby
|
|
12
12
|
|
13
13
|
# Standard attributes
|
14
14
|
attr_accessor :key
|
15
|
-
validates :key, presence: true, 'quby/type': {is_a: Symbol}
|
15
|
+
validates :key, presence: true, 'quby/compiler/type': {is_a: Symbol}
|
16
16
|
attr_accessor :sbg_key
|
17
17
|
attr_accessor :questionnaire
|
18
18
|
attr_accessor :title
|
@@ -50,10 +50,6 @@ module Quby
|
|
50
50
|
attr_accessor :allow_blank_titles
|
51
51
|
validates :allow_blank_titles, inclusion: {in: [true, false, nil], message: "must be boolean"}
|
52
52
|
|
53
|
-
# Minimum and maximum values for float and integer types
|
54
|
-
attr_accessor :minimum
|
55
|
-
attr_accessor :maximum
|
56
|
-
|
57
53
|
# Whether the browser should autocomplete this question (off by default)
|
58
54
|
attr_accessor :autocomplete
|
59
55
|
|
@@ -119,7 +115,7 @@ module Quby
|
|
119
115
|
attr_accessor :table
|
120
116
|
|
121
117
|
# In case of being displayed inside a table, amount of columns/rows to span
|
122
|
-
|
118
|
+
attr_writer :col_span
|
123
119
|
attr_accessor :row_span
|
124
120
|
|
125
121
|
attr_accessor :default_invisible
|
@@ -127,7 +123,7 @@ module Quby
|
|
127
123
|
|
128
124
|
# Slider only: where to place the sliding thing by default
|
129
125
|
# Can have value :hidden for a hidden handle.
|
130
|
-
|
126
|
+
attr_writer :default_position
|
131
127
|
|
132
128
|
##########################################################
|
133
129
|
|
@@ -237,8 +233,8 @@ module Quby
|
|
237
233
|
# rubocop:disable SymbolName
|
238
234
|
super.merge(
|
239
235
|
key: key,
|
240
|
-
title: Quby::MarkdownParser.new(title).to_html,
|
241
|
-
description: Quby::MarkdownParser.new(description).to_html,
|
236
|
+
title: Quby::Compiler::MarkdownParser.new(title).to_html,
|
237
|
+
description: Quby::Compiler::MarkdownParser.new(description).to_html,
|
242
238
|
type: type,
|
243
239
|
size: size.presence && Integer(size), # 2022-11: 4k string and 7k integer
|
244
240
|
hidden: hidden?,
|
@@ -293,10 +289,12 @@ module Quby
|
|
293
289
|
@default_position || ((minimum + maximum) / half if minimum && maximum)
|
294
290
|
end
|
295
291
|
|
292
|
+
# Minimum value for float and integer types, set by validation
|
296
293
|
def minimum
|
297
294
|
validations.find { |i| i[:type] == :minimum }.try(:fetch, :value)
|
298
295
|
end
|
299
296
|
|
297
|
+
# Maximum value for float and integer types, set by validation
|
300
298
|
def maximum
|
301
299
|
validations.find { |i| i[:type] == :maximum }.try(:fetch, :value)
|
302
300
|
end
|
@@ -68,7 +68,7 @@ module Quby
|
|
68
68
|
{
|
69
69
|
type: 'html',
|
70
70
|
key: SecureRandom.uuid,
|
71
|
-
html: Quby::MarkdownParser.new(description).to_html
|
71
|
+
html: Quby::Compiler::MarkdownParser.new(description).to_html
|
72
72
|
}
|
73
73
|
end
|
74
74
|
|
@@ -79,7 +79,7 @@ module Quby
|
|
79
79
|
value: value,
|
80
80
|
description: question.type == :select \
|
81
81
|
? description
|
82
|
-
: Quby::MarkdownParser.new(description).to_html,
|
82
|
+
: Quby::Compiler::MarkdownParser.new(description).to_html,
|
83
83
|
questions: questions,
|
84
84
|
hidesQuestions: hides_questions,
|
85
85
|
showsQuestions: shows_questions,
|
@@ -61,7 +61,7 @@ module Quby
|
|
61
61
|
attr_accessor :description
|
62
62
|
attr_accessor :outcome_description
|
63
63
|
attr_accessor :short_description
|
64
|
-
|
64
|
+
attr_writer :roqua_keys
|
65
65
|
attr_accessor :sbg_key # not required to be unique
|
66
66
|
attr_accessor :sbg_domains
|
67
67
|
attr_accessor :versions
|
@@ -71,11 +71,11 @@ module Quby
|
|
71
71
|
attr_accessor :score_calculations
|
72
72
|
attr_accessor :default_answer_value
|
73
73
|
attr_accessor :renderer_version
|
74
|
-
|
74
|
+
attr_writer :leave_page_alert
|
75
75
|
attr_reader :fields
|
76
76
|
attr_accessor :extra_css
|
77
77
|
attr_accessor :allow_switch_to_bulk
|
78
|
-
|
78
|
+
attr_reader :license
|
79
79
|
attr_accessor :licensor
|
80
80
|
attr_accessor :language
|
81
81
|
attr_accessor :respondent_types
|
@@ -91,7 +91,7 @@ module Quby
|
|
91
91
|
attr_accessor :validate_html
|
92
92
|
|
93
93
|
attr_accessor :last_author
|
94
|
-
|
94
|
+
attr_writer :allow_hotkeys # allow hotkeys for :all views, just :bulk views (default), or :none for never
|
95
95
|
|
96
96
|
attr_accessor :charts
|
97
97
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'quby/compiler/entities/item'
|
4
|
-
require 'quby/markdown_parser'
|
5
4
|
|
6
5
|
module Quby
|
7
6
|
module Compiler
|
@@ -36,7 +35,7 @@ module Quby
|
|
36
35
|
end
|
37
36
|
|
38
37
|
def text
|
39
|
-
@text ||= Quby::MarkdownParser.new(str).to_html
|
38
|
+
@text ||= Quby::Compiler::MarkdownParser.new(str).to_html
|
40
39
|
end
|
41
40
|
|
42
41
|
def key
|
@@ -263,7 +263,7 @@ module Quby
|
|
263
263
|
end
|
264
264
|
|
265
265
|
def parse_markdown_and_strip_tags(markdown)
|
266
|
-
strip_tags_without_html_encode(Quby::MarkdownParser.new(markdown).to_html)
|
266
|
+
strip_tags_without_html_encode(Quby::Compiler::MarkdownParser.new(markdown).to_html)
|
267
267
|
end
|
268
268
|
|
269
269
|
def strip_tags_without_html_encode(html)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require '
|
2
|
+
require 'nokogiri'
|
3
3
|
require 'active_model'
|
4
4
|
require 'quby/compiler/entities/questionnaire'
|
5
5
|
|
@@ -27,9 +27,9 @@ module Quby
|
|
27
27
|
validate_raw_content_items(questionnaire) if questionnaire.validate_html
|
28
28
|
# Some compilation errors are Exceptions (pure syntax errors) and some StandardErrors (NameErrors)
|
29
29
|
rescue Exception => exception # rubocop:disable Lint/RescueException
|
30
|
-
definition.errors.add(:sourcecode,
|
31
|
-
|
32
|
-
|
30
|
+
definition.errors.add(:sourcecode, message: "Questionnaire error: #{definition.key}\n" \
|
31
|
+
"#{exception.message}",
|
32
|
+
backtrace: exception.backtrace[0..20])
|
33
33
|
end
|
34
34
|
|
35
35
|
def validate_metadata(questionnaire)
|
@@ -294,12 +294,12 @@ module Quby
|
|
294
294
|
end
|
295
295
|
|
296
296
|
def strip_p_tag(text)
|
297
|
-
text.gsub
|
297
|
+
text.gsub(/^<p>(.*)<\/p>\n?$/, '\1')
|
298
298
|
end
|
299
299
|
|
300
300
|
def strip_question_number_slashes(quests)
|
301
301
|
quests.transform_values! do |value|
|
302
|
-
value&.gsub
|
302
|
+
value&.gsub(/^(\s*\d+)\\/, '\1')
|
303
303
|
end
|
304
304
|
end
|
305
305
|
|
data/lib/quby/compiler.rb
CHANGED
@@ -15,11 +15,9 @@ module Quby
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
require 'quby/
|
19
|
-
require 'quby/attribute_valid_validator'
|
20
|
-
require 'quby/markdown_parser'
|
18
|
+
require 'quby/compiler/markdown_parser'
|
21
19
|
require 'quby/range_categories'
|
22
|
-
require 'quby/type_validator'
|
20
|
+
require 'quby/compiler/type_validator'
|
23
21
|
|
24
22
|
require 'quby/compiler/instance'
|
25
23
|
require 'quby/compiler/entities'
|
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.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.8'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: nokogumbo
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: redcarpet
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,8 +142,6 @@ files:
|
|
156
142
|
- config/locales/rails-i18n/en.yml
|
157
143
|
- config/locales/rails-i18n/nl.yml
|
158
144
|
- exe/quby-compile
|
159
|
-
- lib/quby/array_attribute_valid_validator.rb
|
160
|
-
- lib/quby/attribute_valid_validator.rb
|
161
145
|
- lib/quby/compiler.rb
|
162
146
|
- lib/quby/compiler/dsl.rb
|
163
147
|
- lib/quby/compiler/dsl/base.rb
|
@@ -224,6 +208,7 @@ files:
|
|
224
208
|
- lib/quby/compiler/entities/version.rb
|
225
209
|
- lib/quby/compiler/entities/visibility_rule.rb
|
226
210
|
- lib/quby/compiler/instance.rb
|
211
|
+
- lib/quby/compiler/markdown_parser.rb
|
227
212
|
- lib/quby/compiler/output.rb
|
228
213
|
- lib/quby/compiler/outputs.rb
|
229
214
|
- lib/quby/compiler/outputs/quby_frontend_v1_serializer.rb
|
@@ -234,12 +219,11 @@ files:
|
|
234
219
|
- lib/quby/compiler/services/quby_proxy.rb
|
235
220
|
- lib/quby/compiler/services/seed_diff.rb
|
236
221
|
- lib/quby/compiler/services/text_transformation.rb
|
222
|
+
- lib/quby/compiler/type_validator.rb
|
237
223
|
- lib/quby/compiler/version.rb
|
238
|
-
- lib/quby/markdown_parser.rb
|
239
224
|
- lib/quby/range_categories.rb
|
240
225
|
- lib/quby/settings.rb
|
241
226
|
- lib/quby/text_transformation.rb
|
242
|
-
- lib/quby/type_validator.rb
|
243
227
|
homepage: https://gitlab.roqua.nl/roqua/quby-compiler
|
244
228
|
licenses:
|
245
229
|
- MIT
|
@@ -260,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
244
|
- !ruby/object:Gem::Version
|
261
245
|
version: '0'
|
262
246
|
requirements: []
|
263
|
-
rubygems_version: 3.
|
247
|
+
rubygems_version: 3.4.6
|
264
248
|
signing_key:
|
265
249
|
specification_version: 4
|
266
250
|
summary: Quby::Compiler compiles a DSL for questionnaires to JSON
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
module Quby
|
4
|
-
class ArrayAttributeValidValidator < ActiveModel::EachValidator
|
5
|
-
def validate_each(record, attribute, value)
|
6
|
-
value&.each&.with_index do |element, index|
|
7
|
-
if !element.respond_to?(:valid?)
|
8
|
-
record.errors.add(attribute, "element ##{index} does not respond_to valid?")
|
9
|
-
elsif !element.valid?
|
10
|
-
record.errors.add(attribute, "element ##{index} #{element.errors.full_messages.join(', ')}")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
module Quby
|
4
|
-
class AttributeValidValidator < ActiveModel::EachValidator
|
5
|
-
def validate_each(record, attribute, value)
|
6
|
-
return if value.blank?
|
7
|
-
if value.respond_to?(:valid?)
|
8
|
-
record.errors.add(attribute, value.errors.full_messages.join(', ')) unless value.valid?
|
9
|
-
else
|
10
|
-
record.errors.add(attribute, 'does not respond_to valid?')
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|