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