Releases: splitwise/super_diff
0.8.0
BREAKING CHANGES
- Diff formatters are now gone in favor of operation tree flatteners. If you
have a custom diff formatter, you will want to inherit from
SuperDiff::OperationTreeFlatteners::Base (or an appropriate subclass).
Additionally, theadd_extra_diff_formatter_classconfiguration option has
disappeared; instead, operation tree classes are expected to have an
operation_tree_flattener_classmethod, which should return your custom
operation tree flattener class. (#91)
Features
-
Add the ability to compress long diffs by eliding sections of unchanged data
(data which is present in both "expected" and "actual" values). This
functionality is not enabled by default; rather, you will need to activate it.
At a minimum, you will want to add this to your spec helper (or a support file
if you so desire):SuperDiff.configure do |config| config.diff_elision_enabled = true end
By default the elision will be pretty aggressive, but if you want to preserve
more of the unchanged lines in the diff, you can setdiff_elision_maximum:SuperDiff.configure do |config| config.diff_elision_enabled = true config.diff_elision_maximum = 10 end
Here, the gem will try to keep at least 10 unchanged lines in between changed
lines.(#91)
-
Update inspection of Doubles to include stubbed methods and their values.
(#91)
Improvements
0.7.0
Features
-
Add support for
hash_including,array_including,kind_of, andinstance_of, which come fromrspec-mocks. (#128) -
Update how Time-like values are displayed in diffs to include subseconds so that it is easy to tell the difference between two times that are extremely close to each other. (#130)
Fixes
- Fix comparison involving hashes to prevent a case where the same key would show up twice in the diff (one as a "deleted" version and another as an "unchanged" version). (#129)
0.6.2
0.6.1
0.6.0
Features
-
You can now customize the colors that SuperDiff uses by adding this to your test setup:
SuperDiff.configure do |config| config.actual_color = :green config.expected_color = :red config.border_color = :yellow config.header_color = :yellow end
-
Ruby 3.0 is now supported. (#118)
Bug fixes
- Resolve compatibility issues with RSpec 3.10. (#114)
- Fix diffs involving
contain_exactlyanda_collection_containing_exactly
so that if there are extra items in the actual value,
they are shown with+s. (#106)
Other notable changes
- Fix reliability issues with CI.
- Fix
rake specso that it works when run locally again.
0.5.3
0.5.2
0.5.1
0.5.0
Breaking changes
-
Do some reorganizing and rename some concepts in the code: "operational
sequencer" changes to "operation tree builder" and "operation sequence"
changes to "operation tree". Although super_diff is not yet at 1.0, this does
result in breaking changes to the API, so:-
If you are inheriting from
SuperDiff::OperationalSequencers::*, you will
want to now inherit fromSuperDiff::OperationTreeBuilders::*. -
If you are inheriting from
SuperDiff::OperationSequence::*, you will
want to now inherit fromSuperDiff::OperationTrees::*. -
If you are configuring the gem by saying:
SuperDiff::RSpec.configuration do |config| config.add_extra_operational_sequencer_class(SomeClass) config.add_extra_operation_sequence_class(SomeClass) end
you will want to change this to:
SuperDiff::RSpec.configuration do |config| config.add_extra_operation_tree_builder_class(SomeClass) config.add_extra_operation_tree_class(SomeClass) end
-
Features
- Add inspectors for
an_instance_of,a_kind_of, anda_value_within.
(#74)
Bug fixes
- Get rid of warnings produced on Ruby 2.7.1. (#71)
- Fix diff produced by (incorrect) usage of
have_attributeswith a hash as the
actual value. (#76)