class Delta::SetOperator
Constants
- ADAPTERS
Attributes
a[RW]
b[RW]
changes[RW]
identifiers[RW]
Public Class Methods
adapt(a:, b:, identifiers:, changes:)
click to toggle source
# File lib/delta/set_operator.rb, line 5 def self.adapt(a:, b:, identifiers:, changes:) adapter = ADAPTERS.find { |klass| klass.compatible?(a, b) } adapter = ADAPTERS.last unless adapter adapter.new( a: a, b: b, identifiers: identifiers, changes: changes ) end
new(a:, b:, identifiers:, changes:)
click to toggle source
# File lib/delta/set_operator.rb, line 17 def initialize(a:, b:, identifiers:, changes:) self.a = a self.b = b self.identifiers = identifiers self.changes = changes end
Public Instance Methods
a_minus_b()
click to toggle source
# File lib/delta/set_operator.rb, line 24 def a_minus_b subtract(a, b) end
b_minus_a()
click to toggle source
# File lib/delta/set_operator.rb, line 28 def b_minus_a subtract(b, a) end
intersection()
click to toggle source
# File lib/delta/set_operator.rb, line 32 def intersection intersect(a, b) end
Private Instance Methods
intersect(_a, _b)
click to toggle source
a & b
# File lib/delta/set_operator.rb, line 48 def intersect(_a, _b) fail NotImplementedError, "override me" end
subtract(_a, _b)
click to toggle source
a - b
# File lib/delta/set_operator.rb, line 43 def subtract(_a, _b) fail NotImplementedError, "override me" end