super_diff 0.12.1 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -19
- data/lib/super_diff/active_record/differs/active_record_relation.rb +2 -0
- data/lib/super_diff/active_record/differs.rb +3 -1
- data/lib/super_diff/active_record/inspection_tree_builders/active_record_model.rb +7 -5
- data/lib/super_diff/active_record/inspection_tree_builders/active_record_relation.rb +12 -10
- data/lib/super_diff/active_record/inspection_tree_builders.rb +4 -2
- data/lib/super_diff/active_record/monkey_patches.rb +4 -2
- data/lib/super_diff/active_record/object_inspection.rb +6 -4
- data/lib/super_diff/active_record/operation_tree_builders/active_record_model.rb +3 -1
- data/lib/super_diff/active_record/operation_tree_builders/active_record_relation.rb +3 -1
- data/lib/super_diff/active_record/operation_tree_builders.rb +4 -2
- data/lib/super_diff/active_record/operation_tree_flatteners/active_record_relation.rb +4 -2
- data/lib/super_diff/active_record/operation_tree_flatteners.rb +3 -1
- data/lib/super_diff/active_record/operation_trees/active_record_relation.rb +2 -0
- data/lib/super_diff/active_record/operation_trees.rb +3 -1
- data/lib/super_diff/active_record.rb +10 -8
- data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +2 -0
- data/lib/super_diff/active_support/differs.rb +3 -1
- data/lib/super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access.rb +16 -14
- data/lib/super_diff/active_support/inspection_tree_builders/ordered_options.rb +16 -14
- data/lib/super_diff/active_support/inspection_tree_builders.rb +4 -2
- data/lib/super_diff/active_support/object_inspection.rb +6 -4
- data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +6 -4
- data/lib/super_diff/active_support/operation_tree_builders.rb +3 -1
- data/lib/super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access.rb +4 -2
- data/lib/super_diff/active_support/operation_tree_flatteners.rb +3 -1
- data/lib/super_diff/active_support/operation_trees/hash_with_indifferent_access.rb +2 -0
- data/lib/super_diff/active_support/operation_trees.rb +3 -1
- data/lib/super_diff/active_support.rb +8 -6
- data/lib/super_diff/basic/diff_formatters/collection.rb +18 -18
- data/lib/super_diff/basic/diff_formatters/multiline_string.rb +2 -0
- data/lib/super_diff/basic/diff_formatters.rb +4 -2
- data/lib/super_diff/basic/differs/array.rb +2 -0
- data/lib/super_diff/basic/differs/custom_object.rb +3 -1
- data/lib/super_diff/basic/differs/date_like.rb +2 -0
- data/lib/super_diff/basic/differs/default_object.rb +3 -1
- data/lib/super_diff/basic/differs/hash.rb +2 -0
- data/lib/super_diff/basic/differs/multiline_string.rb +2 -0
- data/lib/super_diff/basic/differs/time_like.rb +2 -0
- data/lib/super_diff/basic/differs.rb +11 -9
- data/lib/super_diff/basic/inspection_tree_builders/array.rb +5 -3
- data/lib/super_diff/basic/inspection_tree_builders/custom_object.rb +5 -3
- data/lib/super_diff/basic/inspection_tree_builders/data_object.rb +42 -0
- data/lib/super_diff/basic/inspection_tree_builders/date_like.rb +7 -5
- data/lib/super_diff/basic/inspection_tree_builders/default_object.rb +7 -5
- data/lib/super_diff/basic/inspection_tree_builders/hash.rb +7 -5
- data/lib/super_diff/basic/inspection_tree_builders/primitive.rb +3 -1
- data/lib/super_diff/basic/inspection_tree_builders/range_object.rb +19 -0
- data/lib/super_diff/basic/inspection_tree_builders/time_like.rb +8 -8
- data/lib/super_diff/basic/inspection_tree_builders.rb +18 -8
- data/lib/super_diff/basic/operation_tree_builders/array.rb +6 -4
- data/lib/super_diff/basic/operation_tree_builders/custom_object.rb +3 -1
- data/lib/super_diff/basic/operation_tree_builders/data_object.rb +20 -0
- data/lib/super_diff/basic/operation_tree_builders/date_like.rb +2 -0
- data/lib/super_diff/basic/operation_tree_builders/default_object.rb +32 -31
- data/lib/super_diff/basic/operation_tree_builders/hash.rb +49 -46
- data/lib/super_diff/basic/operation_tree_builders/multiline_string.rb +5 -3
- data/lib/super_diff/basic/operation_tree_builders/time_like.rb +5 -3
- data/lib/super_diff/basic/operation_tree_builders.rb +15 -9
- data/lib/super_diff/basic/operation_tree_flatteners/array.rb +4 -2
- data/lib/super_diff/basic/operation_tree_flatteners/collection.rb +11 -11
- data/lib/super_diff/basic/operation_tree_flatteners/custom_object.rb +5 -3
- data/lib/super_diff/basic/operation_tree_flatteners/default_object.rb +6 -5
- data/lib/super_diff/basic/operation_tree_flatteners/hash.rb +5 -3
- data/lib/super_diff/basic/operation_tree_flatteners/multiline_string.rb +3 -1
- data/lib/super_diff/basic/operation_tree_flatteners.rb +8 -6
- data/lib/super_diff/basic/operation_trees/array.rb +2 -0
- data/lib/super_diff/basic/operation_trees/custom_object.rb +2 -0
- data/lib/super_diff/basic/operation_trees/default_object.rb +6 -4
- data/lib/super_diff/basic/operation_trees/hash.rb +2 -0
- data/lib/super_diff/basic/operation_trees/multiline_string.rb +3 -1
- data/lib/super_diff/basic/operation_trees.rb +9 -7
- data/lib/super_diff/basic.rb +12 -7
- data/lib/super_diff/core/abstract_differ.rb +2 -0
- data/lib/super_diff/core/abstract_inspection_tree_builder.rb +2 -0
- data/lib/super_diff/core/abstract_operation_tree.rb +4 -2
- data/lib/super_diff/core/abstract_operation_tree_builder.rb +15 -18
- data/lib/super_diff/core/abstract_operation_tree_flattener.rb +5 -3
- data/lib/super_diff/core/binary_operation.rb +3 -1
- data/lib/super_diff/core/colorized_document_extensions.rb +2 -0
- data/lib/super_diff/core/configuration.rb +23 -43
- data/lib/super_diff/core/differ_dispatcher.rb +4 -2
- data/lib/super_diff/core/gem_version.rb +2 -0
- data/lib/super_diff/core/helpers.rb +14 -12
- data/lib/super_diff/core/implementation_checks.rb +6 -2
- data/lib/super_diff/core/inspection_tree.rb +38 -38
- data/lib/super_diff/core/inspection_tree_builder_dispatcher.rb +5 -5
- data/lib/super_diff/core/inspection_tree_nodes/as_lines_when_rendering_to_lines.rb +3 -1
- data/lib/super_diff/core/inspection_tree_nodes/as_prefix_when_rendering_to_lines.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/as_prelude_when_rendering_to_lines.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/as_single_line.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/base.rb +9 -9
- data/lib/super_diff/core/inspection_tree_nodes/inspection.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/nesting.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/only_when.rb +5 -1
- data/lib/super_diff/core/inspection_tree_nodes/text.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes/when_empty.rb +3 -1
- data/lib/super_diff/core/inspection_tree_nodes/when_non_empty.rb +3 -1
- data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_lines.rb +3 -1
- data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_string.rb +2 -0
- data/lib/super_diff/core/inspection_tree_nodes.rb +16 -14
- data/lib/super_diff/core/line.rb +9 -7
- data/lib/super_diff/core/no_differ_available_error.rb +7 -5
- data/lib/super_diff/core/no_inspection_tree_builder_available_error.rb +5 -3
- data/lib/super_diff/core/no_operation_tree_available_error.rb +4 -2
- data/lib/super_diff/core/no_operation_tree_builder_available_error.rb +7 -5
- data/lib/super_diff/core/operation_tree_builder_dispatcher.rb +3 -3
- data/lib/super_diff/core/operation_tree_finder.rb +8 -8
- data/lib/super_diff/core/prefix_for_next_inspection_tree_node.rb +2 -0
- data/lib/super_diff/core/prelude_for_next_inspection_tree_node.rb +2 -0
- data/lib/super_diff/core/recursion_guard.rb +6 -4
- data/lib/super_diff/core/tiered_lines.rb +2 -0
- data/lib/super_diff/core/tiered_lines_elider.rb +53 -54
- data/lib/super_diff/core/tiered_lines_formatter.rb +6 -4
- data/lib/super_diff/core/unary_operation.rb +2 -0
- data/lib/super_diff/core.rb +31 -29
- data/lib/super_diff/csi/bold_sequence.rb +2 -0
- data/lib/super_diff/csi/color.rb +4 -4
- data/lib/super_diff/csi/color_sequence_block.rb +3 -1
- data/lib/super_diff/csi/colorized_document.rb +7 -9
- data/lib/super_diff/csi/document.rb +15 -18
- data/lib/super_diff/csi/eight_bit_color.rb +32 -37
- data/lib/super_diff/csi/four_bit_color.rb +12 -9
- data/lib/super_diff/csi/reset_sequence.rb +2 -0
- data/lib/super_diff/csi/twenty_four_bit_color.rb +22 -21
- data/lib/super_diff/csi/uncolorized_document.rb +2 -0
- data/lib/super_diff/csi.rb +12 -42
- data/lib/super_diff/differs.rb +6 -4
- data/lib/super_diff/equality_matchers/array.rb +18 -16
- data/lib/super_diff/equality_matchers/base.rb +6 -4
- data/lib/super_diff/equality_matchers/default.rb +5 -3
- data/lib/super_diff/equality_matchers/defaults.rb +3 -1
- data/lib/super_diff/equality_matchers/hash.rb +18 -16
- data/lib/super_diff/equality_matchers/main.rb +3 -1
- data/lib/super_diff/equality_matchers/multiline_string.rb +18 -16
- data/lib/super_diff/equality_matchers/primitive.rb +15 -13
- data/lib/super_diff/equality_matchers/singleline_string.rb +16 -14
- data/lib/super_diff/equality_matchers.rb +11 -9
- data/lib/super_diff/errors.rb +4 -2
- data/lib/super_diff/object_inspection.rb +17 -15
- data/lib/super_diff/operation_tree_builders.rb +6 -4
- data/lib/super_diff/operation_tree_flatteners.rb +6 -4
- data/lib/super_diff/operation_trees.rb +6 -4
- data/lib/super_diff/operations.rb +4 -2
- data/lib/super_diff/rails.rb +4 -2
- data/lib/super_diff/rspec/augmented_matcher.rb +3 -1
- data/lib/super_diff/rspec/differ.rb +16 -7
- data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +2 -0
- data/lib/super_diff/rspec/differs/collection_including.rb +2 -0
- data/lib/super_diff/rspec/differs/hash_including.rb +2 -0
- data/lib/super_diff/rspec/differs/object_having_attributes.rb +2 -0
- data/lib/super_diff/rspec/differs.rb +6 -4
- data/lib/super_diff/rspec/inspection_tree_builders/collection_containing_exactly.rb +12 -10
- data/lib/super_diff/rspec/inspection_tree_builders/collection_including.rb +10 -8
- data/lib/super_diff/rspec/inspection_tree_builders/double.rb +20 -18
- data/lib/super_diff/rspec/inspection_tree_builders/generic_describable_matcher.rb +2 -0
- data/lib/super_diff/rspec/inspection_tree_builders/hash_including.rb +10 -8
- data/lib/super_diff/rspec/inspection_tree_builders/instance_of.rb +2 -0
- data/lib/super_diff/rspec/inspection_tree_builders/kind_of.rb +2 -0
- data/lib/super_diff/rspec/inspection_tree_builders/object_having_attributes.rb +12 -10
- data/lib/super_diff/rspec/inspection_tree_builders/primitive.rb +2 -0
- data/lib/super_diff/rspec/inspection_tree_builders/value_within.rb +6 -4
- data/lib/super_diff/rspec/inspection_tree_builders.rb +12 -10
- data/lib/super_diff/rspec/matcher_text_builders/base.rb +12 -12
- data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +19 -17
- data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +3 -1
- data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +7 -5
- data/lib/super_diff/rspec/matcher_text_builders/match.rb +6 -4
- data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +5 -3
- data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +20 -18
- data/lib/super_diff/rspec/matcher_text_builders.rb +9 -7
- data/lib/super_diff/rspec/matcher_text_template.rb +34 -39
- data/lib/super_diff/rspec/monkey_patches.rb +129 -56
- data/lib/super_diff/rspec/object_inspection.rb +7 -5
- data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
- data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
- data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
- data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
- data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
- data/lib/super_diff/rspec-rails.rb +4 -2
- data/lib/super_diff/rspec.rb +27 -14
- data/lib/super_diff/version.rb +3 -1
- data/lib/super_diff.rb +24 -27
- data/super_diff.gemspec +20 -18
- metadata +15 -182
- data/spec/examples.txt +0 -704
- data/spec/integration/rails/active_record_spec.rb +0 -21
- data/spec/integration/rails/active_support_spec.rb +0 -19
- data/spec/integration/rails/engines_spec.rb +0 -25
- data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
- data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
- data/spec/integration/rspec/be_matcher_spec.rb +0 -605
- data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
- data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
- data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
- data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
- data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
- data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
- data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
- data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
- data/spec/integration/rspec/include_matcher_spec.rb +0 -452
- data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
- data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
- data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
- data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
- data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
- data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
- data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
- data/spec/internal/log/test.log +0 -0
- data/spec/spec_helper.rb +0 -90
- data/spec/support/colorizer.rb +0 -9
- data/spec/support/command_runner.rb +0 -253
- data/spec/support/helpers.rb +0 -21
- data/spec/support/integration/helpers.rb +0 -124
- data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
- data/spec/support/integration/matchers.rb +0 -177
- data/spec/support/integration/test_programs/base.rb +0 -143
- data/spec/support/integration/test_programs/plain.rb +0 -19
- data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
- data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
- data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
- data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
- data/spec/support/models/a.rb +0 -11
- data/spec/support/models/active_record/person.rb +0 -28
- data/spec/support/models/active_record/query.rb +0 -15
- data/spec/support/models/active_record/shipping_address.rb +0 -24
- data/spec/support/models/customer.rb +0 -22
- data/spec/support/models/empty_class.rb +0 -6
- data/spec/support/models/item.rb +0 -10
- data/spec/support/models/order.rb +0 -9
- data/spec/support/models/person.rb +0 -20
- data/spec/support/models/player.rb +0 -30
- data/spec/support/models/shipping_address.rb +0 -25
- data/spec/support/shared_examples/active_record.rb +0 -428
- data/spec/support/shared_examples/active_support.rb +0 -188
- data/spec/support/shared_examples/elided_diffs.rb +0 -938
- data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
- data/spec/support/shared_examples/key.rb +0 -123
- data/spec/support/unit/helpers.rb +0 -24
- data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
- data/spec/support/unit/matchers/match_output.rb +0 -40
- data/spec/unit/active_record/object_inspection_spec.rb +0 -289
- data/spec/unit/active_support/object_inspection_spec.rb +0 -170
- data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
- data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
- data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
- data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
- data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
- data/spec/unit/core/helpers_spec.rb +0 -68
- data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
- data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
- data/spec/unit/deprecations_spec.rb +0 -176
- data/spec/unit/equality_matchers/main_spec.rb +0 -1842
- data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
- data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
- data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
- data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
- data/spec/unit/rspec/matchers/be_spec.rb +0 -17
- data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
- data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
- data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
- data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
- data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
- data/spec/unit/rspec/matchers/include_spec.rb +0 -21
- data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
- data/spec/unit/rspec/matchers/match_spec.rb +0 -9
- data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
- data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
- data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
- data/spec/unit/rspec/object_inspection_spec.rb +0 -471
- data/spec/unit/super_diff_spec.rb +0 -2115
@@ -1,26 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module EqualityMatchers
|
3
5
|
class SinglelineString < Base
|
4
6
|
def self.applies_to?(value)
|
5
|
-
value.
|
7
|
+
value.instance_of?(::String)
|
6
8
|
end
|
7
9
|
|
8
10
|
def fail
|
9
11
|
<<~OUTPUT.strip
|
10
|
-
|
12
|
+
Differing strings.
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
#{
|
15
|
+
Core::Helpers.style(
|
16
|
+
:expected,
|
17
|
+
"Expected: #{SuperDiff.inspect_object(expected, as_lines: false)}"
|
18
|
+
)
|
19
|
+
}
|
20
|
+
#{
|
21
|
+
Core::Helpers.style(
|
22
|
+
:actual,
|
23
|
+
" Actual: #{SuperDiff.inspect_object(actual, as_lines: false)}"
|
24
|
+
)
|
25
|
+
}
|
24
26
|
OUTPUT
|
25
27
|
end
|
26
28
|
end
|
@@ -1,17 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module EqualityMatchers
|
3
|
-
autoload :Array,
|
4
|
-
autoload :Base,
|
5
|
-
autoload :Hash,
|
6
|
-
autoload :Main,
|
7
|
-
autoload :MultilineString,
|
8
|
-
autoload :Default,
|
9
|
-
autoload :Primitive,
|
5
|
+
autoload :Array, 'super_diff/equality_matchers/array'
|
6
|
+
autoload :Base, 'super_diff/equality_matchers/base'
|
7
|
+
autoload :Hash, 'super_diff/equality_matchers/hash'
|
8
|
+
autoload :Main, 'super_diff/equality_matchers/main'
|
9
|
+
autoload :MultilineString, 'super_diff/equality_matchers/multiline_string'
|
10
|
+
autoload :Default, 'super_diff/equality_matchers/default'
|
11
|
+
autoload :Primitive, 'super_diff/equality_matchers/primitive'
|
10
12
|
autoload(
|
11
13
|
:SinglelineString,
|
12
|
-
|
14
|
+
'super_diff/equality_matchers/singleline_string'
|
13
15
|
)
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
|
-
require
|
19
|
+
require 'super_diff/equality_matchers/defaults'
|
data/lib/super_diff/errors.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module Errors
|
3
5
|
def self.const_missing(missing_const_name)
|
4
6
|
if Core.const_defined?(missing_const_name)
|
5
|
-
warn <<~
|
7
|
+
warn <<~WARNING
|
6
8
|
WARNING: SuperDiff::Errors::#{missing_const_name} is deprecated and will be removed in the next major release.
|
7
9
|
Please use SuperDiff::Core::#{missing_const_name} instead.
|
8
10
|
#{caller_locations.join("\n")}
|
9
|
-
|
11
|
+
WARNING
|
10
12
|
Core.const_get(missing_const_name)
|
11
13
|
else
|
12
14
|
super
|
@@ -1,20 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module ObjectInspection
|
3
5
|
module InspectionTreeBuilders
|
4
6
|
def self.const_missing(missing_const_name)
|
5
7
|
if missing_const_name == :Base
|
6
|
-
warn <<~
|
8
|
+
warn <<~WARNING
|
7
9
|
WARNING: SuperDiff::ObjectInspection::InspectionTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
|
8
10
|
Please use SuperDiff::Core::AbstractInspectionTreeBuilder instead.
|
9
11
|
#{caller_locations.join("\n")}
|
10
|
-
|
12
|
+
WARNING
|
11
13
|
Core::AbstractInspectionTreeBuilder
|
12
14
|
elsif Basic::InspectionTreeBuilders.const_defined?(missing_const_name)
|
13
|
-
warn <<~
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
warn <<~WARNING
|
16
|
+
WARNING: SuperDiff::ObjectInspection::InspectionTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
|
17
|
+
Please use SuperDiff::Basic::InspectionTreeBuilders::#{missing_const_name} instead.
|
18
|
+
#{caller_locations.join("\n")}
|
19
|
+
WARNING
|
18
20
|
Basic::InspectionTreeBuilders.const_get(missing_const_name)
|
19
21
|
else
|
20
22
|
super
|
@@ -25,11 +27,11 @@ module SuperDiff
|
|
25
27
|
module Nodes
|
26
28
|
def self.const_missing(missing_const_name)
|
27
29
|
if Core::InspectionTreeNodes.const_defined?(missing_const_name)
|
28
|
-
warn <<~
|
30
|
+
warn <<~WARNING
|
29
31
|
WARNING: SuperDiff::ObjectInspection::Nodes::#{missing_const_name} is deprecated and will be removed in the next major release.
|
30
32
|
Please use SuperDiff::Core::InspectionTreeNodes::#{missing_const_name} instead.
|
31
33
|
#{caller_locations.join("\n")}
|
32
|
-
|
34
|
+
WARNING
|
33
35
|
Core::InspectionTreeNodes.const_get(missing_const_name)
|
34
36
|
else
|
35
37
|
super
|
@@ -39,25 +41,25 @@ module SuperDiff
|
|
39
41
|
|
40
42
|
def self.const_missing(missing_const_name)
|
41
43
|
if missing_const_name == :PrefixForNextNode
|
42
|
-
warn <<~
|
44
|
+
warn <<~WARNING
|
43
45
|
WARNING: SuperDiff::ObjectInspection::PrefixForNextNode is deprecated and will be removed in the next major release.
|
44
46
|
Please use SuperDiff::Core::PrefixForNextInspectionTreeNode instead.
|
45
47
|
#{caller_locations.join("\n")}
|
46
|
-
|
48
|
+
WARNING
|
47
49
|
Core::PrefixForNextInspectionTreeNode
|
48
50
|
elsif missing_const_name == :PreludeForNextNode
|
49
|
-
warn <<~
|
51
|
+
warn <<~WARNING
|
50
52
|
WARNING: SuperDiff::ObjectInspection::PreludeForNextNode is deprecated and will be removed in the next major release.
|
51
53
|
Please use SuperDiff::Core::PreludeForNextInspectionTreeNode instead.
|
52
54
|
#{caller_locations.join("\n")}
|
53
|
-
|
55
|
+
WARNING
|
54
56
|
Core::PreludeForNextInspectionTreeNode
|
55
57
|
elsif Core.const_defined?(missing_const_name)
|
56
|
-
warn <<~
|
58
|
+
warn <<~WARNING
|
57
59
|
WARNING: SuperDiff::ObjectInspection::#{missing_const_name} is deprecated and will be removed in the next major release.
|
58
60
|
Please use SuperDiff::Core::#{missing_const_name} instead.
|
59
61
|
#{caller_locations.join("\n")}
|
60
|
-
|
62
|
+
WARNING
|
61
63
|
Core.const_get(missing_const_name)
|
62
64
|
else
|
63
65
|
super
|
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module OperationTreeBuilders
|
3
5
|
def self.const_missing(missing_const_name)
|
4
6
|
if missing_const_name == :Base
|
5
|
-
warn <<~
|
7
|
+
warn <<~WARNING
|
6
8
|
WARNING: SuperDiff::OperationTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
|
7
9
|
Please use SuperDiff::Core::AbstractOperationTreeBuilder instead.
|
8
10
|
#{caller_locations.join("\n")}
|
9
|
-
|
11
|
+
WARNING
|
10
12
|
Core::AbstractOperationTreeBuilder
|
11
13
|
elsif Basic::OperationTreeBuilders.const_defined?(missing_const_name)
|
12
|
-
warn <<~
|
14
|
+
warn <<~WARNING
|
13
15
|
WARNING: SuperDiff::OperationTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
|
14
16
|
Please use SuperDiff::Basic::OperationTreeBuilders::#{missing_const_name} instead.
|
15
17
|
#{caller_locations.join("\n")}
|
16
|
-
|
18
|
+
WARNING
|
17
19
|
Basic::OperationTreeBuilders.const_get(missing_const_name)
|
18
20
|
else
|
19
21
|
super
|
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module OperationTreeFlatteners
|
3
5
|
def self.const_missing(missing_const_name)
|
4
6
|
if missing_const_name == :Base
|
5
|
-
warn <<~
|
7
|
+
warn <<~WARNING
|
6
8
|
WARNING: SuperDiff::OperationTreeFlatteners::#{missing_const_name} is deprecated and will be removed in the next major release.
|
7
9
|
Please use SuperDiff::Core::AbstractOperationTreeFlattener instead.
|
8
10
|
#{caller_locations.join("\n")}
|
9
|
-
|
11
|
+
WARNING
|
10
12
|
Core::AbstractOperationTreeFlattener
|
11
13
|
elsif Basic::OperationTreeFlatteners.const_defined?(missing_const_name)
|
12
|
-
warn <<~
|
14
|
+
warn <<~WARNING
|
13
15
|
WARNING: SuperDiff::OperationTreeFlatteners::#{missing_const_name} is deprecated and will be removed in the next major release.
|
14
16
|
Please use SuperDiff::Basic::OperationTreeFlatteners::#{missing_const_name} instead.
|
15
17
|
#{caller_locations.join("\n")}
|
16
|
-
|
18
|
+
WARNING
|
17
19
|
Basic::OperationTreeFlatteners.const_get(missing_const_name)
|
18
20
|
else
|
19
21
|
super
|
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module OperationTrees
|
3
5
|
def self.const_missing(missing_const_name)
|
4
6
|
if missing_const_name == :Base
|
5
|
-
warn <<~
|
7
|
+
warn <<~WARNING
|
6
8
|
WARNING: SuperDiff::OperationTrees::#{missing_const_name} is deprecated and will be removed in the next major release.
|
7
9
|
Please use SuperDiff::Core::AbstractOperationTree instead.
|
8
10
|
#{caller_locations.join("\n")}
|
9
|
-
|
11
|
+
WARNING
|
10
12
|
Core::AbstractOperationTree
|
11
13
|
elsif Basic::OperationTrees.const_defined?(missing_const_name)
|
12
|
-
warn <<~
|
14
|
+
warn <<~WARNING
|
13
15
|
WARNING: SuperDiff::OperationTrees::#{missing_const_name} is deprecated and will be removed in the next major release.
|
14
16
|
Please use SuperDiff::Basic::OperationTrees::#{missing_const_name} instead.
|
15
17
|
#{caller_locations.join("\n")}
|
16
|
-
|
18
|
+
WARNING
|
17
19
|
Basic::OperationTrees.const_get(missing_const_name)
|
18
20
|
else
|
19
21
|
super
|
@@ -1,12 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module Operations
|
3
5
|
def self.const_missing(missing_const_name)
|
4
6
|
if Core.const_defined?(missing_const_name)
|
5
|
-
warn <<~
|
7
|
+
warn <<~WARNING
|
6
8
|
WARNING: SuperDiff::Operations::#{missing_const_name} is deprecated and will be removed in the next major release.
|
7
9
|
Please use SuperDiff::Core::#{missing_const_name} instead.
|
8
10
|
#{caller_locations.join("\n")}
|
9
|
-
|
11
|
+
WARNING
|
10
12
|
Core.const_get(missing_const_name)
|
11
13
|
else
|
12
14
|
super
|
data/lib/super_diff/rails.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module AugmentedMatcher
|
@@ -30,7 +32,7 @@ module SuperDiff
|
|
30
32
|
end
|
31
33
|
|
32
34
|
def matcher_text_builder
|
33
|
-
@
|
35
|
+
@matcher_text_builder ||=
|
34
36
|
matcher_text_builder_class.new(**matcher_text_builder_args)
|
35
37
|
end
|
36
38
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
class Differ
|
@@ -8,19 +10,19 @@ module SuperDiff
|
|
8
10
|
def diff
|
9
11
|
if worth_diffing?
|
10
12
|
diff = SuperDiff.diff(expected, actual)
|
11
|
-
"\n\n"
|
13
|
+
"\n\n#{diff}"
|
12
14
|
else
|
13
|
-
|
15
|
+
''
|
14
16
|
end
|
15
17
|
rescue Core::NoDifferAvailableError
|
16
|
-
|
18
|
+
''
|
17
19
|
end
|
18
20
|
|
19
21
|
private
|
20
22
|
|
21
23
|
def worth_diffing?
|
22
24
|
comparing_inequal_values? && !comparing_primitive_values? &&
|
23
|
-
!comparing_singleline_strings?
|
25
|
+
!comparing_proc_values? && !comparing_singleline_strings?
|
24
26
|
end
|
25
27
|
|
26
28
|
def comparing_inequal_values?
|
@@ -28,8 +30,15 @@ module SuperDiff
|
|
28
30
|
end
|
29
31
|
|
30
32
|
def comparing_primitive_values?
|
31
|
-
|
32
|
-
|
33
|
+
# strings are indeed primitives, but we still may want to diff them if
|
34
|
+
# they are multiline strings (see #comparing_singleline_strings?)
|
35
|
+
return false if expected.is_a?(String)
|
36
|
+
|
37
|
+
SuperDiff.primitive?(expected)
|
38
|
+
end
|
39
|
+
|
40
|
+
def comparing_proc_values?
|
41
|
+
expected.is_a?(Proc)
|
33
42
|
end
|
34
43
|
|
35
44
|
def comparing_singleline_strings?
|
@@ -38,7 +47,7 @@ module SuperDiff
|
|
38
47
|
end
|
39
48
|
|
40
49
|
def helpers
|
41
|
-
@
|
50
|
+
@helpers ||= RSpecHelpers.new
|
42
51
|
end
|
43
52
|
|
44
53
|
class RSpecHelpers
|
@@ -1,18 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module Differs
|
4
6
|
autoload(
|
5
7
|
:CollectionContainingExactly,
|
6
|
-
|
8
|
+
'super_diff/rspec/differs/collection_containing_exactly'
|
7
9
|
)
|
8
10
|
autoload(
|
9
11
|
:CollectionIncluding,
|
10
|
-
|
12
|
+
'super_diff/rspec/differs/collection_including'
|
11
13
|
)
|
12
|
-
autoload :HashIncluding,
|
14
|
+
autoload :HashIncluding, 'super_diff/rspec/differs/hash_including'
|
13
15
|
autoload(
|
14
16
|
:ObjectHavingAttributes,
|
15
|
-
|
17
|
+
'super_diff/rspec/differs/object_having_attributes'
|
16
18
|
)
|
17
19
|
end
|
18
20
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module InspectionTreeBuilders
|
@@ -10,22 +12,22 @@ module SuperDiff
|
|
10
12
|
Core::InspectionTree.new do |t1|
|
11
13
|
# stree-ignore
|
12
14
|
t1.as_lines_when_rendering_to_lines(
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
collection_bookend: :open
|
16
|
+
) do |t2|
|
17
|
+
t2.add_text '#<a collection containing exactly ('
|
18
|
+
end
|
17
19
|
|
18
20
|
# stree-ignore
|
19
21
|
t1.nested do |t2|
|
20
|
-
|
21
|
-
|
22
|
+
t2.insert_array_inspection_of(object.expected)
|
23
|
+
end
|
22
24
|
|
23
25
|
# stree-ignore
|
24
26
|
t1.as_lines_when_rendering_to_lines(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
collection_bookend: :close
|
28
|
+
) do |t2|
|
29
|
+
t2.add_text ')>'
|
30
|
+
end
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module InspectionTreeBuilders
|
@@ -11,10 +13,10 @@ module SuperDiff
|
|
11
13
|
Core::InspectionTree.new do |t1|
|
12
14
|
# stree-ignore
|
13
15
|
t1.as_lines_when_rendering_to_lines(
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
collection_bookend: :open
|
17
|
+
) do |t2|
|
18
|
+
t2.add_text '#<a collection including ('
|
19
|
+
end
|
18
20
|
|
19
21
|
t1.nested do |t2|
|
20
22
|
if SuperDiff::RSpec.a_collection_including_something?(object)
|
@@ -28,10 +30,10 @@ module SuperDiff
|
|
28
30
|
|
29
31
|
# stree-ignore
|
30
32
|
t1.as_lines_when_rendering_to_lines(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
collection_bookend: :close
|
34
|
+
) do |t2|
|
35
|
+
t2.add_text ')>'
|
36
|
+
end
|
35
37
|
end
|
36
38
|
end
|
37
39
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module InspectionTreeBuilders
|
@@ -22,29 +24,29 @@ module SuperDiff
|
|
22
24
|
|
23
25
|
# stree-ignore
|
24
26
|
t3.when_rendering_to_lines do |t4|
|
25
|
-
|
26
|
-
|
27
|
+
t4.add_text ' {'
|
28
|
+
end
|
27
29
|
end
|
28
30
|
|
29
31
|
# stree-ignore
|
30
32
|
t2.when_rendering_to_string do |t3|
|
31
|
-
|
32
|
-
|
33
|
+
t3.add_text ' '
|
34
|
+
end
|
33
35
|
|
34
36
|
# stree-ignore
|
35
37
|
t2.nested do |t3|
|
36
|
-
|
37
|
-
|
38
|
+
t3.insert_hash_inspection_of doubled_methods
|
39
|
+
end
|
38
40
|
|
39
41
|
t2.as_lines_when_rendering_to_lines(
|
40
42
|
collection_bookend: :close
|
41
43
|
) do |t3|
|
42
44
|
# stree-ignore
|
43
45
|
t3.when_rendering_to_lines do |t4|
|
44
|
-
|
45
|
-
|
46
|
+
t4.add_text '}'
|
47
|
+
end
|
46
48
|
|
47
|
-
t3.add_text
|
49
|
+
t3.add_text '>'
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
@@ -63,26 +65,26 @@ module SuperDiff
|
|
63
65
|
def inspected_class
|
64
66
|
case object
|
65
67
|
when ::RSpec::Mocks::InstanceVerifyingDouble
|
66
|
-
|
68
|
+
'InstanceDouble'
|
67
69
|
when ::RSpec::Mocks::ClassVerifyingDouble
|
68
|
-
|
70
|
+
'ClassDouble'
|
69
71
|
when ::RSpec::Mocks::ObjectVerifyingDouble
|
70
|
-
|
72
|
+
'ObjectDouble'
|
71
73
|
else
|
72
|
-
|
74
|
+
'Double'
|
73
75
|
end
|
74
76
|
end
|
75
77
|
|
76
78
|
def inspected_name
|
77
|
-
if object.instance_variable_get(
|
78
|
-
object.instance_variable_get(
|
79
|
+
if object.instance_variable_get('@name')
|
80
|
+
object.instance_variable_get('@name').inspect
|
79
81
|
else
|
80
|
-
|
82
|
+
'(anonymous)'
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
84
86
|
def doubled_methods
|
85
|
-
@
|
87
|
+
@doubled_methods ||=
|
86
88
|
doubled_method_names.reduce({}) do |hash, key|
|
87
89
|
hash.merge(key => object.public_send(key))
|
88
90
|
end
|
@@ -91,7 +93,7 @@ module SuperDiff
|
|
91
93
|
def doubled_method_names
|
92
94
|
object
|
93
95
|
.__send__(:__mock_proxy)
|
94
|
-
.instance_variable_get(
|
96
|
+
.instance_variable_get('@method_doubles')
|
95
97
|
.keys
|
96
98
|
end
|
97
99
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module InspectionTreeBuilders
|
@@ -11,10 +13,10 @@ module SuperDiff
|
|
11
13
|
Core::InspectionTree.new do |t1|
|
12
14
|
# stree-ignore
|
13
15
|
t1.as_lines_when_rendering_to_lines(
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
collection_bookend: :open
|
17
|
+
) do |t2|
|
18
|
+
t2.add_text '#<a hash including ('
|
19
|
+
end
|
18
20
|
|
19
21
|
t1.nested do |t2|
|
20
22
|
if SuperDiff::RSpec.a_hash_including_something?(object)
|
@@ -28,10 +30,10 @@ module SuperDiff
|
|
28
30
|
|
29
31
|
# stree-ignore
|
30
32
|
t1.as_lines_when_rendering_to_lines(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
collection_bookend: :close
|
34
|
+
) do |t2|
|
35
|
+
t2.add_text ')>'
|
36
|
+
end
|
35
37
|
end
|
36
38
|
end
|
37
39
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SuperDiff
|
2
4
|
module RSpec
|
3
5
|
module InspectionTreeBuilders
|
@@ -10,22 +12,22 @@ module SuperDiff
|
|
10
12
|
Core::InspectionTree.new do |t1|
|
11
13
|
# stree-ignore
|
12
14
|
t1.as_lines_when_rendering_to_lines(
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
collection_bookend: :open
|
16
|
+
) do |t2|
|
17
|
+
t2.add_text '#<an object having attributes ('
|
18
|
+
end
|
17
19
|
|
18
20
|
# stree-ignore
|
19
21
|
t1.nested do |t2|
|
20
|
-
|
21
|
-
|
22
|
+
t2.insert_hash_inspection_of(object.expected)
|
23
|
+
end
|
22
24
|
|
23
25
|
# stree-ignore
|
24
26
|
t1.as_lines_when_rendering_to_lines(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
collection_bookend: :close
|
28
|
+
) do |t2|
|
29
|
+
t2.add_text ')>'
|
30
|
+
end
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|