class SuperDiff::Configuration

Attributes

extra_diff_formatter_classes[R]
extra_differ_classes[R]
extra_inspection_tree_builder_classes[R]
extra_operation_tree_builder_classes[R]
extra_operation_tree_classes[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/super_diff/configuration.rb, line 20
def initialize(options = {})
  @actual_color = :yellow
  @border_color = :blue
  @color_enabled = color_enabled_by_default?
  @diff_elision_enabled = false
  @diff_elision_maximum = 0
  @elision_marker_color = :cyan
  @expected_color = :magenta
  @extra_diff_formatter_classes = [].freeze
  @extra_differ_classes = [].freeze
  @extra_inspection_tree_builder_classes = [].freeze
  @extra_operation_tree_builder_classes = [].freeze
  @extra_operation_tree_classes = [].freeze
  @header_color = :white

  merge!(options)
end

Public Instance Methods

add_extra_diff_formatter_class(*classes)
add_extra_diff_formatter_classes(*classes) click to toggle source
# File lib/super_diff/configuration.rb, line 76
def add_extra_diff_formatter_classes(*classes)
  @extra_diff_formatter_classes =
    (@extra_diff_formatter_classes + classes).freeze
end
add_extra_differ_class(*classes)
add_extra_differ_classes(*classes) click to toggle source
# File lib/super_diff/configuration.rb, line 85
def add_extra_differ_classes(*classes)
  @extra_differ_classes = (@extra_differ_classes + classes).freeze
end
Also aliased as: add_extra_differ_class
add_extra_inspection_tree_builder_class(*classes)
add_extra_inspection_tree_builder_classes(*classes) click to toggle source
# File lib/super_diff/configuration.rb, line 90
def add_extra_inspection_tree_builder_classes(*classes)
  @extra_inspection_tree_builder_classes =
    (@extra_inspection_tree_builder_classes + classes).freeze
end
add_extra_operation_tree_builder_class(*classes)
add_extra_operation_tree_builder_classes(*classes) click to toggle source
# File lib/super_diff/configuration.rb, line 99
def add_extra_operation_tree_builder_classes(*classes)
  @extra_operation_tree_builder_classes =
    (@extra_operation_tree_builder_classes + classes).freeze
end
add_extra_operation_tree_class(*classes)
add_extra_operation_tree_classes(*classes) click to toggle source
# File lib/super_diff/configuration.rb, line 108
def add_extra_operation_tree_classes(*classes)
  @extra_operation_tree_classes =
    (@extra_operation_tree_classes + classes).freeze
end
color_enabled?() click to toggle source
# File lib/super_diff/configuration.rb, line 49
def color_enabled?
  @color_enabled
end
diff_elision_enabled?() click to toggle source
# File lib/super_diff/configuration.rb, line 53
def diff_elision_enabled?
  @diff_elision_enabled
end
initialize_dup(original) click to toggle source
Calls superclass method
# File lib/super_diff/configuration.rb, line 38
def initialize_dup(original)
  super
  @extra_differ_classes = original.extra_differ_classes.dup.freeze
  @extra_operation_tree_builder_classes =
    original.extra_operation_tree_builder_classes.dup.freeze
  @extra_operation_tree_classes =
    original.extra_operation_tree_classes.dup.freeze
  @extra_inspection_tree_builder_classes =
    original.extra_inspection_tree_builder_classes.dup.freeze
end
merge!(configuration_or_options) click to toggle source
# File lib/super_diff/configuration.rb, line 57
def merge!(configuration_or_options)
  options =
    if configuration_or_options.is_a?(self.class)
      configuration_or_options.to_h
    else
      configuration_or_options
    end

  options.each do |key, value|
    instance_variable_set("@#{key}", value)
  end

  updated
end
to_h() click to toggle source
# File lib/super_diff/configuration.rb, line 117
def to_h
  {
    actual_color: actual_color,
    border_color: border_color,
    color_enabled: color_enabled?,
    diff_elision_enabled: diff_elision_enabled?,
    diff_elision_maximum: diff_elision_maximum,
    elision_marker_color: elision_marker_color,
    expected_color: expected_color,
    extra_diff_formatter_classes: extra_diff_formatter_classes.dup,
    extra_differ_classes: extra_differ_classes.dup,
    extra_inspection_tree_builder_classes:
      extra_inspection_tree_builder_classes.dup,
    extra_operation_tree_builder_classes:
      extra_operation_tree_builder_classes.dup,
    extra_operation_tree_classes: extra_operation_tree_classes.dup,
    header_color: header_color,
  }
end
updated() click to toggle source
# File lib/super_diff/configuration.rb, line 72
def updated
  SuperDiff::Csi.color_enabled = color_enabled?
end

Private Instance Methods

color_enabled_by_default?() click to toggle source
# File lib/super_diff/configuration.rb, line 139
def color_enabled_by_default?
  ENV["CI"] == "true" || $stdout.respond_to?(:tty?) && $stdout.tty?
end