super_diff 0.12.1 → 0.13.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/basic/inspection_tree_builders/data_object.rb +40 -0
- data/lib/super_diff/basic/inspection_tree_builders/primitive.rb +1 -1
- data/lib/super_diff/basic/inspection_tree_builders.rb +4 -0
- data/lib/super_diff/basic/operation_tree_builders/data_object.rb +18 -0
- data/lib/super_diff/basic/operation_tree_builders.rb +4 -0
- data/lib/super_diff/basic.rb +3 -1
- data/lib/super_diff/core/configuration.rb +13 -9
- data/lib/super_diff/core/helpers.rb +1 -1
- data/lib/super_diff/csi.rb +0 -32
- data/lib/super_diff/equality_matchers/defaults.rb +1 -1
- data/lib/super_diff/version.rb +1 -1
- data/lib/super_diff.rb +1 -2
- data/spec/examples.txt +450 -704
- data/spec/spec_helper.rb +1 -0
- data/spec/support/models/point.rb +7 -0
- data/spec/unit/basic/inspection_tree_builders/data_object_spec.rb +146 -0
- data/spec/unit/basic/operation_tree_builders/data_object_spec.rb +82 -0
- data/spec/unit/core/configuration_no_rspec_spec.rb +58 -0
- data/spec/unit/core/configuration_spec.rb +176 -0
- data/super_diff.gemspec +7 -6
- metadata +22 -10
- data/spec/internal/log/test.log +0 -0
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,146 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
if defined?(Data)
|
4
|
+
RSpec.describe SuperDiff, type: :unit do
|
5
|
+
describe ".inspect_object" do
|
6
|
+
context "given as_lines: false" do
|
7
|
+
subject(:output) do
|
8
|
+
described_class.inspect_object(object, as_lines: false)
|
9
|
+
end
|
10
|
+
|
11
|
+
context "given an anonymous Data object" do
|
12
|
+
let(:object) { Data.define(:x, :y).new(1, 2) }
|
13
|
+
|
14
|
+
it "shows the data" do
|
15
|
+
expect(output).to eq("#<data x: 1, y: 2>")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "given a named Data object" do
|
20
|
+
let(:object) { SuperDiff::Test::Point.new(1, 2) }
|
21
|
+
|
22
|
+
it "shows the data" do
|
23
|
+
expect(output).to eq("#<data SuperDiff::Test::Point x: 1, y: 2>")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "given a Data object that defines #attributes_for_super_diff" do
|
28
|
+
let(:klass) do
|
29
|
+
Data.define(:x, :y) do
|
30
|
+
def attributes_for_super_diff
|
31
|
+
{ beep: :boop }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
let(:object) { klass.new(1, 2) }
|
36
|
+
|
37
|
+
it "uses the custom attributes" do
|
38
|
+
expect(output).to start_with("#<#<Class:0x").and end_with(
|
39
|
+
"beep: :boop>"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "given as_lines: true" do
|
46
|
+
subject(:tiered_lines) do
|
47
|
+
described_class.inspect_object(
|
48
|
+
object,
|
49
|
+
as_lines: true,
|
50
|
+
type: :noop,
|
51
|
+
indentation_level: 1
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
context "given an anonymous Data object" do
|
56
|
+
let(:object) { Data.define(:x, :y).new(1, 2) }
|
57
|
+
|
58
|
+
it "shows the data" do
|
59
|
+
expect(tiered_lines).to match(
|
60
|
+
[
|
61
|
+
an_object_having_attributes(
|
62
|
+
value: "#<data {",
|
63
|
+
collection_bookend: :open
|
64
|
+
),
|
65
|
+
an_object_having_attributes(
|
66
|
+
prefix: "x: ",
|
67
|
+
value: "1",
|
68
|
+
add_comma: true
|
69
|
+
),
|
70
|
+
an_object_having_attributes(
|
71
|
+
prefix: "y: ",
|
72
|
+
value: "2",
|
73
|
+
add_comma: false
|
74
|
+
),
|
75
|
+
an_object_having_attributes(
|
76
|
+
value: "}>",
|
77
|
+
collection_bookend: :close
|
78
|
+
)
|
79
|
+
]
|
80
|
+
)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "given a named Data object" do
|
85
|
+
let(:object) { SuperDiff::Test::Point.new(1, 2) }
|
86
|
+
|
87
|
+
it "shows the data" do
|
88
|
+
expect(tiered_lines).to match(
|
89
|
+
[
|
90
|
+
an_object_having_attributes(
|
91
|
+
value: "#<data SuperDiff::Test::Point {",
|
92
|
+
collection_bookend: :open
|
93
|
+
),
|
94
|
+
an_object_having_attributes(
|
95
|
+
prefix: "x: ",
|
96
|
+
value: "1",
|
97
|
+
add_comma: true
|
98
|
+
),
|
99
|
+
an_object_having_attributes(
|
100
|
+
prefix: "y: ",
|
101
|
+
value: "2",
|
102
|
+
add_comma: false
|
103
|
+
),
|
104
|
+
an_object_having_attributes(
|
105
|
+
value: "}>",
|
106
|
+
collection_bookend: :close
|
107
|
+
)
|
108
|
+
]
|
109
|
+
)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "given a Data object that defines #attributes_for_super_diff" do
|
114
|
+
let(:klass) do
|
115
|
+
Data.define(:x, :y) do
|
116
|
+
def attributes_for_super_diff
|
117
|
+
{ beep: :boop }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
let(:object) { klass.new(1, 2) }
|
122
|
+
|
123
|
+
it "uses the custom attributes" do
|
124
|
+
expect(tiered_lines).to match(
|
125
|
+
[
|
126
|
+
an_object_having_attributes(
|
127
|
+
value: /\A#<#<Class:0x.*> {/,
|
128
|
+
collection_bookend: :open
|
129
|
+
),
|
130
|
+
an_object_having_attributes(
|
131
|
+
prefix: "beep: ",
|
132
|
+
value: ":boop",
|
133
|
+
add_comma: false
|
134
|
+
),
|
135
|
+
an_object_having_attributes(
|
136
|
+
value: "}>",
|
137
|
+
collection_bookend: :close
|
138
|
+
)
|
139
|
+
]
|
140
|
+
)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
if defined?(Data)
|
4
|
+
RSpec.describe SuperDiff, type: :unit do
|
5
|
+
describe ".diff" do
|
6
|
+
subject(:diff) { described_class.diff(a, b) }
|
7
|
+
|
8
|
+
context "when given two Data objects of the same class" do
|
9
|
+
let(:a) { SuperDiff::Test::Point.new(1, 2) }
|
10
|
+
let(:b) { SuperDiff::Test::Point.new(1, 3) }
|
11
|
+
|
12
|
+
it "diffs their member attributes" do
|
13
|
+
expected_output =
|
14
|
+
SuperDiff::Core::Helpers
|
15
|
+
.style(color_enabled: true) do
|
16
|
+
plain_line " #<SuperDiff::Test::Point {"
|
17
|
+
plain_line " x: 1,"
|
18
|
+
expected_line "- y: 2"
|
19
|
+
actual_line "+ y: 3"
|
20
|
+
plain_line " }>"
|
21
|
+
end
|
22
|
+
.to_s
|
23
|
+
.chomp
|
24
|
+
|
25
|
+
expect(diff).to eq(expected_output)
|
26
|
+
end
|
27
|
+
|
28
|
+
context "when the Data class defines #attributes_for_super_diff" do
|
29
|
+
let(:klass) do
|
30
|
+
Class.new(Data.define(:attribute)) do
|
31
|
+
def self.to_s = "TestClass"
|
32
|
+
|
33
|
+
def attributes_for_super_diff
|
34
|
+
{ attribute: :does_not_matter }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:a) { klass.new(1) }
|
40
|
+
let(:b) { klass.new(2) }
|
41
|
+
|
42
|
+
it "diffs their member attributes" do
|
43
|
+
expected_output =
|
44
|
+
SuperDiff::Core::Helpers
|
45
|
+
.style(color_enabled: true) do
|
46
|
+
plain_line " #<TestClass {"
|
47
|
+
expected_line "- attribute: 1"
|
48
|
+
actual_line "+ attribute: 2"
|
49
|
+
plain_line " }>"
|
50
|
+
end
|
51
|
+
.to_s
|
52
|
+
.chomp
|
53
|
+
|
54
|
+
expect(diff).to eq(expected_output)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "when given two Data objects of different classes" do
|
60
|
+
let(:a) { SuperDiff::Test::Point.new(1, 2) }
|
61
|
+
let(:b) { Data.define(:one, :two).new(1, 2) }
|
62
|
+
|
63
|
+
it "raises" do
|
64
|
+
expect { SuperDiff.diff(a, b) }.to raise_error(
|
65
|
+
SuperDiff::Core::NoDifferAvailableError
|
66
|
+
)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "when given a Data object and a hash" do
|
71
|
+
let(:a) { Data.define(:one, :two).new(1, 2) }
|
72
|
+
let(:b) { { one: 1, two: 2 } }
|
73
|
+
|
74
|
+
it "raises" do
|
75
|
+
expect { SuperDiff.diff(a, b) }.to raise_error(
|
76
|
+
SuperDiff::Core::NoDifferAvailableError
|
77
|
+
)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require "delegate"
|
2
|
+
require "super_diff"
|
3
|
+
|
4
|
+
class FakeTTYDecorator < SimpleDelegator
|
5
|
+
def initialize(obj, is_tty:)
|
6
|
+
super(obj)
|
7
|
+
@is_tty = is_tty
|
8
|
+
end
|
9
|
+
|
10
|
+
def isatty = @is_tty
|
11
|
+
def tty? = isatty
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.describe SuperDiff::Core::Configuration, with_superdiff_rspec: false do
|
15
|
+
describe "#color_enabled?" do
|
16
|
+
it "is true when stdout is a TTY" do
|
17
|
+
original_stdout = $stdout
|
18
|
+
color_enabled = nil
|
19
|
+
begin
|
20
|
+
$stdout = FakeTTYDecorator.new(StringIO.new, is_tty: true)
|
21
|
+
color_enabled = SuperDiff.configuration.color_enabled?
|
22
|
+
ensure
|
23
|
+
$stdout = original_stdout
|
24
|
+
end
|
25
|
+
expect(color_enabled).to be(true)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "is false when stdout is not a TTY but we are in CI" do
|
29
|
+
original_stdout = $stdout
|
30
|
+
original_ci = ENV["CI"]
|
31
|
+
color_enabled = nil
|
32
|
+
begin
|
33
|
+
$stdout = FakeTTYDecorator.new(StringIO.new, is_tty: false)
|
34
|
+
ENV["CI"] = "true"
|
35
|
+
color_enabled = SuperDiff.configuration.color_enabled?
|
36
|
+
ensure
|
37
|
+
$stdout = original_stdout
|
38
|
+
ENV["CI"] = original_ci
|
39
|
+
end
|
40
|
+
expect(color_enabled).to be(true)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "is false when stdout is not a TTY and we are not in CI" do
|
44
|
+
original_stdout = $stdout
|
45
|
+
original_ci = ENV["CI"]
|
46
|
+
color_enabled = nil
|
47
|
+
begin
|
48
|
+
$stdout = FakeTTYDecorator.new(StringIO.new, is_tty: false)
|
49
|
+
ENV["CI"] = nil
|
50
|
+
color_enabled = SuperDiff.configuration.color_enabled?
|
51
|
+
ensure
|
52
|
+
$stdout = original_stdout
|
53
|
+
ENV["CI"] = original_ci
|
54
|
+
end
|
55
|
+
expect(color_enabled).to be(false)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,176 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe SuperDiff::Core::Configuration do
|
4
|
+
it "maintains frozen instance variables" do
|
5
|
+
expect(described_class.new.instance_variables).to all(be_frozen)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".new" do
|
9
|
+
context "when passed nothing" do
|
10
|
+
subject(:config) { described_class.new }
|
11
|
+
|
12
|
+
it "creates a Configuration object with reasonable defaults" do
|
13
|
+
expect(config.actual_color).to eq(:yellow)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "when passed options" do
|
18
|
+
subject(:config) { described_class.new(actual_color: :cyan) }
|
19
|
+
|
20
|
+
it "overrides the defaults with the provided options" do
|
21
|
+
expect(config.actual_color).to eq(:cyan)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "uses the defaults for other options" do
|
25
|
+
expect(config.border_color).to eq(:blue)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe ".dup" do
|
31
|
+
subject(:duplicated_config) { original_config.dup }
|
32
|
+
|
33
|
+
let(:original_config) { described_class.new(overrides) }
|
34
|
+
let(:in_both) { Class.new }
|
35
|
+
let(:in_duplicated_only) { Class.new }
|
36
|
+
let(:in_original_only) { Class.new }
|
37
|
+
|
38
|
+
let(:overrides) do
|
39
|
+
{
|
40
|
+
extra_diff_formatter_classes: [],
|
41
|
+
extra_differ_classes: [],
|
42
|
+
extra_inspection_tree_builder_classes: [],
|
43
|
+
extra_operation_tree_builder_classes: [],
|
44
|
+
extra_operation_tree_classes: []
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
%i[
|
49
|
+
diff_formatter
|
50
|
+
differ
|
51
|
+
operation_tree_builder
|
52
|
+
operation_tree
|
53
|
+
inspection_tree_builder
|
54
|
+
].each do |object_type|
|
55
|
+
it "duplicates extra #{object_type.to_s.tr("_", " ")} classes" do
|
56
|
+
add_method_name = :"add_extra_#{object_type}_class"
|
57
|
+
get_method_name = :"extra_#{object_type}_classes"
|
58
|
+
|
59
|
+
original_config.send(add_method_name, in_both)
|
60
|
+
expect {
|
61
|
+
duplicated_config.send(get_method_name) << in_duplicated_only
|
62
|
+
}.to raise_error(FrozenError)
|
63
|
+
duplicated_config.send(add_method_name, in_duplicated_only)
|
64
|
+
original_config.send(add_method_name, in_original_only)
|
65
|
+
|
66
|
+
expect(original_config.send(get_method_name)).to include(
|
67
|
+
in_both,
|
68
|
+
in_original_only
|
69
|
+
)
|
70
|
+
expect(original_config.send(get_method_name)).not_to include(
|
71
|
+
in_duplicated_only
|
72
|
+
)
|
73
|
+
|
74
|
+
expect(duplicated_config.send(get_method_name)).to include(
|
75
|
+
in_both,
|
76
|
+
in_duplicated_only
|
77
|
+
)
|
78
|
+
expect(duplicated_config.send(get_method_name)).not_to include(
|
79
|
+
in_original_only
|
80
|
+
)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
%i[
|
86
|
+
diff_formatter
|
87
|
+
differ
|
88
|
+
operation_tree_builder
|
89
|
+
operation_tree
|
90
|
+
inspection_tree_builder
|
91
|
+
].each do |object_type|
|
92
|
+
describe "#add_extra_#{object_type}_classes" do
|
93
|
+
let(:config) { described_class.new }
|
94
|
+
let(:new_class1) { Class.new }
|
95
|
+
let(:new_class2) { Class.new }
|
96
|
+
|
97
|
+
it "appends multiple given classes" do
|
98
|
+
config.send("add_extra_#{object_type}_classes", new_class1, new_class2)
|
99
|
+
expect(config.send("extra_#{object_type}_classes")[-2..]).to eq(
|
100
|
+
[new_class1, new_class2]
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
it "appends a single given class" do
|
105
|
+
config.send("add_extra_#{object_type}_classes", new_class1)
|
106
|
+
expect(config.send("extra_#{object_type}_classes")[-1]).to eq(
|
107
|
+
new_class1
|
108
|
+
)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe "#prepend_extra_#{object_type}_classes" do
|
113
|
+
let(:config) { described_class.new }
|
114
|
+
let(:new_class1) { Class.new }
|
115
|
+
let(:new_class2) { Class.new }
|
116
|
+
|
117
|
+
it "prepends multiple given classes" do
|
118
|
+
config.send(
|
119
|
+
"prepend_extra_#{object_type}_classes",
|
120
|
+
new_class1,
|
121
|
+
new_class2
|
122
|
+
)
|
123
|
+
expect(config.send("extra_#{object_type}_classes")[..1]).to eq(
|
124
|
+
[new_class1, new_class2]
|
125
|
+
)
|
126
|
+
end
|
127
|
+
|
128
|
+
it "prepends a single given class" do
|
129
|
+
config.send("prepend_extra_#{object_type}_classes", new_class1)
|
130
|
+
expect(config.send("extra_#{object_type}_classes")[0]).to eq(new_class1)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "#color_enabled?" do
|
136
|
+
context "when explicitly set" do
|
137
|
+
it "equals what was set" do
|
138
|
+
[true, false].each do |value|
|
139
|
+
SuperDiff.configuration.color_enabled.tap do |original|
|
140
|
+
SuperDiff.configuration.color_enabled = value
|
141
|
+
expect(SuperDiff.configuration.color_enabled?).to be(value)
|
142
|
+
SuperDiff.configuration.color_enabled = original
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
context "when not explicitly set" do
|
149
|
+
context 'when ENV["CI"] is true' do
|
150
|
+
it "is true" do
|
151
|
+
color_enabled = nil
|
152
|
+
ClimateControl.modify(CI: "true") do
|
153
|
+
color_enabled = SuperDiff.configuration.color_enabled?
|
154
|
+
end
|
155
|
+
expect(color_enabled).to be(true)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'when ENV["CI"] is not true' do
|
160
|
+
it "defaults to RSpec's config" do
|
161
|
+
ClimateControl.modify(CI: nil) do
|
162
|
+
%i[automatic on off].each do |value|
|
163
|
+
RSpec.configuration.color_mode.tap do |original|
|
164
|
+
RSpec.configuration.color_mode = value
|
165
|
+
expect(SuperDiff.configuration.color_enabled?).to eq(
|
166
|
+
RSpec.configuration.color_enabled?
|
167
|
+
)
|
168
|
+
RSpec.configuration.color_mode = original
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
data/super_diff.gemspec
CHANGED
@@ -3,9 +3,9 @@ require File.expand_path("lib/super_diff/version", __dir__)
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "super_diff"
|
5
5
|
s.version = SuperDiff::VERSION
|
6
|
-
s.authors = ["Elliot Winkler"]
|
7
|
-
s.email = ["
|
8
|
-
s.homepage = "https://github.com/
|
6
|
+
s.authors = ["Elliot Winkler", "Splitwise, Inc."]
|
7
|
+
s.email = ["oss-community@splitwise.com"]
|
8
|
+
s.homepage = "https://github.com/splitwise/super_diff"
|
9
9
|
s.summary =
|
10
10
|
"A better way to view differences between complex data structures in RSpec."
|
11
11
|
s.license = "MIT"
|
@@ -14,10 +14,11 @@ Gem::Specification.new do |s|
|
|
14
14
|
differences between two data structures of any type.
|
15
15
|
DESC
|
16
16
|
s.metadata = {
|
17
|
-
"bug_tracker_uri" => "https://github.com/
|
17
|
+
"bug_tracker_uri" => "https://github.com/splitwise/super_diff/issues",
|
18
18
|
"changelog_uri" =>
|
19
|
-
"https://github.com/
|
20
|
-
"
|
19
|
+
"https://github.com/splitwise/super_diff/blob/main/CHANGELOG.md",
|
20
|
+
"rubygems_mfa_required" => "true",
|
21
|
+
"source_code_uri" => "https://github.com/splitwise/super_diff"
|
21
22
|
}
|
22
23
|
s.required_ruby_version = ">= 3"
|
23
24
|
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super_diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elliot Winkler
|
8
|
+
- Splitwise, Inc.
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2024-
|
12
|
+
date: 2024-09-23 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: attr_extras
|
@@ -56,7 +57,7 @@ description: |
|
|
56
57
|
SuperDiff is a gem that hooks into RSpec to intelligently display the
|
57
58
|
differences between two data structures of any type.
|
58
59
|
email:
|
59
|
-
-
|
60
|
+
- oss-community@splitwise.com
|
60
61
|
executables: []
|
61
62
|
extensions: []
|
62
63
|
extra_rdoc_files: []
|
@@ -106,6 +107,7 @@ files:
|
|
106
107
|
- lib/super_diff/basic/inspection_tree_builders.rb
|
107
108
|
- lib/super_diff/basic/inspection_tree_builders/array.rb
|
108
109
|
- lib/super_diff/basic/inspection_tree_builders/custom_object.rb
|
110
|
+
- lib/super_diff/basic/inspection_tree_builders/data_object.rb
|
109
111
|
- lib/super_diff/basic/inspection_tree_builders/date_like.rb
|
110
112
|
- lib/super_diff/basic/inspection_tree_builders/default_object.rb
|
111
113
|
- lib/super_diff/basic/inspection_tree_builders/hash.rb
|
@@ -114,6 +116,7 @@ files:
|
|
114
116
|
- lib/super_diff/basic/operation_tree_builders.rb
|
115
117
|
- lib/super_diff/basic/operation_tree_builders/array.rb
|
116
118
|
- lib/super_diff/basic/operation_tree_builders/custom_object.rb
|
119
|
+
- lib/super_diff/basic/operation_tree_builders/data_object.rb
|
117
120
|
- lib/super_diff/basic/operation_tree_builders/date_like.rb
|
118
121
|
- lib/super_diff/basic/operation_tree_builders/default_object.rb
|
119
122
|
- lib/super_diff/basic/operation_tree_builders/hash.rb
|
@@ -264,7 +267,6 @@ files:
|
|
264
267
|
- spec/integration/rspec/respond_to_matcher_spec.rb
|
265
268
|
- spec/integration/rspec/third_party_matcher_spec.rb
|
266
269
|
- spec/integration/rspec/unhandled_errors_spec.rb
|
267
|
-
- spec/internal/log/test.log
|
268
270
|
- spec/spec_helper.rb
|
269
271
|
- spec/support/colorizer.rb
|
270
272
|
- spec/support/command_runner.rb
|
@@ -288,6 +290,7 @@ files:
|
|
288
290
|
- spec/support/models/order.rb
|
289
291
|
- spec/support/models/person.rb
|
290
292
|
- spec/support/models/player.rb
|
293
|
+
- spec/support/models/point.rb
|
291
294
|
- spec/support/models/shipping_address.rb
|
292
295
|
- spec/support/shared_examples/active_record.rb
|
293
296
|
- spec/support/shared_examples/active_support.rb
|
@@ -299,11 +302,15 @@ files:
|
|
299
302
|
- spec/support/unit/matchers/match_output.rb
|
300
303
|
- spec/unit/active_record/object_inspection_spec.rb
|
301
304
|
- spec/unit/active_support/object_inspection_spec.rb
|
305
|
+
- spec/unit/basic/inspection_tree_builders/data_object_spec.rb
|
306
|
+
- spec/unit/basic/operation_tree_builders/data_object_spec.rb
|
302
307
|
- spec/unit/basic/operation_tree_flatteners/array_spec.rb
|
303
308
|
- spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb
|
304
309
|
- spec/unit/basic/operation_tree_flatteners/default_object_spec.rb
|
305
310
|
- spec/unit/basic/operation_tree_flatteners/hash_spec.rb
|
306
311
|
- spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb
|
312
|
+
- spec/unit/core/configuration_no_rspec_spec.rb
|
313
|
+
- spec/unit/core/configuration_spec.rb
|
307
314
|
- spec/unit/core/helpers_spec.rb
|
308
315
|
- spec/unit/core/tiered_lines_elider_spec.rb
|
309
316
|
- spec/unit/core/tiered_lines_formatter_spec.rb
|
@@ -328,13 +335,14 @@ files:
|
|
328
335
|
- spec/unit/rspec/object_inspection_spec.rb
|
329
336
|
- spec/unit/super_diff_spec.rb
|
330
337
|
- super_diff.gemspec
|
331
|
-
homepage: https://github.com/
|
338
|
+
homepage: https://github.com/splitwise/super_diff
|
332
339
|
licenses:
|
333
340
|
- MIT
|
334
341
|
metadata:
|
335
|
-
bug_tracker_uri: https://github.com/
|
336
|
-
changelog_uri: https://github.com/
|
337
|
-
|
342
|
+
bug_tracker_uri: https://github.com/splitwise/super_diff/issues
|
343
|
+
changelog_uri: https://github.com/splitwise/super_diff/blob/main/CHANGELOG.md
|
344
|
+
rubygems_mfa_required: 'true'
|
345
|
+
source_code_uri: https://github.com/splitwise/super_diff
|
338
346
|
post_install_message:
|
339
347
|
rdoc_options: []
|
340
348
|
require_paths:
|
@@ -350,7 +358,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
350
358
|
- !ruby/object:Gem::Version
|
351
359
|
version: '0'
|
352
360
|
requirements: []
|
353
|
-
rubygems_version: 3.
|
361
|
+
rubygems_version: 3.5.18
|
354
362
|
signing_key:
|
355
363
|
specification_version: 4
|
356
364
|
summary: A better way to view differences between complex data structures in RSpec.
|
@@ -378,7 +386,6 @@ test_files:
|
|
378
386
|
- spec/integration/rspec/respond_to_matcher_spec.rb
|
379
387
|
- spec/integration/rspec/third_party_matcher_spec.rb
|
380
388
|
- spec/integration/rspec/unhandled_errors_spec.rb
|
381
|
-
- spec/internal/log/test.log
|
382
389
|
- spec/spec_helper.rb
|
383
390
|
- spec/support/colorizer.rb
|
384
391
|
- spec/support/command_runner.rb
|
@@ -402,6 +409,7 @@ test_files:
|
|
402
409
|
- spec/support/models/order.rb
|
403
410
|
- spec/support/models/person.rb
|
404
411
|
- spec/support/models/player.rb
|
412
|
+
- spec/support/models/point.rb
|
405
413
|
- spec/support/models/shipping_address.rb
|
406
414
|
- spec/support/shared_examples/active_record.rb
|
407
415
|
- spec/support/shared_examples/active_support.rb
|
@@ -413,11 +421,15 @@ test_files:
|
|
413
421
|
- spec/support/unit/matchers/match_output.rb
|
414
422
|
- spec/unit/active_record/object_inspection_spec.rb
|
415
423
|
- spec/unit/active_support/object_inspection_spec.rb
|
424
|
+
- spec/unit/basic/inspection_tree_builders/data_object_spec.rb
|
425
|
+
- spec/unit/basic/operation_tree_builders/data_object_spec.rb
|
416
426
|
- spec/unit/basic/operation_tree_flatteners/array_spec.rb
|
417
427
|
- spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb
|
418
428
|
- spec/unit/basic/operation_tree_flatteners/default_object_spec.rb
|
419
429
|
- spec/unit/basic/operation_tree_flatteners/hash_spec.rb
|
420
430
|
- spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb
|
431
|
+
- spec/unit/core/configuration_no_rspec_spec.rb
|
432
|
+
- spec/unit/core/configuration_spec.rb
|
421
433
|
- spec/unit/core/helpers_spec.rb
|
422
434
|
- spec/unit/core/tiered_lines_elider_spec.rb
|
423
435
|
- spec/unit/core/tiered_lines_formatter_spec.rb
|
data/spec/internal/log/test.log
DELETED
File without changes
|