diff options
Diffstat (limited to 'logic/cartridge/fetch.rb')
-rw-r--r-- | logic/cartridge/fetch.rb | 24 |
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 |