Skip to content
Snippets Groups Projects
Commit 09ceaa32 authored by Per 29 mei 2024 gedeeld account, daarvoor marten's avatar Per 29 mei 2024 gedeeld account, daarvoor marten
Browse files

Merge branch 'mv-json-updates' into 'main'

Stop generating last_update, and generate pretty-printed JSONs

See merge request !23
parents 3159dc6c eee3a55d
No related branches found
No related tags found
1 merge request!23Stop generating last_update, and generate pretty-printed JSONs
Pipeline #97337 passed
......@@ -35,8 +35,7 @@ paths.each do |path|
key = File.basename(File.dirname(path))
sourcecode = File.read(path)
last_update = File.mtime(path)
compiled = Quby::Compiler.compile(key, sourcecode, path: path, lookup_tables: lookup_tables, last_update: last_update)
compiled = Quby::Compiler.compile(key, sourcecode, path: path, lookup_tables: lookup_tables)
FileUtils.mkdir_p(File.join(output_path, key))
compiled[:outputs].each do |type, output|
......
......@@ -29,12 +29,11 @@ require 'quby/compiler/outputs'
module Quby
module Compiler
def self.compile(key, sourcecode, path: nil, lookup_tables:, last_update: nil, &block)
def self.compile(key, sourcecode, path: nil, lookup_tables:, &block)
Quby::Compiler::Instance.new(lookup_tables: lookup_tables).compile(
key: key,
sourcecode: sourcecode,
path: path,
last_update: last_update,
&block
)
end
......
......@@ -9,15 +9,15 @@ module Quby
module Compiler
module DSL
def self.build_from_definition(definition)
Entities::Questionnaire.new(definition.key, last_update: definition.timestamp).tap do |questionnaire|
Entities::Questionnaire.new(definition.key).tap do |questionnaire|
builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: definition.lookup_tables)
builder.instance_eval(definition.sourcecode, definition.path) if definition.sourcecode
questionnaire.callback_after_dsl_enhance_on_questions
end
end
def self.build(key, sourcecode = nil, path: nil, timestamp: nil, lookup_tables: {}, &block)
Entities::Questionnaire.new(key, last_update: timestamp).tap do |questionnaire|
def self.build(key, sourcecode = nil, path: nil, lookup_tables: {}, &block)
Entities::Questionnaire.new(key).tap do |questionnaire|
builder = QuestionnaireBuilder.new(questionnaire, lookup_tables: lookup_tables)
builder.instance_eval(sourcecode, path || key) if sourcecode
builder.instance_eval(&block) if block
......
......@@ -29,10 +29,9 @@ module Quby
RESPONDENT_TYPES = %i( profess patient parent second_parent teacher caregiver )
def initialize(key, last_update: Time.now)
def initialize(key)
@key = key
@sbg_domains = []
@last_update = Time.at(last_update.to_i)
@score_calculations = {}.with_indifferent_access
@charts = Charting::Charts.new
@fields = Fields.new(self)
......@@ -92,7 +91,6 @@ module Quby
attr_accessor :last_author
attr_accessor :allow_hotkeys # allow hotkeys for :all views, just :bulk views (default), or :none for never
attr_accessor :last_update
attr_accessor :charts
......
......@@ -7,12 +7,12 @@ module Quby
@lookup_tables = lookup_tables
end
def compile(key:, sourcecode:, path: nil, last_update: nil, &block)
def compile(key:, sourcecode:, path: nil, &block)
if block # defined in block for tests
questionnaire = DSL.build(key, path: path, &block)
else # sourcecode given as string
tempfile = Tempfile.new([key, '.rb'])
questionnaire = Entities::Questionnaire.new(key, last_update: last_update)
questionnaire = Entities::Questionnaire.new(key)
Thread.current["quby-questionnaire-loading"] = Quby::Compiler::DSL::QuestionnaireBuilder.new(questionnaire, lookup_tables: lookup_tables)
tempfile.puts "Thread.current['quby-questionnaire-loading'].instance_eval do"
......@@ -36,7 +36,7 @@ module Quby
roqua: Output.new(
key: :roqua,
filename: "roqua.json",
content: Outputs::RoquaSerializer.new(questionnaire).to_json,
content: JSON.pretty_generate(Outputs::RoquaSerializer.new(questionnaire).as_json)
),
seeds: Output.new(
key: :seeds,
......@@ -46,7 +46,7 @@ module Quby
quby_frontend_v1: Output.new(
key: :quby_frontend_v1,
filename: "quby-frontend-v1.json",
content: Outputs::QubyFrontendV1Serializer.new(questionnaire).to_json,
content: JSON.pretty_generate(Outputs::QubyFrontendV1Serializer.new(questionnaire).as_json),
),
quby_frontend_v2: Output.new(
key: :quby_frontend_v2,
......
......@@ -322,7 +322,6 @@ module Quby
licensor: questionnaire.licensor,
language: questionnaire.language,
renderer_version: questionnaire.renderer_version,
last_update: questionnaire.last_update,
last_author: questionnaire.last_author,
extra_css: questionnaire.extra_css,
allow_switch_to_bulk: questionnaire.allow_switch_to_bulk,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment