super_diff 0.12.1 → 0.14.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 (271) 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/object_inspection.rb +7 -5
  175. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
  176. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
  177. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
  178. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
  179. data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
  180. data/lib/super_diff/rspec-rails.rb +4 -2
  181. data/lib/super_diff/rspec.rb +15 -13
  182. data/lib/super_diff/version.rb +3 -1
  183. data/lib/super_diff.rb +24 -27
  184. data/super_diff.gemspec +20 -18
  185. metadata +15 -182
  186. data/spec/examples.txt +0 -704
  187. data/spec/integration/rails/active_record_spec.rb +0 -21
  188. data/spec/integration/rails/active_support_spec.rb +0 -19
  189. data/spec/integration/rails/engines_spec.rb +0 -25
  190. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
  191. data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
  192. data/spec/integration/rspec/be_matcher_spec.rb +0 -605
  193. data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
  194. data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
  195. data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
  196. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
  197. data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
  198. data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
  199. data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
  200. data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
  201. data/spec/integration/rspec/include_matcher_spec.rb +0 -452
  202. data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
  203. data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
  204. data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
  205. data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
  206. data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
  207. data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
  208. data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
  209. data/spec/internal/log/test.log +0 -0
  210. data/spec/spec_helper.rb +0 -90
  211. data/spec/support/colorizer.rb +0 -9
  212. data/spec/support/command_runner.rb +0 -253
  213. data/spec/support/helpers.rb +0 -21
  214. data/spec/support/integration/helpers.rb +0 -124
  215. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
  216. data/spec/support/integration/matchers.rb +0 -177
  217. data/spec/support/integration/test_programs/base.rb +0 -143
  218. data/spec/support/integration/test_programs/plain.rb +0 -19
  219. data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
  220. data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
  221. data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
  222. data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
  223. data/spec/support/models/a.rb +0 -11
  224. data/spec/support/models/active_record/person.rb +0 -28
  225. data/spec/support/models/active_record/query.rb +0 -15
  226. data/spec/support/models/active_record/shipping_address.rb +0 -24
  227. data/spec/support/models/customer.rb +0 -22
  228. data/spec/support/models/empty_class.rb +0 -6
  229. data/spec/support/models/item.rb +0 -10
  230. data/spec/support/models/order.rb +0 -9
  231. data/spec/support/models/person.rb +0 -20
  232. data/spec/support/models/player.rb +0 -30
  233. data/spec/support/models/shipping_address.rb +0 -25
  234. data/spec/support/shared_examples/active_record.rb +0 -428
  235. data/spec/support/shared_examples/active_support.rb +0 -188
  236. data/spec/support/shared_examples/elided_diffs.rb +0 -938
  237. data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
  238. data/spec/support/shared_examples/key.rb +0 -123
  239. data/spec/support/unit/helpers.rb +0 -24
  240. data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
  241. data/spec/support/unit/matchers/match_output.rb +0 -40
  242. data/spec/unit/active_record/object_inspection_spec.rb +0 -289
  243. data/spec/unit/active_support/object_inspection_spec.rb +0 -170
  244. data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
  245. data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
  246. data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
  247. data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
  248. data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
  249. data/spec/unit/core/helpers_spec.rb +0 -68
  250. data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
  251. data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
  252. data/spec/unit/deprecations_spec.rb +0 -176
  253. data/spec/unit/equality_matchers/main_spec.rb +0 -1842
  254. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
  255. data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
  256. data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
  257. data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
  258. data/spec/unit/rspec/matchers/be_spec.rb +0 -17
  259. data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
  260. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
  261. data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
  262. data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
  263. data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
  264. data/spec/unit/rspec/matchers/include_spec.rb +0 -21
  265. data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
  266. data/spec/unit/rspec/matchers/match_spec.rb +0 -9
  267. data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
  268. data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
  269. data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
  270. data/spec/unit/rspec/object_inspection_spec.rb +0 -471
  271. 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