Skip to content

Commit

Permalink
Simplify color configuration
Browse files Browse the repository at this point in the history
* Use `attr_accessor`s instead of `set_` methods to prepare for upcoming
  elision settings
* Rename all instances of `alpha` to `expected` and `beta` to `actual`
  across the tests and code
* Adjust alignment in places in tests where colors are used so they're
  easier to read
  • Loading branch information
mcmire committed Feb 5, 2021
1 parent b5f5dc7 commit 042e8ec
Show file tree
Hide file tree
Showing 36 changed files with 2,337 additions and 2,359 deletions.
8 changes: 4 additions & 4 deletions lib/super_diff/colorized_document_extensions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ def self.extended(extendee)
end
end

def alpha(*args, **opts, &block)
colorize(*args, **opts, fg: SuperDiff.configuration.alpha_color, &block)
def expected(*args, **opts, &block)
colorize(*args, **opts, fg: SuperDiff.configuration.expected_color, &block)
end

def beta(*args, **opts, &block)
colorize(*args, **opts, fg: SuperDiff.configuration.beta_color, &block)
def actual(*args, **opts, &block)
colorize(*args, **opts, fg: SuperDiff.configuration.actual_color, &block)
end
end
end
74 changes: 26 additions & 48 deletions lib/super_diff/configuration.rb
Original file line number Diff line number Diff line change
@@ -1,52 +1,31 @@
module SuperDiff
class Configuration
attr_reader(
:extra_diff_formatter_classes,
:extra_differ_classes,
:extra_inspector_classes,
:extra_operation_tree_builder_classes,
:extra_operation_tree_classes,
:extra_diff_formatter_classes,
:extra_inspector_classes,
:alpha_color,
:beta_color,
)
attr_accessor(
:actual_color,
:border_color,
:expected_color,
:header_color,
)

def initialize
@actual_color = :yellow
@border_color = :blue
@expected_color = :magenta
@extra_diff_formatter_classes = [].freeze
@extra_differ_classes = [].freeze
@extra_inspector_classes = [].freeze
@extra_operation_tree_builder_classes = [].freeze
@extra_operation_tree_classes = [].freeze
@extra_diff_formatter_classes = [].freeze
@extra_inspector_classes = [].freeze
@alpha_color = :magenta
@beta_color = :yellow
@border_color = :blue
@header_color = :white
end

def add_extra_differ_classes(*classes)
@extra_differ_classes = (@extra_differ_classes + classes).freeze
end
alias_method :add_extra_differ_class, :add_extra_differ_classes

def add_extra_operation_tree_builder_classes(*classes)
@extra_operation_tree_builder_classes =
(@extra_operation_tree_builder_classes + classes).freeze
end
alias_method(
:add_extra_operation_tree_builder_class,
:add_extra_operation_tree_builder_classes,
)

def add_extra_operation_tree_classes(*classes)
@extra_operation_tree_classes =
(@extra_operation_tree_classes + classes).freeze
end
alias_method(
:add_extra_operation_tree_class,
:add_extra_operation_tree_classes,
)

def add_extra_diff_formatter_classes(*classes)
@extra_diff_formatter_classes =
(@extra_diff_formatter_classes + classes).freeze
Expand All @@ -56,6 +35,11 @@ def add_extra_diff_formatter_classes(*classes)
:add_extra_diff_formatter_classes,
)

def add_extra_differ_classes(*classes)
@extra_differ_classes = (@extra_differ_classes + classes).freeze
end
alias_method :add_extra_differ_class, :add_extra_differ_classes

def add_extra_inspector_classes(*classes)
@extra_inspector_classes =
(@extra_inspector_classes + classes).freeze
Expand All @@ -65,28 +49,22 @@ def add_extra_inspector_classes(*classes)
:add_extra_inspector_classes,
)

def set_alpha_color(color)
@alpha_color = color
def add_extra_operation_tree_builder_classes(*classes)
@extra_operation_tree_builder_classes =
(@extra_operation_tree_builder_classes + classes).freeze
end
alias_method(
:set_expected_color,
:set_alpha_color
:add_extra_operation_tree_builder_class,
:add_extra_operation_tree_builder_classes,
)

def set_beta_color(color)
@beta_color = color
def add_extra_operation_tree_classes(*classes)
@extra_operation_tree_classes =
(@extra_operation_tree_classes + classes).freeze
end
alias_method(
:set_actual_color,
:set_beta_color
:add_extra_operation_tree_class,
:add_extra_operation_tree_classes,
)

def set_border_color(color)
@border_color = color
end

def set_header_color(color)
@header_color = color
end
end
end
2 changes: 1 addition & 1 deletion lib/super_diff/diff_formatters/collection.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ class Collection
extend AttrExtras.mixin

ICONS = { delete: "-", insert: "+" }.freeze
STYLES = { insert: :beta, delete: :alpha, noop: :plain }.freeze
STYLES = { insert: :actual, delete: :expected, noop: :plain }.freeze

method_object(
[
Expand Down
8 changes: 4 additions & 4 deletions lib/super_diff/diff_formatters/multiline_string.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ def lines
operation_tree.reduce([]) do |array, operation|
case operation.name
when :change
array << Helpers.style(:alpha, "- #{operation.left_value}")
array << Helpers.style(:beta, "+ #{operation.right_value}")
array << Helpers.style(:expected, "- #{operation.left_value}")
array << Helpers.style(:actual, "+ #{operation.right_value}")
when :delete
array << Helpers.style(:alpha, "- #{operation.value}")
array << Helpers.style(:expected, "- #{operation.value}")
when :insert
array << Helpers.style(:beta, "+ #{operation.value}")
array << Helpers.style(:actual, "+ #{operation.value}")
else
array << Helpers.style(:plain, " #{operation.value}")
end
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/array.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ def fail
#{
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
}
#{
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ def fail

def expected_line
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
end

def actual_line
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/hash.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ def fail
#{
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
}
#{
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/multiline_string.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ def fail
#{
# TODO: This whole thing should not be red or green, just the values
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
}
#{
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/primitive.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ def fail
#{
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
}
#{
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
4 changes: 2 additions & 2 deletions lib/super_diff/equality_matchers/singleline_string.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ def fail
#{
Helpers.style(
:alpha,
:expected,
"Expected: " +
ObjectInspection.inspect(expected, as_single_line: true),
)
}
#{
Helpers.style(
:beta,
:actual,
" Actual: " +
ObjectInspection.inspect(actual, as_single_line: true),
)
Expand Down
14 changes: 7 additions & 7 deletions lib/super_diff/rspec/matcher_text_builders/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ def add_extra_after_expected_to(template)
def add_extra_after_error
end

def beta_color
SuperDiff.configuration.beta_color
def actual_color
SuperDiff.configuration.actual_color
end

def alpha_color
SuperDiff.configuration.alpha_color
def expected_color
SuperDiff.configuration.expected_color
end

private
Expand Down Expand Up @@ -91,7 +91,7 @@ def actual_phrase
end

def add_actual_value
template.add_text_in_color(beta_color) { actual }
template.add_text_in_color(actual_color) { actual }
end

def expected_section
Expand All @@ -110,7 +110,7 @@ def add_expected_value_to_failure_message(template)
else
template.add_text " "
template.add_text_in_color(
alpha_color,
expected_color,
expected_for_failure_message,
)
end
Expand All @@ -121,7 +121,7 @@ def add_expected_value_to_description(template)
add_expected_value_to(template, expected_for_description)
else
template.add_text " "
template.add_text_in_color(alpha_color, expected_for_description)
template.add_text_in_color(expected_color, expected_for_description)
end
end

Expand Down
12 changes: 6 additions & 6 deletions lib/super_diff/rspec/matcher_text_builders/be_predicate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,38 +26,38 @@ def expected_action_for_failure_message
end
end

def beta_color
def actual_color
:yellow
end

def add_actual_value
template.add_text_in_color(beta_color) do
template.add_text_in_color(actual_color) do
description_of(actual)
end
end

def add_expected_value_to_failure_message(template)
template.add_text " "
template.add_text_in_color(
alpha_color,
expected_color,
"#{expected_for_failure_message}?",
)
template.add_text " or "
template.add_text_in_color(
alpha_color,
expected_color,
"#{expected_for_failure_message}s?",
)
end

def add_expected_value_to_description(template)
template.add_text " "
template.add_text_in_color(
alpha_color,
expected_color,
"`#{expected_for_description}?`",
)
template.add_text " or "
template.add_text_in_color(
alpha_color,
expected_color,
"`#{expected_for_description}s?`",
)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class ContainExactly < Base

def add_expected_value_to(template, expected)
template.add_text " "
template.add_list_in_color(alpha_color, expected)
template.add_list_in_color(expected_color, expected)
end
end
end
Expand Down
8 changes: 4 additions & 4 deletions lib/super_diff/rspec/matcher_text_builders/have_predicate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,28 @@ def expected_action_for_failure_message
end
end

def beta_color
def actual_color
:yellow
end

def add_actual_value
template.add_text_in_color(beta_color) do
template.add_text_in_color(actual_color) do
description_of(actual)
end
end

def add_expected_value_to_failure_message(template)
template.add_text " "
template.add_text_in_color(
alpha_color,
expected_color,
expected_for_failure_message,
)
end

def add_expected_value_to_description(template)
template.add_text " "
template.add_text_in_color(
alpha_color,
expected_color,
"`#{expected_for_description}`",
)
end
Expand Down
Loading

0 comments on commit 042e8ec

Please sign in to comment.