1818# -----------------------------------------------------------------------
1919
2020module MoonScript
21- class MoonJson
22- class Parser
23- def parse_test_directories: Array (String )
24- @parser .location.try do |location |
25- directories = %w[]
26-
27- @parser .read_array do
28- directories << parse_test_directory
29- end
30-
31- error! :test_directories_empty do
32- end
33-
34- block do
35- end
36- end
21+ class MoonJson
22+ class Parser
23+ def parse_test_directories : Array (String )
24+ @parser .location.try do |location |
25+ directories = %w[]
26+
27+ @parser .read_array do
28+ directories << parse_test_directory
29+ end
30+
31+ error! :test_directories_empty do
32+ block do
33+ text " The "
34+ bold " test-directories "
35+ text " field lists all directories relative to moon.json "
36+ text " which contain the test files. "
3737 end
38+
39+ block do
40+ text " The"
41+ bold " test-directories"
42+ text " array should not be empty"
43+ end
44+
45+ snippet snippet_data(location)
46+ end if directories.empty?
47+
48+ directories
49+ end
50+ rescue JSON ::ParseException
51+ error! :test_directories_invalid do
52+ block do
53+ text " The"
54+ bold " test-directories"
55+ text " field lists all directories relative to the moon.json"
56+ text " which contain the test files."
57+ end
58+
59+ block do
60+ text " The"
61+ bold " test-directories"
62+ text " field should be an array"
63+ end
64+
65+ snippet snippet_data
66+ end
67+ end
68+
69+ def parse_test_directory : String
70+ location =
71+ @parser .location
72+
73+ directory =
74+ @parser .read_string
75+
76+ path =
77+ Path [root, directory]
78+
79+ error! :test_directory_not_exists do
80+ block do
81+ text " The test directory"
82+ bold directory
83+ text " does not exists:"
84+ end
85+
86+ snippet snippet_data(location)
87+ end unless Dir .exists?(path)
88+
89+ directory
90+ rescue JSON ::ParseException
91+ error! :test_directory_invalid do
92+ block do
93+ text " All entries in the"
94+ bold " test-directories"
95+ text " array should be string:"
96+ end
97+
98+ snippet snippet_data
3899 end
100+ end
39101 end
40- end
102+ end
103+ end
0 commit comments