Browse Source

dir loop

pull/76/head
magicmilo 3 years ago
parent
commit
78547d4a2c
  1. 91
      app/helpers/json_schema_validation.rb

91
app/helpers/json_schema_validation.rb

@ -2,35 +2,45 @@ require "json-schema"
require "json" require "json"
# "form_type": "lettings", # "form_type": "lettings",
# "start_year": 2021, #start_year": 2021,
# "end_year": 2022, #end_year": 2022,
# "sections": { #sections": {
# "about_this_log": { # about_this_log": {
# "label": "About this log", # label": "About this log",
# "subsections": { # subsections": {
# "about_this_log": { # about_this_log": {
# "label": "About this log", # label": "About this log",
# "pages": { # pages": {
# "tenant_code": { # "tenant_code": {
# "header": "", # header": "",
# "description": "", # description": "",
# "questions": { # questions": {
# "tenant_code": { # tenant_code": {
# "check_answer_label": "Tenant code", # check_answer_label": "Tenant code",
# "header": "What is the tenant code?", # header": "What is the tenant code?",
# "hint_text": "", # hint_text": "",
# "type": "text" # type": "text"
# } # }
# } # }
# }, # }
def get_all_form_paths(directories)
form_paths = []
directories.each do |directory|
Dir.glob("#{directory}/*.json").each do |form_path|
form_paths.push(form_path)
end
end
form_paths
end
begin begin
path = "config/forms/schema/generic.json" # path = "config/forms/schema/generic.json"
# path = "config/forms/schema/2021_2022.json" path = "config/forms/schema/2021_2022.json"
file = File.open(path) file = File.open(path)
schema = JSON.parse(file.read) schema = JSON.parse(file.read)
metaschema = JSON::Validator.validator_for_name("draft4").metaschema metaschema = JSON::Validator.validator_for_name("draft4").metaschema
if JSON::Validator.validate(metaschema, schema) if JSON::Validator.validate(metaschema, schema)
@ -43,28 +53,21 @@ begin
path = "spec/fixtures/forms/test_validator.json" path = "spec/fixtures/forms/test_validator.json"
# path = "config/forms/2021_2022.json" # path = "config/forms/2021_2022.json"
file = File.open(path) directories = ["config/forms", "spec/fixtures/forms"]
data = JSON.parse(file.read)
puts JSON::Validator.validate(schema, data) get_all_form_paths(directories).each do |path|
puts path
file = File.open(path)
data = JSON.parse(file.read)
puts JSON::Validator.fully_validate(schema, data, :strict => true) puts JSON::Validator.validate(schema, data)
begin puts JSON::Validator.fully_validate(schema, data, :strict => true)
JSON::Validator.validate!(schema, data)
rescue JSON::Schema::ValidationError => e
e.message
end
# def get_all_form_paths begin
# form_paths = [] JSON::Validator.validate!(schema, data)
# directories = ["config/forms", "spec/fixtures/forms"] rescue JSON::Schema::ValidationError => e
# directories.each do |directory| e.message
# Dir.glob("#{directory}/*.json").each do |form_path| end
# form_path = form_path.sub(".json", "").split("/")[-1] end
# form_paths.push(form_path)
# end
# end
# form_paths
# end
end end

Loading…
Cancel
Save