class Aws::Templates::Utils::Default::Definition::Pair

Definition composition

Pair of definitions which act like one.

Attributes

a[R]
b[R]

Public Class Methods

[](a, b) click to toggle source
# File lib/aws/templates/utils/default.rb, line 156
def [](a, b)
  return b if b.override? || a.override? || a == Definition.empty
  return a if b.nil? || b == Definition.empty
  _unite(a, b)
end
new(a, b) click to toggle source
# File lib/aws/templates/utils/default.rb, line 178
def initialize(a, b)
  @a = a.to_definition
  @b = b.to_definition
end

Private Class Methods

_unite(a, b) click to toggle source
# File lib/aws/templates/utils/default.rb, line 164
def _unite(a, b)
  if a.is_a?(self)
    new(a.a, a.b.merge(b))
  elsif b.is_a?(self)
    new(a.merge(b.a), b.b)
  else
    new(a, b)
  end
end

Public Instance Methods

for(instance) click to toggle source
# File lib/aws/templates/utils/default.rb, line 183
def for(instance)
  eval_b = b.for(instance)
  return eval_b if eval_b.override? && !eval_b.nil?
  eval_a = a.for(instance)
  return eval_b if eval_a.override?

  eval_a.to_definition.merge(eval_b).for(instance)
end