lib/quby/compiler/services/definition_validator.rb in quby-compiler-0.3.6 vs lib/quby/compiler/services/definition_validator.rb in quby-compiler-0.3.7

- old
+ new

@@ -13,12 +13,12 @@ attr_reader :definition attr_reader :questionnaire def validate(definition) questionnaire = DSL.build_from_definition(definition) + validate_metadata(questionnaire) validate_fields(questionnaire) - validate_title(questionnaire) validate_questions(questionnaire) validate_scores(questionnaire) validate_table_edgecases(questionnaire) validate_flags(questionnaire) validate_respondent_types(questionnaire) @@ -30,22 +30,30 @@ definition.errors.add(:sourcecode, {message: "Questionnaire error: #{definition.key}\n" \ "#{exception.message}", backtrace: exception.backtrace[0..20]}) end + def validate_metadata(questionnaire) + if questionnaire.title.blank? + fail "Questionnaire title is missing." + end + + if questionnaire.short_description && questionnaire.short_description.size > 255 + fail "Questionnaire short_description is too long." + end + + if questionnaire.description && questionnaire.description.size > 255 + fail "Questionnaire description is too long." + end + end + def validate_fields(questionnaire) questionnaire.fields.input_keys .find { |k| !k.is_a?(Symbol) } &.tap { |k| fail "Input key #{k} is not a symbol" } questionnaire.fields.answer_keys .find { |k| !k.is_a?(Symbol) } &.tap { |k| fail "Answer key #{k} is not a symbol" } - end - - def validate_title(questionnaire) - if questionnaire.title.blank? - fail "Questionnaire title is missing." - end end def validate_questions(questionnaire) questionnaire.answer_keys.each do |key| validate_key_format(key)