super_diff 0.9.0 → 0.10.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.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +65 -26
  3. data/lib/super_diff/active_record/differs/active_record_relation.rb +1 -2
  4. data/lib/super_diff/active_record/differs.rb +1 -1
  5. data/lib/super_diff/active_record/object_inspection/inspection_tree_builders/active_record_model.rb +5 -13
  6. data/lib/super_diff/active_record/object_inspection/inspection_tree_builders/active_record_relation.rb +1 -3
  7. data/lib/super_diff/active_record/object_inspection/inspection_tree_builders.rb +2 -2
  8. data/lib/super_diff/active_record/object_inspection.rb +1 -1
  9. data/lib/super_diff/active_record/operation_tree_builders/active_record_model.rb +1 -2
  10. data/lib/super_diff/active_record/operation_tree_builders/active_record_relation.rb +1 -2
  11. data/lib/super_diff/active_record/operation_tree_builders.rb +2 -2
  12. data/lib/super_diff/active_record/operation_tree_flatteners.rb +1 -1
  13. data/lib/super_diff/active_record/operation_trees.rb +1 -1
  14. data/lib/super_diff/active_record.rb +7 -15
  15. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +5 -6
  16. data/lib/super_diff/active_support/differs.rb +1 -1
  17. data/lib/super_diff/active_support/object_inspection/inspection_tree_builders/hash_with_indifferent_access.rb +3 -9
  18. data/lib/super_diff/active_support/object_inspection/inspection_tree_builders.rb +1 -1
  19. data/lib/super_diff/active_support/object_inspection.rb +1 -1
  20. data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +5 -6
  21. data/lib/super_diff/active_support/operation_tree_builders.rb +1 -1
  22. data/lib/super_diff/active_support/operation_tree_flatteners.rb +1 -1
  23. data/lib/super_diff/active_support/operation_trees.rb +1 -1
  24. data/lib/super_diff/active_support.rb +6 -11
  25. data/lib/super_diff/colorized_document_extensions.rb +2 -4
  26. data/lib/super_diff/configuration.rb +14 -8
  27. data/lib/super_diff/csi/color.rb +4 -4
  28. data/lib/super_diff/csi/colorized_document.rb +12 -16
  29. data/lib/super_diff/csi/document.rb +8 -19
  30. data/lib/super_diff/csi/eight_bit_color.rb +19 -19
  31. data/lib/super_diff/csi/four_bit_color.rb +82 -31
  32. data/lib/super_diff/csi/twenty_four_bit_color.rb +12 -11
  33. data/lib/super_diff/csi/uncolorized_document.rb +2 -6
  34. data/lib/super_diff/csi.rb +10 -14
  35. data/lib/super_diff/diff_formatters/collection.rb +35 -41
  36. data/lib/super_diff/differs/default_object.rb +1 -1
  37. data/lib/super_diff/differs/defaults.rb +1 -1
  38. data/lib/super_diff/differs/main.rb +2 -13
  39. data/lib/super_diff/equality_matchers/array.rb +10 -12
  40. data/lib/super_diff/equality_matchers/base.rb +1 -1
  41. data/lib/super_diff/equality_matchers/default.rb +2 -4
  42. data/lib/super_diff/equality_matchers/defaults.rb +1 -1
  43. data/lib/super_diff/equality_matchers/hash.rb +10 -12
  44. data/lib/super_diff/equality_matchers/multiline_string.rb +11 -13
  45. data/lib/super_diff/equality_matchers/primitive.rb +10 -12
  46. data/lib/super_diff/equality_matchers/singleline_string.rb +10 -12
  47. data/lib/super_diff/equality_matchers.rb +1 -1
  48. data/lib/super_diff/errors.rb +3 -3
  49. data/lib/super_diff/gem_version.rb +3 -3
  50. data/lib/super_diff/helpers.rb +10 -10
  51. data/lib/super_diff/implementation_checks.rb +2 -2
  52. data/lib/super_diff/line.rb +3 -3
  53. data/lib/super_diff/object_inspection/inspection_tree.rb +46 -60
  54. data/lib/super_diff/object_inspection/inspection_tree_builders/array.rb +2 -6
  55. data/lib/super_diff/object_inspection/inspection_tree_builders/custom_object.rb +3 -9
  56. data/lib/super_diff/object_inspection/inspection_tree_builders/default_object.rb +5 -14
  57. data/lib/super_diff/object_inspection/inspection_tree_builders/defaults.rb +1 -1
  58. data/lib/super_diff/object_inspection/inspection_tree_builders/hash.rb +4 -12
  59. data/lib/super_diff/object_inspection/inspection_tree_builders/time_like.rb +6 -23
  60. data/lib/super_diff/object_inspection/inspection_tree_builders.rb +9 -9
  61. data/lib/super_diff/object_inspection/nodes/as_lines_when_rendering_to_lines.rb +8 -20
  62. data/lib/super_diff/object_inspection/nodes/as_prefix_when_rendering_to_lines.rb +1 -5
  63. data/lib/super_diff/object_inspection/nodes/as_prelude_when_rendering_to_lines.rb +1 -5
  64. data/lib/super_diff/object_inspection/nodes/as_single_line.rb +3 -7
  65. data/lib/super_diff/object_inspection/nodes/base.rb +9 -14
  66. data/lib/super_diff/object_inspection/nodes/inspection.rb +26 -34
  67. data/lib/super_diff/object_inspection/nodes/nesting.rb +1 -1
  68. data/lib/super_diff/object_inspection/nodes/only_when.rb +2 -6
  69. data/lib/super_diff/object_inspection/nodes/text.rb +1 -5
  70. data/lib/super_diff/object_inspection/nodes/when_empty.rb +2 -6
  71. data/lib/super_diff/object_inspection/nodes/when_non_empty.rb +2 -6
  72. data/lib/super_diff/object_inspection/nodes/when_rendering_to_lines.rb +1 -1
  73. data/lib/super_diff/object_inspection/nodes/when_rendering_to_string.rb +1 -5
  74. data/lib/super_diff/object_inspection/nodes.rb +7 -7
  75. data/lib/super_diff/object_inspection.rb +3 -3
  76. data/lib/super_diff/operation_tree_builders/array.rb +12 -11
  77. data/lib/super_diff/operation_tree_builders/base.rb +17 -15
  78. data/lib/super_diff/operation_tree_builders/custom_object.rb +8 -6
  79. data/lib/super_diff/operation_tree_builders/default_object.rb +29 -21
  80. data/lib/super_diff/operation_tree_builders/hash.rb +23 -24
  81. data/lib/super_diff/operation_tree_builders/main.rb +4 -11
  82. data/lib/super_diff/operation_tree_builders/multiline_string.rb +3 -3
  83. data/lib/super_diff/operation_tree_builders/time_like.rb +1 -11
  84. data/lib/super_diff/operation_tree_builders.rb +1 -1
  85. data/lib/super_diff/operation_tree_flatteners/base.rb +1 -5
  86. data/lib/super_diff/operation_tree_flatteners/collection.rb +13 -16
  87. data/lib/super_diff/operation_tree_flatteners/default_object.rb +1 -2
  88. data/lib/super_diff/operation_tree_flatteners/hash.rb +2 -10
  89. data/lib/super_diff/operation_tree_flatteners/multiline_string.rb +2 -1
  90. data/lib/super_diff/operation_tree_flatteners.rb +3 -3
  91. data/lib/super_diff/operation_trees/base.rb +3 -5
  92. data/lib/super_diff/operation_trees/default_object.rb +1 -3
  93. data/lib/super_diff/operations/binary_operation.rb +2 -2
  94. data/lib/super_diff/operations/unary_operation.rb +1 -1
  95. data/lib/super_diff/rails.rb +2 -1
  96. data/lib/super_diff/recursion_guard.rb +5 -4
  97. data/lib/super_diff/rspec/augmented_matcher.rb +4 -5
  98. data/lib/super_diff/rspec/differ.rb +6 -13
  99. data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +3 -2
  100. data/lib/super_diff/rspec/differs/collection_including.rb +1 -1
  101. data/lib/super_diff/rspec/differs/hash_including.rb +1 -1
  102. data/lib/super_diff/rspec/differs.rb +3 -3
  103. data/lib/super_diff/rspec/matcher_text_builders/base.rb +13 -15
  104. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +5 -7
  105. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +3 -5
  106. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +1 -5
  107. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +2 -6
  108. data/lib/super_diff/rspec/matcher_text_builders.rb +5 -8
  109. data/lib/super_diff/rspec/matcher_text_template.rb +13 -16
  110. data/lib/super_diff/rspec/monkey_patches.rb +122 -116
  111. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/collection_including.rb +8 -6
  112. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/double.rb +11 -16
  113. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/hash_including.rb +2 -1
  114. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/instance_of.rb +8 -6
  115. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/kind_of.rb +8 -6
  116. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders.rb +9 -9
  117. data/lib/super_diff/rspec/object_inspection.rb +1 -1
  118. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +11 -10
  119. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +7 -6
  120. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +11 -10
  121. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +22 -17
  122. data/lib/super_diff/rspec/operation_tree_builders.rb +4 -4
  123. data/lib/super_diff/rspec.rb +11 -13
  124. data/lib/super_diff/tiered_lines_elider.rb +87 -115
  125. data/lib/super_diff/tiered_lines_formatter.rb +5 -9
  126. data/lib/super_diff/version.rb +1 -1
  127. data/lib/super_diff.rb +4 -9
  128. data/spec/examples.txt +493 -485
  129. data/spec/integration/rails/active_record_spec.rb +3 -1
  130. data/spec/integration/rails/engines_spec.rb +20 -0
  131. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +3 -1
  132. data/spec/integration/rspec/be_falsey_matcher_spec.rb +40 -35
  133. data/spec/integration/rspec/be_matcher_spec.rb +360 -320
  134. data/spec/integration/rspec/be_nil_matcher_spec.rb +38 -34
  135. data/spec/integration/rspec/be_predicate_matcher_spec.rb +376 -359
  136. data/spec/integration/rspec/be_truthy_matcher_spec.rb +38 -33
  137. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +242 -239
  138. data/spec/integration/rspec/eq_matcher_spec.rb +595 -557
  139. data/spec/integration/rspec/have_attributes_matcher_spec.rb +294 -286
  140. data/spec/integration/rspec/have_predicate_matcher_spec.rb +291 -297
  141. data/spec/integration/rspec/include_matcher_spec.rb +317 -215
  142. data/spec/integration/rspec/match_array_matcher_spec.rb +276 -273
  143. data/spec/integration/rspec/match_matcher_spec.rb +847 -834
  144. data/spec/integration/rspec/raise_error_matcher_spec.rb +468 -453
  145. data/spec/integration/rspec/respond_to_matcher_spec.rb +702 -697
  146. data/spec/integration/rspec/third_party_matcher_spec.rb +142 -138
  147. data/spec/integration/rspec/unhandled_errors_spec.rb +88 -84
  148. data/spec/spec_helper.rb +17 -20
  149. data/spec/support/command_runner.rb +34 -57
  150. data/spec/support/integration/helpers.rb +35 -28
  151. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +28 -23
  152. data/spec/support/integration/test_programs/base.rb +12 -17
  153. data/spec/support/integration/test_programs/plain.rb +6 -0
  154. data/spec/support/integration/test_programs/rspec_active_record.rb +4 -1
  155. data/spec/support/integration/test_programs/rspec_active_support.rb +4 -1
  156. data/spec/support/integration/test_programs/rspec_rails.rb +4 -1
  157. data/spec/support/integration/test_programs/rspec_rails_engine.rb +30 -0
  158. data/spec/support/models/active_record/person.rb +6 -4
  159. data/spec/support/models/active_record/shipping_address.rb +9 -10
  160. data/spec/support/models/customer.rb +2 -4
  161. data/spec/support/models/player.rb +3 -6
  162. data/spec/support/models/shipping_address.rb +4 -13
  163. data/spec/support/shared_examples/active_record.rb +232 -214
  164. data/spec/support/shared_examples/active_support.rb +53 -51
  165. data/spec/support/shared_examples/elided_diffs.rb +405 -381
  166. data/spec/support/shared_examples/hash_with_indifferent_access.rb +424 -388
  167. data/spec/support/shared_examples/key.rb +123 -0
  168. data/spec/support/unit/helpers.rb +1 -3
  169. data/spec/support/unit/matchers/match_output.rb +12 -13
  170. data/spec/unit/active_record/object_inspection_spec.rb +222 -206
  171. data/spec/unit/equality_matchers/main_spec.rb +1049 -984
  172. data/spec/unit/helpers_spec.rb +14 -21
  173. data/spec/unit/operation_tree_flatteners/array_spec.rb +557 -524
  174. data/spec/unit/operation_tree_flatteners/custom_object_spec.rb +619 -601
  175. data/spec/unit/operation_tree_flatteners/default_object_spec.rb +619 -621
  176. data/spec/unit/operation_tree_flatteners/hash_spec.rb +595 -556
  177. data/spec/unit/operation_tree_flatteners/multiline_string_spec.rb +102 -92
  178. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +3 -3
  179. data/spec/unit/rspec/matchers/be_predicate_spec.rb +3 -3
  180. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +1 -1
  181. data/spec/unit/rspec/matchers/have_attributes_spec.rb +1 -1
  182. data/spec/unit/rspec/matchers/have_predicate_spec.rb +2 -2
  183. data/spec/unit/rspec/matchers/include_spec.rb +2 -2
  184. data/spec/unit/rspec/matchers/match_array_spec.rb +2 -2
  185. data/spec/unit/rspec/matchers/raise_error_spec.rb +5 -5
  186. data/spec/unit/rspec/matchers/respond_to_spec.rb +23 -16
  187. data/spec/unit/rspec/object_inspection_spec.rb +349 -324
  188. data/spec/unit/super_diff_spec.rb +1542 -1449
  189. data/spec/unit/tiered_lines_elider_spec.rb +3508 -3536
  190. data/spec/unit/tiered_lines_formatter_spec.rb +54 -116
  191. data/super_diff.gemspec +13 -12
  192. metadata +73 -73
  193. data/spec/tmp/warnings_logger/all_warnings.txt +0 -2
@@ -7,15 +7,15 @@ module SuperDiff
7
7
  STYLES = { insert: :actual, delete: :expected, noop: :plain }.freeze
8
8
 
9
9
  method_object(
10
- [
11
- :open_token!,
12
- :close_token!,
13
- :operation_tree!,
14
- :indent_level!,
15
- :add_comma!,
16
- :collection_prefix!,
17
- :build_item_prefix!,
18
- ],
10
+ %i[
11
+ open_token!
12
+ close_token!
13
+ operation_tree!
14
+ indent_level!
15
+ add_comma!
16
+ collection_prefix!
17
+ build_item_prefix!
18
+ ]
19
19
  )
20
20
 
21
21
  def call
@@ -30,7 +30,7 @@ module SuperDiff
30
30
  [
31
31
  " #{indentation}#{collection_prefix}#{open_token}",
32
32
  *contents,
33
- " #{indentation}#{close_token}#{comma}",
33
+ " #{indentation}#{close_token}#{comma}"
34
34
  ]
35
35
  end
36
36
 
@@ -47,7 +47,7 @@ module SuperDiff
47
47
  def handle_change_operation(operation)
48
48
  SuperDiff::RecursionGuard.guarding_recursion_of(
49
49
  operation.left_collection,
50
- operation.right_collection,
50
+ operation.right_collection
51
51
  ) do |already_seen|
52
52
  if already_seen
53
53
  raise "Infinite recursion!"
@@ -55,7 +55,7 @@ module SuperDiff
55
55
  operation.child_operations.to_diff(
56
56
  indent_level: indent_level + 1,
57
57
  collection_prefix: build_item_prefix.call(operation),
58
- add_comma: operation.should_add_comma_after_displaying?,
58
+ add_comma: operation.should_add_comma_after_displaying?
59
59
  )
60
60
  end
61
61
  end
@@ -64,15 +64,14 @@ module SuperDiff
64
64
  def handle_non_change_operation(operation)
65
65
  icon = ICONS.fetch(operation.name, " ")
66
66
  style_name = STYLES.fetch(operation.name, :normal)
67
- chunk = build_chunk_for(
68
- operation,
69
- prefix: build_item_prefix.call(operation),
70
- icon: icon,
71
- )
72
-
73
- if operation.should_add_comma_after_displaying?
74
- chunk << ","
75
- end
67
+ chunk =
68
+ build_chunk_for(
69
+ operation,
70
+ prefix: build_item_prefix.call(operation),
71
+ icon: icon
72
+ )
73
+
74
+ chunk << "," if operation.should_add_comma_after_displaying?
76
75
 
77
76
  style_chunk(style_name, chunk)
78
77
  end
@@ -82,44 +81,43 @@ module SuperDiff
82
81
  build_chunk_from_string(
83
82
  SuperDiff::RecursionGuard::PLACEHOLDER,
84
83
  prefix: build_item_prefix.call(operation),
85
- icon: icon,
84
+ icon: icon
86
85
  )
87
86
  else
88
87
  build_chunk_by_inspecting(
89
88
  operation.value,
90
89
  prefix: build_item_prefix.call(operation),
91
- icon: icon,
90
+ icon: icon
92
91
  )
93
92
  end
94
93
  end
95
94
 
96
95
  def build_chunk_by_inspecting(value, prefix:, icon:)
97
- inspection = SuperDiff.inspect_object(
98
- value,
99
- as_single_line: false,
100
- )
96
+ inspection = SuperDiff.inspect_object(value, as_single_line: false)
101
97
  build_chunk_from_string(inspection, prefix: prefix, icon: icon)
102
98
  end
103
99
 
104
100
  def build_chunk_from_string(value, prefix:, icon:)
105
- value.split("\n").
106
- map.with_index { |line, index|
101
+ value
102
+ .split("\n")
103
+ .map
104
+ .with_index do |line, index|
107
105
  [
108
106
  icon,
109
107
  " ",
110
108
  indentation(offset: 1),
111
109
  (index == 0 ? prefix : ""),
112
- line,
110
+ line
113
111
  ].join
114
- }.
115
- join("\n")
112
+ end
113
+ .join("\n")
116
114
  end
117
115
 
118
116
  def style_chunk(style_name, chunk)
119
- chunk.
120
- split("\n").
121
- map { |line| Helpers.style(style_name, line) }.
122
- join("\n")
117
+ chunk
118
+ .split("\n")
119
+ .map { |line| Helpers.style(style_name, line) }
120
+ .join("\n")
123
121
  end
124
122
 
125
123
  def indentation(offset: 0)
@@ -127,11 +125,7 @@ module SuperDiff
127
125
  end
128
126
 
129
127
  def comma
130
- if add_comma?
131
- ","
132
- else
133
- ""
134
- end
128
+ add_comma? ? "," : ""
135
129
  end
136
130
  end
137
131
  end
@@ -11,7 +11,7 @@ module SuperDiff
11
11
  OperationTreeBuilders::Main.call(
12
12
  expected: expected,
13
13
  actual: actual,
14
- all_or_nothing: true,
14
+ all_or_nothing: true
15
15
  )
16
16
  end
17
17
  end
@@ -6,7 +6,7 @@ module SuperDiff
6
6
  TimeLike,
7
7
  MultilineString,
8
8
  CustomObject,
9
- DefaultObject,
9
+ DefaultObject
10
10
  ].freeze
11
11
  end
12
12
  end
@@ -3,14 +3,7 @@ module SuperDiff
3
3
  class Main
4
4
  extend AttrExtras.mixin
5
5
 
6
- method_object(
7
- :expected,
8
- :actual,
9
- [
10
- indent_level: 0,
11
- omit_empty: false,
12
- ],
13
- )
6
+ method_object(:expected, :actual, [indent_level: 0, omit_empty: false])
14
7
 
15
8
  def call
16
9
  if resolved_class
@@ -31,11 +24,7 @@ module SuperDiff
31
24
  def available_classes
32
25
  classes = SuperDiff.configuration.extra_differ_classes + DEFAULTS
33
26
 
34
- if omit_empty?
35
- classes
36
- else
37
- classes + [Empty]
38
- end
27
+ omit_empty? ? classes : classes + [Empty]
39
28
  end
40
29
  end
41
30
  end
@@ -10,19 +10,17 @@ module SuperDiff
10
10
  Differing arrays.
11
11
 
12
12
  #{
13
- Helpers.style(
14
- :expected,
15
- "Expected: " +
16
- SuperDiff.inspect_object(expected, as_lines: false),
17
- )
18
- }
13
+ Helpers.style(
14
+ :expected,
15
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
16
+ )
17
+ }
19
18
  #{
20
- Helpers.style(
21
- :actual,
22
- " Actual: " +
23
- SuperDiff.inspect_object(actual, as_lines: false),
24
- )
25
- }
19
+ Helpers.style(
20
+ :actual,
21
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
22
+ )
23
+ }
26
24
 
27
25
  Diff:
28
26
 
@@ -12,7 +12,7 @@ module SuperDiff
12
12
  :expected!,
13
13
  :actual!,
14
14
  extra_operation_tree_builder_classes: [],
15
- extra_diff_formatter_classes: [],
15
+ extra_diff_formatter_classes: []
16
16
  ]
17
17
  )
18
18
 
@@ -20,16 +20,14 @@ module SuperDiff
20
20
  def expected_line
21
21
  Helpers.style(
22
22
  :expected,
23
- "Expected: " +
24
- SuperDiff.inspect_object(expected, as_lines: false),
23
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
25
24
  )
26
25
  end
27
26
 
28
27
  def actual_line
29
28
  Helpers.style(
30
29
  :actual,
31
- " Actual: " +
32
- SuperDiff.inspect_object(actual, as_lines: false),
30
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
33
31
  )
34
32
  end
35
33
 
@@ -6,7 +6,7 @@ module SuperDiff
6
6
  Hash,
7
7
  MultilineString,
8
8
  SinglelineString,
9
- Default,
9
+ Default
10
10
  ].freeze
11
11
  end
12
12
  end
@@ -10,19 +10,17 @@ module SuperDiff
10
10
  Differing hashes.
11
11
 
12
12
  #{
13
- Helpers.style(
14
- :expected,
15
- "Expected: " +
16
- SuperDiff.inspect_object(expected, as_lines: false),
17
- )
18
- }
13
+ Helpers.style(
14
+ :expected,
15
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
16
+ )
17
+ }
19
18
  #{
20
- Helpers.style(
21
- :actual,
22
- " Actual: " +
23
- SuperDiff.inspect_object(actual, as_lines: false),
24
- )
25
- }
19
+ Helpers.style(
20
+ :actual,
21
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
22
+ )
23
+ }
26
24
 
27
25
  Diff:
28
26
 
@@ -10,20 +10,18 @@ module SuperDiff
10
10
  Differing strings.
11
11
 
12
12
  #{
13
- # TODO: This whole thing should not be red or green, just the values
14
- Helpers.style(
15
- :expected,
16
- "Expected: " +
17
- SuperDiff.inspect_object(expected, as_lines: false),
18
- )
19
- }
13
+ # TODO: This whole thing should not be red or green, just the values
14
+ Helpers.style(
15
+ :expected,
16
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
17
+ )
18
+ }
20
19
  #{
21
- Helpers.style(
22
- :actual,
23
- " Actual: " +
24
- SuperDiff.inspect_object(actual, as_lines: false),
25
- )
26
- }
20
+ Helpers.style(
21
+ :actual,
22
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
23
+ )
24
+ }
27
25
 
28
26
  Diff:
29
27
 
@@ -11,19 +11,17 @@ module SuperDiff
11
11
  Differing #{Helpers.plural_type_for(actual)}.
12
12
 
13
13
  #{
14
- Helpers.style(
15
- :expected,
16
- "Expected: " +
17
- SuperDiff.inspect_object(expected, as_lines: false),
18
- )
19
- }
14
+ Helpers.style(
15
+ :expected,
16
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
17
+ )
18
+ }
20
19
  #{
21
- Helpers.style(
22
- :actual,
23
- " Actual: " +
24
- SuperDiff.inspect_object(actual, as_lines: false),
25
- )
26
- }
20
+ Helpers.style(
21
+ :actual,
22
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
23
+ )
24
+ }
27
25
  OUTPUT
28
26
  end
29
27
  end
@@ -10,19 +10,17 @@ module SuperDiff
10
10
  Differing strings.
11
11
 
12
12
  #{
13
- Helpers.style(
14
- :expected,
15
- "Expected: " +
16
- SuperDiff.inspect_object(expected, as_lines: false),
17
- )
18
- }
13
+ Helpers.style(
14
+ :expected,
15
+ "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
16
+ )
17
+ }
19
18
  #{
20
- Helpers.style(
21
- :actual,
22
- " Actual: " +
23
- SuperDiff.inspect_object(actual, as_lines: false),
24
- )
25
- }
19
+ Helpers.style(
20
+ :actual,
21
+ " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
22
+ )
23
+ }
26
24
  OUTPUT
27
25
  end
28
26
  end
@@ -9,7 +9,7 @@ module SuperDiff
9
9
  autoload :Primitive, "super_diff/equality_matchers/primitive"
10
10
  autoload(
11
11
  :SinglelineString,
12
- "super_diff/equality_matchers/singleline_string",
12
+ "super_diff/equality_matchers/singleline_string"
13
13
  )
14
14
  end
15
15
  end
@@ -2,15 +2,15 @@ module SuperDiff
2
2
  module Errors
3
3
  autoload(
4
4
  :NoDiffFormatterAvailableError,
5
- "super_diff/errors/no_diff_formatter_available_error",
5
+ "super_diff/errors/no_diff_formatter_available_error"
6
6
  )
7
7
  autoload(
8
8
  :NoDifferAvailableError,
9
- "super_diff/errors/no_differ_available_error",
9
+ "super_diff/errors/no_differ_available_error"
10
10
  )
11
11
  autoload(
12
12
  :NoOperationTreeBuilderAvailableError,
13
- "super_diff/errors/no_operation_tree_builder_available_error",
13
+ "super_diff/errors/no_operation_tree_builder_available_error"
14
14
  )
15
15
  end
16
16
  end
@@ -37,9 +37,9 @@ module SuperDiff
37
37
  attr_reader :version
38
38
 
39
39
  def compare?(operator, other_version)
40
- Gem::Requirement.
41
- new("#{operator} #{other_version}").
42
- satisfied_by?(version)
40
+ Gem::Requirement.new("#{operator} #{other_version}").satisfied_by?(
41
+ version
42
+ )
43
43
  end
44
44
  end
45
45
  end
@@ -24,10 +24,14 @@ module SuperDiff
24
24
 
25
25
  def plural_type_for(value)
26
26
  case value
27
- when Numeric then "numbers"
28
- when String then "strings"
29
- when Symbol then "symbols"
30
- else "objects"
27
+ when Numeric
28
+ "numbers"
29
+ when String
30
+ "strings"
31
+ when Symbol
32
+ "symbols"
33
+ else
34
+ "objects"
31
35
  end
32
36
  end
33
37
 
@@ -37,7 +41,7 @@ module SuperDiff
37
41
 
38
42
  def ruby_version_matches?(version_string)
39
43
  Gem::Requirement.new(version_string).satisfied_by?(
40
- Gem::Version.new(RUBY_VERSION),
44
+ Gem::Version.new(RUBY_VERSION)
41
45
  )
42
46
  end
43
47
 
@@ -53,11 +57,7 @@ module SuperDiff
53
57
  def object_address_for(object)
54
58
  # Sources: <https://bugs.ruby-lang.org/issues/15408> and <https://bugs.ruby-lang.org/issues/15626#Object-ID>
55
59
  json = JSON.parse(ObjectSpace.dump(object))
56
- if json.is_a?(Hash)
57
- "0x%016x" % Integer(json["address"], 16)
58
- else
59
- ""
60
- end
60
+ json.is_a?(Hash) ? "0x%016x" % Integer(json["address"], 16) : ""
61
61
  end
62
62
  else
63
63
  def object_address_for(object)
@@ -4,7 +4,7 @@ module SuperDiff
4
4
  raise(
5
5
  NotImplementedError,
6
6
  "#{self.class} must implement ##{caller_locations(1, 1).first.label}",
7
- caller(1),
7
+ caller(1)
8
8
  )
9
9
  end
10
10
 
@@ -12,7 +12,7 @@ module SuperDiff
12
12
  raise(
13
13
  NotImplementedError,
14
14
  "#{self} must implement .#{caller_locations(1, 1).first.label}",
15
- caller(1),
15
+ caller(1)
16
16
  )
17
17
  end
18
18
  end
@@ -15,8 +15,8 @@ module SuperDiff
15
15
  children: [],
16
16
  elided: false,
17
17
  collection_bookend: nil,
18
- complete_bookend: nil,
19
- ],
18
+ complete_bookend: nil
19
+ ]
20
20
  )
21
21
  attr_query :add_comma?
22
22
  attr_query :elided?
@@ -32,7 +32,7 @@ module SuperDiff
32
32
  elided: elided?,
33
33
  collection_bookend: collection_bookend,
34
34
  complete_bookend: complete_bookend,
35
- **overrides,
35
+ **overrides
36
36
  )
37
37
  end
38
38