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.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -19
  3. data/lib/super_diff/active_record/differs/active_record_relation.rb +2 -0
  4. data/lib/super_diff/active_record/differs.rb +3 -1
  5. data/lib/super_diff/active_record/inspection_tree_builders/active_record_model.rb +7 -5
  6. data/lib/super_diff/active_record/inspection_tree_builders/active_record_relation.rb +12 -10
  7. data/lib/super_diff/active_record/inspection_tree_builders.rb +4 -2
  8. data/lib/super_diff/active_record/monkey_patches.rb +4 -2
  9. data/lib/super_diff/active_record/object_inspection.rb +6 -4
  10. data/lib/super_diff/active_record/operation_tree_builders/active_record_model.rb +3 -1
  11. data/lib/super_diff/active_record/operation_tree_builders/active_record_relation.rb +3 -1
  12. data/lib/super_diff/active_record/operation_tree_builders.rb +4 -2
  13. data/lib/super_diff/active_record/operation_tree_flatteners/active_record_relation.rb +4 -2
  14. data/lib/super_diff/active_record/operation_tree_flatteners.rb +3 -1
  15. data/lib/super_diff/active_record/operation_trees/active_record_relation.rb +2 -0
  16. data/lib/super_diff/active_record/operation_trees.rb +3 -1
  17. data/lib/super_diff/active_record.rb +10 -8
  18. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +2 -0
  19. data/lib/super_diff/active_support/differs.rb +3 -1
  20. data/lib/super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access.rb +16 -14
  21. data/lib/super_diff/active_support/inspection_tree_builders/ordered_options.rb +16 -14
  22. data/lib/super_diff/active_support/inspection_tree_builders.rb +4 -2
  23. data/lib/super_diff/active_support/object_inspection.rb +6 -4
  24. data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +6 -4
  25. data/lib/super_diff/active_support/operation_tree_builders.rb +3 -1
  26. data/lib/super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access.rb +4 -2
  27. data/lib/super_diff/active_support/operation_tree_flatteners.rb +3 -1
  28. data/lib/super_diff/active_support/operation_trees/hash_with_indifferent_access.rb +2 -0
  29. data/lib/super_diff/active_support/operation_trees.rb +3 -1
  30. data/lib/super_diff/active_support.rb +8 -6
  31. data/lib/super_diff/basic/diff_formatters/collection.rb +18 -18
  32. data/lib/super_diff/basic/diff_formatters/multiline_string.rb +2 -0
  33. data/lib/super_diff/basic/diff_formatters.rb +4 -2
  34. data/lib/super_diff/basic/differs/array.rb +2 -0
  35. data/lib/super_diff/basic/differs/custom_object.rb +3 -1
  36. data/lib/super_diff/basic/differs/date_like.rb +2 -0
  37. data/lib/super_diff/basic/differs/default_object.rb +3 -1
  38. data/lib/super_diff/basic/differs/hash.rb +2 -0
  39. data/lib/super_diff/basic/differs/multiline_string.rb +2 -0
  40. data/lib/super_diff/basic/differs/time_like.rb +2 -0
  41. data/lib/super_diff/basic/differs.rb +11 -9
  42. data/lib/super_diff/basic/inspection_tree_builders/array.rb +5 -3
  43. data/lib/super_diff/basic/inspection_tree_builders/custom_object.rb +5 -3
  44. data/lib/super_diff/basic/inspection_tree_builders/data_object.rb +42 -0
  45. data/lib/super_diff/basic/inspection_tree_builders/date_like.rb +7 -5
  46. data/lib/super_diff/basic/inspection_tree_builders/default_object.rb +7 -5
  47. data/lib/super_diff/basic/inspection_tree_builders/hash.rb +7 -5
  48. data/lib/super_diff/basic/inspection_tree_builders/primitive.rb +3 -1
  49. data/lib/super_diff/basic/inspection_tree_builders/range_object.rb +19 -0
  50. data/lib/super_diff/basic/inspection_tree_builders/time_like.rb +8 -8
  51. data/lib/super_diff/basic/inspection_tree_builders.rb +18 -8
  52. data/lib/super_diff/basic/operation_tree_builders/array.rb +6 -4
  53. data/lib/super_diff/basic/operation_tree_builders/custom_object.rb +3 -1
  54. data/lib/super_diff/basic/operation_tree_builders/data_object.rb +20 -0
  55. data/lib/super_diff/basic/operation_tree_builders/date_like.rb +2 -0
  56. data/lib/super_diff/basic/operation_tree_builders/default_object.rb +32 -31
  57. data/lib/super_diff/basic/operation_tree_builders/hash.rb +49 -46
  58. data/lib/super_diff/basic/operation_tree_builders/multiline_string.rb +5 -3
  59. data/lib/super_diff/basic/operation_tree_builders/time_like.rb +5 -3
  60. data/lib/super_diff/basic/operation_tree_builders.rb +15 -9
  61. data/lib/super_diff/basic/operation_tree_flatteners/array.rb +4 -2
  62. data/lib/super_diff/basic/operation_tree_flatteners/collection.rb +11 -11
  63. data/lib/super_diff/basic/operation_tree_flatteners/custom_object.rb +5 -3
  64. data/lib/super_diff/basic/operation_tree_flatteners/default_object.rb +6 -5
  65. data/lib/super_diff/basic/operation_tree_flatteners/hash.rb +5 -3
  66. data/lib/super_diff/basic/operation_tree_flatteners/multiline_string.rb +3 -1
  67. data/lib/super_diff/basic/operation_tree_flatteners.rb +8 -6
  68. data/lib/super_diff/basic/operation_trees/array.rb +2 -0
  69. data/lib/super_diff/basic/operation_trees/custom_object.rb +2 -0
  70. data/lib/super_diff/basic/operation_trees/default_object.rb +6 -4
  71. data/lib/super_diff/basic/operation_trees/hash.rb +2 -0
  72. data/lib/super_diff/basic/operation_trees/multiline_string.rb +3 -1
  73. data/lib/super_diff/basic/operation_trees.rb +9 -7
  74. data/lib/super_diff/basic.rb +12 -7
  75. data/lib/super_diff/core/abstract_differ.rb +2 -0
  76. data/lib/super_diff/core/abstract_inspection_tree_builder.rb +2 -0
  77. data/lib/super_diff/core/abstract_operation_tree.rb +4 -2
  78. data/lib/super_diff/core/abstract_operation_tree_builder.rb +15 -18
  79. data/lib/super_diff/core/abstract_operation_tree_flattener.rb +5 -3
  80. data/lib/super_diff/core/binary_operation.rb +3 -1
  81. data/lib/super_diff/core/colorized_document_extensions.rb +2 -0
  82. data/lib/super_diff/core/configuration.rb +23 -43
  83. data/lib/super_diff/core/differ_dispatcher.rb +4 -2
  84. data/lib/super_diff/core/gem_version.rb +2 -0
  85. data/lib/super_diff/core/helpers.rb +14 -12
  86. data/lib/super_diff/core/implementation_checks.rb +6 -2
  87. data/lib/super_diff/core/inspection_tree.rb +38 -38
  88. data/lib/super_diff/core/inspection_tree_builder_dispatcher.rb +5 -5
  89. data/lib/super_diff/core/inspection_tree_nodes/as_lines_when_rendering_to_lines.rb +3 -1
  90. data/lib/super_diff/core/inspection_tree_nodes/as_prefix_when_rendering_to_lines.rb +2 -0
  91. data/lib/super_diff/core/inspection_tree_nodes/as_prelude_when_rendering_to_lines.rb +2 -0
  92. data/lib/super_diff/core/inspection_tree_nodes/as_single_line.rb +2 -0
  93. data/lib/super_diff/core/inspection_tree_nodes/base.rb +9 -9
  94. data/lib/super_diff/core/inspection_tree_nodes/inspection.rb +2 -0
  95. data/lib/super_diff/core/inspection_tree_nodes/nesting.rb +2 -0
  96. data/lib/super_diff/core/inspection_tree_nodes/only_when.rb +5 -1
  97. data/lib/super_diff/core/inspection_tree_nodes/text.rb +2 -0
  98. data/lib/super_diff/core/inspection_tree_nodes/when_empty.rb +3 -1
  99. data/lib/super_diff/core/inspection_tree_nodes/when_non_empty.rb +3 -1
  100. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_lines.rb +3 -1
  101. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_string.rb +2 -0
  102. data/lib/super_diff/core/inspection_tree_nodes.rb +16 -14
  103. data/lib/super_diff/core/line.rb +9 -7
  104. data/lib/super_diff/core/no_differ_available_error.rb +7 -5
  105. data/lib/super_diff/core/no_inspection_tree_builder_available_error.rb +5 -3
  106. data/lib/super_diff/core/no_operation_tree_available_error.rb +4 -2
  107. data/lib/super_diff/core/no_operation_tree_builder_available_error.rb +7 -5
  108. data/lib/super_diff/core/operation_tree_builder_dispatcher.rb +3 -3
  109. data/lib/super_diff/core/operation_tree_finder.rb +8 -8
  110. data/lib/super_diff/core/prefix_for_next_inspection_tree_node.rb +2 -0
  111. data/lib/super_diff/core/prelude_for_next_inspection_tree_node.rb +2 -0
  112. data/lib/super_diff/core/recursion_guard.rb +6 -4
  113. data/lib/super_diff/core/tiered_lines.rb +2 -0
  114. data/lib/super_diff/core/tiered_lines_elider.rb +53 -54
  115. data/lib/super_diff/core/tiered_lines_formatter.rb +6 -4
  116. data/lib/super_diff/core/unary_operation.rb +2 -0
  117. data/lib/super_diff/core.rb +31 -29
  118. data/lib/super_diff/csi/bold_sequence.rb +2 -0
  119. data/lib/super_diff/csi/color.rb +4 -4
  120. data/lib/super_diff/csi/color_sequence_block.rb +3 -1
  121. data/lib/super_diff/csi/colorized_document.rb +7 -9
  122. data/lib/super_diff/csi/document.rb +15 -18
  123. data/lib/super_diff/csi/eight_bit_color.rb +32 -37
  124. data/lib/super_diff/csi/four_bit_color.rb +12 -9
  125. data/lib/super_diff/csi/reset_sequence.rb +2 -0
  126. data/lib/super_diff/csi/twenty_four_bit_color.rb +22 -21
  127. data/lib/super_diff/csi/uncolorized_document.rb +2 -0
  128. data/lib/super_diff/csi.rb +12 -42
  129. data/lib/super_diff/differs.rb +6 -4
  130. data/lib/super_diff/equality_matchers/array.rb +18 -16
  131. data/lib/super_diff/equality_matchers/base.rb +6 -4
  132. data/lib/super_diff/equality_matchers/default.rb +5 -3
  133. data/lib/super_diff/equality_matchers/defaults.rb +3 -1
  134. data/lib/super_diff/equality_matchers/hash.rb +18 -16
  135. data/lib/super_diff/equality_matchers/main.rb +3 -1
  136. data/lib/super_diff/equality_matchers/multiline_string.rb +18 -16
  137. data/lib/super_diff/equality_matchers/primitive.rb +15 -13
  138. data/lib/super_diff/equality_matchers/singleline_string.rb +16 -14
  139. data/lib/super_diff/equality_matchers.rb +11 -9
  140. data/lib/super_diff/errors.rb +4 -2
  141. data/lib/super_diff/object_inspection.rb +17 -15
  142. data/lib/super_diff/operation_tree_builders.rb +6 -4
  143. data/lib/super_diff/operation_tree_flatteners.rb +6 -4
  144. data/lib/super_diff/operation_trees.rb +6 -4
  145. data/lib/super_diff/operations.rb +4 -2
  146. data/lib/super_diff/rails.rb +4 -2
  147. data/lib/super_diff/rspec/augmented_matcher.rb +3 -1
  148. data/lib/super_diff/rspec/differ.rb +16 -7
  149. data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +2 -0
  150. data/lib/super_diff/rspec/differs/collection_including.rb +2 -0
  151. data/lib/super_diff/rspec/differs/hash_including.rb +2 -0
  152. data/lib/super_diff/rspec/differs/object_having_attributes.rb +2 -0
  153. data/lib/super_diff/rspec/differs.rb +6 -4
  154. data/lib/super_diff/rspec/inspection_tree_builders/collection_containing_exactly.rb +12 -10
  155. data/lib/super_diff/rspec/inspection_tree_builders/collection_including.rb +10 -8
  156. data/lib/super_diff/rspec/inspection_tree_builders/double.rb +20 -18
  157. data/lib/super_diff/rspec/inspection_tree_builders/generic_describable_matcher.rb +2 -0
  158. data/lib/super_diff/rspec/inspection_tree_builders/hash_including.rb +10 -8
  159. data/lib/super_diff/rspec/inspection_tree_builders/instance_of.rb +2 -0
  160. data/lib/super_diff/rspec/inspection_tree_builders/kind_of.rb +2 -0
  161. data/lib/super_diff/rspec/inspection_tree_builders/object_having_attributes.rb +12 -10
  162. data/lib/super_diff/rspec/inspection_tree_builders/primitive.rb +2 -0
  163. data/lib/super_diff/rspec/inspection_tree_builders/value_within.rb +6 -4
  164. data/lib/super_diff/rspec/inspection_tree_builders.rb +12 -10
  165. data/lib/super_diff/rspec/matcher_text_builders/base.rb +12 -12
  166. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +19 -17
  167. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +3 -1
  168. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +7 -5
  169. data/lib/super_diff/rspec/matcher_text_builders/match.rb +6 -4
  170. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +5 -3
  171. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +20 -18
  172. data/lib/super_diff/rspec/matcher_text_builders.rb +9 -7
  173. data/lib/super_diff/rspec/matcher_text_template.rb +34 -39
  174. data/lib/super_diff/rspec/monkey_patches.rb +129 -56
  175. data/lib/super_diff/rspec/object_inspection.rb +7 -5
  176. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
  177. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
  178. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
  179. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
  180. data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
  181. data/lib/super_diff/rspec-rails.rb +4 -2
  182. data/lib/super_diff/rspec.rb +27 -14
  183. data/lib/super_diff/version.rb +3 -1
  184. data/lib/super_diff.rb +24 -27
  185. data/super_diff.gemspec +20 -18
  186. metadata +15 -182
  187. data/spec/examples.txt +0 -704
  188. data/spec/integration/rails/active_record_spec.rb +0 -21
  189. data/spec/integration/rails/active_support_spec.rb +0 -19
  190. data/spec/integration/rails/engines_spec.rb +0 -25
  191. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
  192. data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
  193. data/spec/integration/rspec/be_matcher_spec.rb +0 -605
  194. data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
  195. data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
  196. data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
  197. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
  198. data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
  199. data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
  200. data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
  201. data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
  202. data/spec/integration/rspec/include_matcher_spec.rb +0 -452
  203. data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
  204. data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
  205. data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
  206. data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
  207. data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
  208. data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
  209. data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
  210. data/spec/internal/log/test.log +0 -0
  211. data/spec/spec_helper.rb +0 -90
  212. data/spec/support/colorizer.rb +0 -9
  213. data/spec/support/command_runner.rb +0 -253
  214. data/spec/support/helpers.rb +0 -21
  215. data/spec/support/integration/helpers.rb +0 -124
  216. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
  217. data/spec/support/integration/matchers.rb +0 -177
  218. data/spec/support/integration/test_programs/base.rb +0 -143
  219. data/spec/support/integration/test_programs/plain.rb +0 -19
  220. data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
  221. data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
  222. data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
  223. data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
  224. data/spec/support/models/a.rb +0 -11
  225. data/spec/support/models/active_record/person.rb +0 -28
  226. data/spec/support/models/active_record/query.rb +0 -15
  227. data/spec/support/models/active_record/shipping_address.rb +0 -24
  228. data/spec/support/models/customer.rb +0 -22
  229. data/spec/support/models/empty_class.rb +0 -6
  230. data/spec/support/models/item.rb +0 -10
  231. data/spec/support/models/order.rb +0 -9
  232. data/spec/support/models/person.rb +0 -20
  233. data/spec/support/models/player.rb +0 -30
  234. data/spec/support/models/shipping_address.rb +0 -25
  235. data/spec/support/shared_examples/active_record.rb +0 -428
  236. data/spec/support/shared_examples/active_support.rb +0 -188
  237. data/spec/support/shared_examples/elided_diffs.rb +0 -938
  238. data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
  239. data/spec/support/shared_examples/key.rb +0 -123
  240. data/spec/support/unit/helpers.rb +0 -24
  241. data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
  242. data/spec/support/unit/matchers/match_output.rb +0 -40
  243. data/spec/unit/active_record/object_inspection_spec.rb +0 -289
  244. data/spec/unit/active_support/object_inspection_spec.rb +0 -170
  245. data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
  246. data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
  247. data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
  248. data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
  249. data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
  250. data/spec/unit/core/helpers_spec.rb +0 -68
  251. data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
  252. data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
  253. data/spec/unit/deprecations_spec.rb +0 -176
  254. data/spec/unit/equality_matchers/main_spec.rb +0 -1842
  255. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
  256. data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
  257. data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
  258. data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
  259. data/spec/unit/rspec/matchers/be_spec.rb +0 -17
  260. data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
  261. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
  262. data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
  263. data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
  264. data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
  265. data/spec/unit/rspec/matchers/include_spec.rb +0 -21
  266. data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
  267. data/spec/unit/rspec/matchers/match_spec.rb +0 -9
  268. data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
  269. data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
  270. data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
  271. data/spec/unit/rspec/object_inspection_spec.rb +0 -471
  272. 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.class == ::String
7
+ value.instance_of?(::String)
6
8
  end
7
9
 
8
10
  def fail
9
11
  <<~OUTPUT.strip
10
- Differing strings.
12
+ Differing strings.
11
13
 
12
- #{
13
- Core::Helpers.style(
14
- :expected,
15
- "Expected: " + SuperDiff.inspect_object(expected, as_lines: false)
16
- )
17
- }
18
- #{
19
- Core::Helpers.style(
20
- :actual,
21
- " Actual: " + SuperDiff.inspect_object(actual, as_lines: false)
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, "super_diff/equality_matchers/array"
4
- autoload :Base, "super_diff/equality_matchers/base"
5
- autoload :Hash, "super_diff/equality_matchers/hash"
6
- autoload :Main, "super_diff/equality_matchers/main"
7
- autoload :MultilineString, "super_diff/equality_matchers/multiline_string"
8
- autoload :Default, "super_diff/equality_matchers/default"
9
- autoload :Primitive, "super_diff/equality_matchers/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
- "super_diff/equality_matchers/singleline_string"
14
+ 'super_diff/equality_matchers/singleline_string'
13
15
  )
14
16
  end
15
17
  end
16
18
 
17
- require "super_diff/equality_matchers/defaults"
19
+ require 'super_diff/equality_matchers/defaults'
@@ -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 <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
12
+ WARNING
11
13
  Core::AbstractInspectionTreeBuilder
12
14
  elsif Basic::InspectionTreeBuilders.const_defined?(missing_const_name)
13
- warn <<~EOT
14
- WARNING: SuperDiff::ObjectInspection::InspectionTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
15
- Please use SuperDiff::Basic::InspectionTreeBuilders::#{missing_const_name} instead.
16
- #{caller_locations.join("\n")}
17
- EOT
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 <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
48
+ WARNING
47
49
  Core::PrefixForNextInspectionTreeNode
48
50
  elsif missing_const_name == :PreludeForNextNode
49
- warn <<~EOT
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
- EOT
55
+ WARNING
54
56
  Core::PreludeForNextInspectionTreeNode
55
57
  elsif Core.const_defined?(missing_const_name)
56
- warn <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
11
+ WARNING
10
12
  Core::AbstractOperationTreeBuilder
11
13
  elsif Basic::OperationTreeBuilders.const_defined?(missing_const_name)
12
- warn <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
11
+ WARNING
10
12
  Core::AbstractOperationTreeFlattener
11
13
  elsif Basic::OperationTreeFlatteners.const_defined?(missing_const_name)
12
- warn <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
11
+ WARNING
10
12
  Core::AbstractOperationTree
11
13
  elsif Basic::OperationTrees.const_defined?(missing_const_name)
12
- warn <<~EOT
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
- EOT
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 <<~EOT
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
- EOT
11
+ WARNING
10
12
  Core.const_get(missing_const_name)
11
13
  else
12
14
  super
@@ -1,2 +1,4 @@
1
- require "super_diff/active_support"
2
- require "super_diff/active_record" if defined?(ActiveRecord)
1
+ # frozen_string_literal: true
2
+
3
+ require 'super_diff/active_support'
4
+ require 'super_diff/active_record' if defined?(ActiveRecord)
@@ -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
- @_matcher_text_builder ||=
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" + diff
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
- expected.is_a?(Symbol) || expected.is_a?(Integer) ||
32
- [true, false, nil].include?(expected)
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
- @_helpers ||= RSpecHelpers.new
50
+ @helpers ||= RSpecHelpers.new
42
51
  end
43
52
 
44
53
  class RSpecHelpers
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module Differs
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module Differs
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module Differs
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module Differs
@@ -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
- "super_diff/rspec/differs/collection_containing_exactly"
8
+ 'super_diff/rspec/differs/collection_containing_exactly'
7
9
  )
8
10
  autoload(
9
11
  :CollectionIncluding,
10
- "super_diff/rspec/differs/collection_including"
12
+ 'super_diff/rspec/differs/collection_including'
11
13
  )
12
- autoload :HashIncluding, "super_diff/rspec/differs/hash_including"
14
+ autoload :HashIncluding, 'super_diff/rspec/differs/hash_including'
13
15
  autoload(
14
16
  :ObjectHavingAttributes,
15
- "super_diff/rspec/differs/object_having_attributes"
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
- collection_bookend: :open
14
- ) do |t2|
15
- t2.add_text "#<a collection containing exactly ("
16
- end
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
- t2.insert_array_inspection_of(object.expected)
21
- end
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
- collection_bookend: :close
26
- ) do |t2|
27
- t2.add_text ")>"
28
- end
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
- collection_bookend: :open
15
- ) do |t2|
16
- t2.add_text "#<a collection including ("
17
- end
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
- collection_bookend: :close
32
- ) do |t2|
33
- t2.add_text ")>"
34
- end
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
- t4.add_text " {"
26
- end
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
- t3.add_text " "
32
- end
33
+ t3.add_text ' '
34
+ end
33
35
 
34
36
  # stree-ignore
35
37
  t2.nested do |t3|
36
- t3.insert_hash_inspection_of doubled_methods
37
- end
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
- t4.add_text "}"
45
- end
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
- "InstanceDouble"
68
+ 'InstanceDouble'
67
69
  when ::RSpec::Mocks::ClassVerifyingDouble
68
- "ClassDouble"
70
+ 'ClassDouble'
69
71
  when ::RSpec::Mocks::ObjectVerifyingDouble
70
- "ObjectDouble"
72
+ 'ObjectDouble'
71
73
  else
72
- "Double"
74
+ 'Double'
73
75
  end
74
76
  end
75
77
 
76
78
  def inspected_name
77
- if object.instance_variable_get("@name")
78
- object.instance_variable_get("@name").inspect
79
+ if object.instance_variable_get('@name')
80
+ object.instance_variable_get('@name').inspect
79
81
  else
80
- "(anonymous)"
82
+ '(anonymous)'
81
83
  end
82
84
  end
83
85
 
84
86
  def doubled_methods
85
- @_doubled_methods ||=
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("@method_doubles")
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
@@ -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
- collection_bookend: :open
15
- ) do |t2|
16
- t2.add_text "#<a hash including ("
17
- end
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
- collection_bookend: :close
32
- ) do |t2|
33
- t2.add_text ")>"
34
- end
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module InspectionTreeBuilders
@@ -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
- collection_bookend: :open
14
- ) do |t2|
15
- t2.add_text "#<an object having attributes ("
16
- end
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
- t2.insert_hash_inspection_of(object.expected)
21
- end
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
- collection_bookend: :close
26
- ) do |t2|
27
- t2.add_text ")>"
28
- end
27
+ collection_bookend: :close
28
+ ) do |t2|
29
+ t2.add_text ')>'
30
+ end
29
31
  end
30
32
  end
31
33
  end