Sha256: 0b3996e2d0cfac30384c000bb7606cbc88fd6175515c3c113ea91a47ca9bcbf8
Contents?: true
Size: 1.01 KB
Versions: 9
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Aws module Endpoints # @api private class TreeRule def initialize(type: 'tree', conditions:, rules:, documentation: nil) @type = type @conditions = Condition.from_json(conditions) @rules = RuleSet.rules_from_json(rules) @documentation = documentation end attr_reader :type attr_reader :conditions attr_reader :error attr_reader :documentation def match(parameters, assigned = {}) assigns = assigned.dup matched = conditions.all? do |condition| output = condition.match?(parameters, assigns) assigns = assigns.merge(condition.assigned) if condition.assign output end resolve_rules(parameters, assigns) if matched end private def resolve_rules(parameters, assigns) @rules.each do |rule| output = rule.match(parameters, assigns) return output if output end nil end end end end
Version data entries
9 entries across 9 versions & 1 rubygems