class SuperDiff::OperationTreeBuilders::Main

Public Instance Methods

call() click to toggle source
# File lib/super_diff/operation_tree_builders/main.rb, line 8
def call
  if resolved_class
    resolved_class.call(
      expected: expected,
      actual: actual,
    )
  elsif all_or_nothing?
    raise NoOperationTreeBuilderAvailableError.create(expected, actual)
  else
    nil
  end
end

Private Instance Methods

available_classes() click to toggle source
# File lib/super_diff/operation_tree_builders/main.rb, line 29
def available_classes
  classes =
    SuperDiff.configuration.extra_operation_tree_builder_classes +
    DEFAULTS

  if all_or_nothing?
    classes + [DefaultObject]
  else
    classes
  end
end
resolved_class() click to toggle source
# File lib/super_diff/operation_tree_builders/main.rb, line 25
def resolved_class
  available_classes.find { |klass| klass.applies_to?(expected, actual) }
end