Sha256: de834994474a3b47b32fd3208713411b568129bf4097e78c397033406ff6179f

Contents?: true

Size: 989 Bytes

Versions: 19

Compression:

Stored size: 989 Bytes

Contents

# frozen_string_literal: true

require_relative '../helpers/hash'
require_relative 'default'

module NanoBot
  module Logic
    module Cartridge
      module Affixes
        def self.get(cartridge, interface, direction, kind)
          affix = [
            {
              exists: (Helpers::Hash.fetch(cartridge, [:interfaces, direction]) || {}).key?(kind),
              value: Helpers::Hash.fetch(cartridge, [:interfaces, direction, kind])
            },
            {
              exists: (Helpers::Hash.fetch(cartridge, [:interfaces, interface, direction]) || {}).key?(kind),
              value: Helpers::Hash.fetch(cartridge, [:interfaces, interface, direction, kind])
            }
          ].filter { |candidate| candidate[:exists] }.last

          if affix.nil?
            return Helpers::Hash.fetch(
              Default.instance.values, [:interfaces, interface, direction, kind]
            )
          end

          affix[:value]
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
nano-bots-3.4.0 logic/cartridge/affixes.rb
nano-bots-3.3.0 logic/cartridge/affixes.rb
nano-bots-3.2.0 logic/cartridge/affixes.rb
nano-bots-3.0.1 logic/cartridge/affixes.rb
nano-bots-3.0.0 logic/cartridge/affixes.rb
nano-bots-2.5.1 logic/cartridge/affixes.rb
nano-bots-2.5.0 logic/cartridge/affixes.rb
nano-bots-2.4.1 logic/cartridge/affixes.rb
nano-bots-2.4.0 logic/cartridge/affixes.rb
nano-bots-2.3.0 logic/cartridge/affixes.rb
nano-bots-2.2.0 logic/cartridge/affixes.rb
nano-bots-2.1.0 logic/cartridge/affixes.rb
nano-bots-2.0.0 logic/cartridge/affixes.rb
nano-bots-1.2.0 logic/cartridge/affixes.rb
nano-bots-1.1.2 logic/cartridge/affixes.rb
nano-bots-1.1.1 logic/cartridge/affixes.rb
nano-bots-1.1.0 logic/cartridge/affixes.rb
nano-bots-1.0.1 logic/cartridge/affixes.rb
nano-bots-1.0.0 logic/cartridge/affixes.rb