Skip to content

Commit 6bf9ee7

Browse files
committed
moon_json: root
1 parent 854e025 commit 6bf9ee7

File tree

1 file changed

+56
-37
lines changed

1 file changed

+56
-37
lines changed

src/moon_json/root.cr

Lines changed: 56 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,45 +18,64 @@
1818
# -----------------------------------------------------------------------
1919

2020
module MoonScript
21-
class MoonJson
22-
class Parser
23-
def parse : MoonJson
24-
dependencies = [] of Installer::Depdency
25-
formatter = Formatter::Config.new
26-
source_directories = %w[]
27-
test_directories = %w[]
28-
name = ""
21+
class MoonJson
22+
class Parser
23+
def parse : MoonJson
24+
dependencies = [] of Installer::Dependency
25+
formatter = Formatter::Config.new
26+
source_directories = %w[]
27+
test_directories = %w[]
28+
name = ""
2929

30-
application = Application.new(meta: {} of String => String, orientation: "", theme_color: "", css_prefix: "", display: "", title: "", name: "", head: "", icon: "")
30+
application =
31+
Application.new(
32+
meta: {} of String => String,
33+
orientation: "",
34+
theme_color: "",
35+
css_prefix: "",
36+
display: "",
37+
title: "",
38+
name: "",
39+
head: "",
40+
icon: "")
3141

32-
@parser.read_object do |key|
33-
case key
34-
when "source-directories"
35-
source_directories = parse_source_directories
36-
when "test-directories"
37-
test_directories = parse_test_directories
38-
when "dependencies"
39-
dependencies = parse_dependencies
40-
when "application"
41-
application = parse_application
42-
when "formatter"
43-
formatter = parse_formatter
44-
when "moon-version"
45-
parse_moon_version
46-
when "name"
47-
name = parse_name
48-
else
49-
error! :root_invalid_key do
50-
snippet "The root object has an invalid key"
51-
end
52-
end
53-
end
54-
55-
rescue JSON::ParseException
56-
error! :root_invalid do
57-
snippet "The root item should be an object"
58-
end
42+
@parser.read_object do |key|
43+
case key
44+
when "source-directories"
45+
source_directories = parse_source_directories
46+
when "test-directories"
47+
test_directories = parse_test_directories
48+
when "dependencies"
49+
dependencies = parse_dependencies
50+
when "application"
51+
application = parse_application
52+
when "formatter"
53+
formatter = parse_formatter
54+
when "moon-version"
55+
parse_moon_version
56+
when "name"
57+
name = parse_name
58+
else
59+
error! :root_invalid_key do
60+
snippet "The root object has an invalid key:", key
61+
snippet "It is here:", snippet_data
5962
end
63+
end
64+
end
65+
66+
MoonJson.new(
67+
source_directories: source_directories,
68+
test_directories: test_directories,
69+
dependencies: dependencies,
70+
application: application,
71+
formatter: formatter,
72+
path: @path,
73+
name: name)
74+
rescue JSON::ParseException
75+
error! :root_invalid do
76+
snippet "The root item should be an object, but it's not:", snippet_data
6077
end
78+
end
6179
end
62-
end
80+
end
81+
end

0 commit comments

Comments
 (0)