summaryrefslogtreecommitdiff
path: root/logic/cartridge/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'logic/cartridge/parser.rb')
-rw-r--r--logic/cartridge/parser.rb20
1 files changed, 13 insertions, 7 deletions
diff --git a/logic/cartridge/parser.rb b/logic/cartridge/parser.rb
index f82b968..50b3dc5 100644
--- a/logic/cartridge/parser.rb
+++ b/logic/cartridge/parser.rb
@@ -44,9 +44,9 @@ module NanoBot
parsed.delete(:tools)
unless parsed.empty?
- yaml_source << YAML.dump(Logic::Helpers::Hash.stringify_keys(
- parsed
- )).gsub(/^---/, '') # TODO: Is this safe enough?
+ yaml_source << YAML.dump(
+ Logic::Helpers::Hash.stringify_keys(parsed)
+ ).gsub(/^---/, '') # TODO: Is this safe enough?
end
else
yaml_source << block[:source]
@@ -60,12 +60,18 @@ module NanoBot
end
unless tools.empty?
- yaml_source << YAML.dump(Logic::Helpers::Hash.stringify_keys(
- { tools: }
- )).gsub(/^---/, '') # TODO: Is this safe enough?
+ yaml_source << YAML.dump(
+ Logic::Helpers::Hash.stringify_keys({ tools: })
+ ).gsub(/^---/, '') # TODO: Is this safe enough?
end
- yaml(yaml_source.join("\n"))
+ cartridge = {}
+
+ yaml_source.each do |source|
+ cartridge = Logic::Helpers::Hash.deep_merge(cartridge, yaml(source))
+ end
+
+ cartridge
end
def self.yaml(raw)