summaryrefslogtreecommitdiff
path: root/logic/cartridge/fetch.rb
diff options
context:
space:
mode:
Diffstat (limited to 'logic/cartridge/fetch.rb')
-rw-r--r--logic/cartridge/fetch.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/logic/cartridge/fetch.rb b/logic/cartridge/fetch.rb
new file mode 100644
index 0000000..2335358
--- /dev/null
+++ b/logic/cartridge/fetch.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require_relative 'default'
+require_relative '../helpers/hash'
+
+module NanoBot
+ module Logic
+ module Cartridge
+ module Fetch
+ def self.cascate(cartridge, paths)
+ results = paths.map { |path| Helpers::Hash.fetch(cartridge, path) }
+ result = results.find { |candidate| !candidate.nil? }
+ return result unless result.nil?
+
+ results = paths.map { |path| Helpers::Hash.fetch(Default.instance.values, path) }
+ result = results.find { |candidate| !candidate.nil? }
+ return result unless result.nil?
+
+ nil
+ end
+ end
+ end
+ end
+end