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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b261fa1a942123632f87e74d6b123826571840e9d779d21424ca590b6a646f8f
4
- data.tar.gz: a2a780bc9752ec935edfd34bfb7588aa13c8a2357f1422037102e1c7774c31db
3
+ metadata.gz: 573a4d219dcad689aca11cffe1beaa7e3c4974958231b1cacd92c32ef0542d74
4
+ data.tar.gz: dfb59c966c00ec59df137eb45289c056f1dd58ec461d36913b49527294c99da9
5
5
  SHA512:
6
- metadata.gz: 45a49cec47615c6c82e1cbae577c1bd9ad57852469f7a69d13c7daa8425971f8fdb109de7991db7b3f810dfcd9eb58d0cd1635c9497b913496ef8e5ab9e0f73b
7
- data.tar.gz: 8bf439969e3e15fe39661e25e65abca5a442a055efad43089d16bdd0a383c36c0ff02c67a6f73644d04c5581c8cf2a0c72b50f5a67d543046acd875a8c081e64
6
+ metadata.gz: 333c9c71197fa48a68e0328ae1eed9703e96838e6afcef4bc33dcc68f34761ad8b694a8e768bffe86d11372d14c34704634176d35bab5d6584e042fb3eb99627
7
+ data.tar.gz: '09136f70b82bef9591e709fffb12023da3beb59d69a55d52f89171649e7df1e6bf618ba00bf6ad08ad404369da7b505cd5027a18917701e41737e07a48faa0c7'
data/README.md CHANGED
@@ -1,12 +1,10 @@
1
- # SuperDiff [![Gem Version][version-badge]][rubygems] [![Build Status][gh-actions-badge]][gh-actions] ![Downloads][downloads-badge] [![IssueHunt][issuehunt-badge]][issuehunt]
1
+ # SuperDiff [![Gem Version][version-badge]][rubygems] [![Build Status][gh-actions-badge]][gh-actions] ![Downloads][downloads-badge]
2
2
 
3
3
  [version-badge]: http://img.shields.io/gem/v/super_diff.svg
4
4
  [rubygems]: http://rubygems.org/gems/super_diff
5
- [gh-actions-badge]: https://img.shields.io/github/actions/workflow/status/mcmire/super_diff/super_diff.yml?branch=master
5
+ [gh-actions-badge]: https://img.shields.io/github/actions/workflow/status/splitwise/super_diff/super_diff.yml?branch=main
6
6
  [downloads-badge]: http://img.shields.io/gem/dtv/super_diff.svg
7
7
  [hound]: https://houndci.com
8
- [issuehunt-badge]: https://img.shields.io/badge/sponsored_through-IssueHunt-2EC28C
9
- [issuehunt]: https://issuehunt.io/r/mcmire/super_diff
10
8
 
11
9
  **SuperDiff** is a Ruby gem
12
10
  which is designed to display the differences between two objects of any type
@@ -102,7 +100,7 @@ and you encounter a bug or have a suggestion,
102
100
  feel free to [create an issue][issues-list].
103
101
  I'll try to respond to it as soon as I can!
104
102
 
105
- [issues-list]: https://github.com/mcmire/super_diff/issues
103
+ [issues-list]: https://github.com/splitwise/super_diff/issues
106
104
 
107
105
  ## Contributing
108
106
 
@@ -110,16 +108,6 @@ Any code contributions to improve this library are welcome!
110
108
  Please see the [contributing](./docs/contributors/index.md) document
111
109
  for more on how to do that.
112
110
 
113
- ## Sponsoring
114
-
115
- If there's a change you want implemented, you can choose to sponsor that change!
116
- `super_diff` is set up on IssueHunt,
117
- so feel free to search for an existing issue (or make your own)
118
- and [add a bounty][issuehunt].
119
- I'll get notified right away!
120
-
121
- [issuehunt]: https://issuehunt.io/r/mcmire/super_diff
122
-
123
111
  ## Compatibility
124
112
 
125
113
  `super_diff` is [tested][gh-actions] to work with
@@ -127,7 +115,7 @@ Ruby >= 3.x,
127
115
  RSpec 3.x,
128
116
  and Rails >= 6.x.
129
117
 
130
- [gh-actions]: https://github.com/mcmire/super_diff/actions?query=workflow%3ASuperDiff
118
+ [gh-actions]: https://github.com/splitwise/super_diff/actions?query=workflow%3ASuperDiff
131
119
 
132
120
  ## Inspiration/Thanks
133
121
 
@@ -142,13 +130,13 @@ I made use of or was heavily inspired by these libraries:
142
130
 
143
131
  Thank you to the authors of these libraries!
144
132
 
145
- [original-version]: https://github.com/mcmire/super_diff/tree/old-master
133
+ [original-version]: https://github.com/splitwise/super_diff/tree/old-master
146
134
  [diff-lcs]: https://github.com/halostatue/diff-lcs
147
135
  [pretty-printer]: https://github.com/ruby/ruby/tree/master/lib/prettyprint.rb
148
136
  [awesome-print]: https://github.com/awesome-print/awesome_print
149
- [inspection-tree]: https://github.com/mcmire/super_diff/blob/master/lib/super_diff/object_inspection/inspection_tree.rb
137
+ [inspection-tree]: https://github.com/splitwise/super_diff/blob/main/lib/super_diff/core/inspection_tree.rb
150
138
 
151
139
  ## Author/License
152
140
 
153
- SuperDiff was created and is maintained by Elliot Winkler.
141
+ SuperDiff was created by Elliot Winkler and is maintained by Splitwise, Inc.
154
142
  It is released under the [MIT license](LICENSE).
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module Differs
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module Differs
4
6
  autoload(
5
7
  :ActiveRecordRelation,
6
- "super_diff/active_record/differs/active_record_relation"
8
+ 'super_diff/active_record/differs/active_record_relation'
7
9
  )
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module InspectionTreeBuilders
@@ -19,8 +21,8 @@ module SuperDiff
19
21
 
20
22
  # stree-ignore
21
23
  t2.when_rendering_to_lines do |t3|
22
- t3.add_text "{"
23
- end
24
+ t3.add_text '{'
25
+ end
24
26
  end
25
27
 
26
28
  t1.nested do |t2|
@@ -44,10 +46,10 @@ module SuperDiff
44
46
  ) do |t2|
45
47
  # stree-ignore
46
48
  t2.when_rendering_to_lines do |t3|
47
- t3.add_text "}"
48
- end
49
+ t3.add_text '}'
50
+ end
49
51
 
50
- t2.add_text ">"
52
+ t2.add_text '>'
51
53
  end
52
54
  end
53
55
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
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 "#<ActiveRecord::Relation ["
16
- end
15
+ collection_bookend: :open
16
+ ) do |t2|
17
+ t2.add_text '#<ActiveRecord::Relation ['
18
+ end
17
19
 
18
20
  # stree-ignore
19
21
  t1.nested do |t2|
20
- t2.insert_array_inspection_of(object)
21
- end
22
+ t2.insert_array_inspection_of(object)
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,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module InspectionTreeBuilders
4
6
  autoload(
5
7
  :ActiveRecordModel,
6
- "super_diff/active_record/inspection_tree_builders/active_record_model"
8
+ 'super_diff/active_record/inspection_tree_builders/active_record_model'
7
9
  )
8
10
  autoload(
9
11
  :ActiveRecordRelation,
10
- "super_diff/active_record/inspection_tree_builders/active_record_relation"
12
+ 'super_diff/active_record/inspection_tree_builders/active_record_relation'
11
13
  )
12
14
  end
13
15
  end
@@ -1,4 +1,6 @@
1
- # rubocop:disable Style/BracesAroundHashParameters, Style/ClassAndModuleChildren
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
2
4
  class ActiveRecord::Base
3
5
  # TODO: Remove this monkey patch if possible
4
6
  def attributes_for_super_diff
@@ -9,4 +11,4 @@ class ActiveRecord::Base
9
11
  ) { |hash, key| hash.merge(key.to_sym => attributes[key]) }
10
12
  end
11
13
  end
12
- # rubocop:enable Style/BracesAroundHashParameters, Style/ClassAndModuleChildren
14
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -1,16 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module ObjectInspection
4
6
  module InspectionTreeBuilders
5
7
  def self.const_missing(missing_const_name)
6
8
  if ActiveRecord::InspectionTreeBuilders.const_defined?(
7
- missing_const_name
8
- )
9
- warn <<~EOT
9
+ missing_const_name
10
+ )
11
+ warn <<~WARNING
10
12
  WARNING: SuperDiff::ActiveRecord::ObjectInspection::InspectionTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
11
13
  Please use SuperDiff::ActiveRecord::InspectionTreeBuilders::#{missing_const_name} instead.
12
14
  #{caller_locations.join("\n")}
13
- EOT
15
+ WARNING
14
16
  ActiveRecord::InspectionTreeBuilders.const_get(missing_const_name)
15
17
  else
16
18
  super
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTreeBuilders
4
6
  class ActiveRecordModel < Basic::OperationTreeBuilders::CustomObject
5
7
  def self.applies_to?(expected, actual)
6
8
  expected.is_a?(::ActiveRecord::Base) &&
7
- actual.is_a?(::ActiveRecord::Base) && expected.class == actual.class
9
+ actual.is_a?(::ActiveRecord::Base) && expected.instance_of?(actual.class)
8
10
  end
9
11
 
10
12
  protected
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTreeBuilders
@@ -15,7 +17,7 @@ module SuperDiff
15
17
  private
16
18
 
17
19
  def operation_tree
18
- @_operation_tree ||= OperationTrees::ActiveRecordRelation.new([])
20
+ @operation_tree ||= OperationTrees::ActiveRecordRelation.new([])
19
21
  end
20
22
  end
21
23
  end
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTreeBuilders
4
6
  autoload(
5
7
  :ActiveRecordModel,
6
- "super_diff/active_record/operation_tree_builders/active_record_model"
8
+ 'super_diff/active_record/operation_tree_builders/active_record_model'
7
9
  )
8
10
  autoload(
9
11
  :ActiveRecordRelation,
10
- "super_diff/active_record/operation_tree_builders/active_record_relation"
12
+ 'super_diff/active_record/operation_tree_builders/active_record_relation'
11
13
  )
12
14
  end
13
15
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTreeFlatteners
@@ -5,11 +7,11 @@ module SuperDiff
5
7
  protected
6
8
 
7
9
  def open_token
8
- "#<ActiveRecord::Relation ["
10
+ '#<ActiveRecord::Relation ['
9
11
  end
10
12
 
11
13
  def close_token
12
- "]>"
14
+ ']>'
13
15
  end
14
16
  end
15
17
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTreeFlatteners
4
6
  autoload(
5
7
  :ActiveRecordRelation,
6
- "super_diff/active_record/operation_tree_flatteners/active_record_relation"
8
+ 'super_diff/active_record/operation_tree_flatteners/active_record_relation'
7
9
  )
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTrees
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveRecord
3
5
  module OperationTrees
4
6
  autoload(
5
7
  :ActiveRecordRelation,
6
- "super_diff/active_record/operation_trees/active_record_relation"
8
+ 'super_diff/active_record/operation_trees/active_record_relation'
7
9
  )
8
10
  end
9
11
  end
@@ -1,14 +1,16 @@
1
- require "super_diff/active_support"
1
+ # frozen_string_literal: true
2
2
 
3
- require "super_diff/active_record/differs"
4
- require "super_diff/active_record/inspection_tree_builders"
5
- require "super_diff/active_record/operation_trees"
6
- require "super_diff/active_record/operation_tree_builders"
7
- require "super_diff/active_record/operation_tree_flatteners"
3
+ require 'super_diff/active_support'
4
+
5
+ require 'super_diff/active_record/differs'
6
+ require 'super_diff/active_record/inspection_tree_builders'
7
+ require 'super_diff/active_record/operation_trees'
8
+ require 'super_diff/active_record/operation_tree_builders'
9
+ require 'super_diff/active_record/operation_tree_flatteners'
8
10
 
9
11
  module SuperDiff
10
12
  module ActiveRecord
11
- autoload :ObjectInspection, "super_diff/active_record/object_inspection"
13
+ autoload :ObjectInspection, 'super_diff/active_record/object_inspection'
12
14
 
13
15
  SuperDiff.configure do |config|
14
16
  config.prepend_extra_differ_classes(Differs::ActiveRecordRelation)
@@ -24,4 +26,4 @@ module SuperDiff
24
26
  end
25
27
  end
26
28
 
27
- require "super_diff/active_record/monkey_patches"
29
+ require 'super_diff/active_record/monkey_patches'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module Differs
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module Differs
4
6
  autoload(
5
7
  :HashWithIndifferentAccess,
6
- "super_diff/active_support/differs/hash_with_indifferent_access"
8
+ 'super_diff/active_support/differs/hash_with_indifferent_access'
7
9
  )
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module InspectionTreeBuilders
@@ -10,32 +12,32 @@ 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 "#<HashWithIndifferentAccess {"
16
- end
15
+ collection_bookend: :open
16
+ ) do |t2|
17
+ t2.add_text '#<HashWithIndifferentAccess {'
18
+ end
17
19
 
18
20
  # stree-ignore
19
21
  t1.when_rendering_to_string do |t2|
20
- t2.add_text " "
21
- end
22
+ t2.add_text ' '
23
+ end
22
24
 
23
25
  # stree-ignore
24
26
  t1.nested do |t2|
25
- t2.insert_hash_inspection_of(object)
26
- end
27
+ t2.insert_hash_inspection_of(object)
28
+ end
27
29
 
28
30
  # stree-ignore
29
31
  t1.when_rendering_to_string do |t2|
30
- t2.add_text " "
31
- end
32
+ t2.add_text ' '
33
+ end
32
34
 
33
35
  # stree-ignore
34
36
  t1.as_lines_when_rendering_to_lines(
35
- collection_bookend: :close
36
- ) do |t2|
37
- t2.add_text "}>"
38
- end
37
+ collection_bookend: :close
38
+ ) do |t2|
39
+ t2.add_text '}>'
40
+ end
39
41
  end
40
42
  end
41
43
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module InspectionTreeBuilders
@@ -10,32 +12,32 @@ 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 "#<OrderedOptions {"
16
- end
15
+ collection_bookend: :open
16
+ ) do |t2|
17
+ t2.add_text '#<OrderedOptions {'
18
+ end
17
19
 
18
20
  # stree-ignore
19
21
  t1.when_rendering_to_string do |t2|
20
- t2.add_text " "
21
- end
22
+ t2.add_text ' '
23
+ end
22
24
 
23
25
  # stree-ignore
24
26
  t1.nested do |t2|
25
- t2.insert_hash_inspection_of(object.to_hash)
26
- end
27
+ t2.insert_hash_inspection_of(object.to_hash)
28
+ end
27
29
 
28
30
  # stree-ignore
29
31
  t1.when_rendering_to_string do |t2|
30
- t2.add_text " "
31
- end
32
+ t2.add_text ' '
33
+ end
32
34
 
33
35
  # stree-ignore
34
36
  t1.as_lines_when_rendering_to_lines(
35
- collection_bookend: :close
36
- ) do |t2|
37
- t2.add_text "}>"
38
- end
37
+ collection_bookend: :close
38
+ ) do |t2|
39
+ t2.add_text '}>'
40
+ end
39
41
  end
40
42
  end
41
43
  end
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module InspectionTreeBuilders
4
6
  autoload(
5
7
  :HashWithIndifferentAccess,
6
- "super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access"
8
+ 'super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access'
7
9
  )
8
10
  autoload(
9
11
  :OrderedOptions,
10
- "super_diff/active_support/inspection_tree_builders/ordered_options"
12
+ 'super_diff/active_support/inspection_tree_builders/ordered_options'
11
13
  )
12
14
  end
13
15
  end
@@ -1,16 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module ObjectInspection
4
6
  module InspectionTreeBuilders
5
7
  def self.const_missing(missing_const_name)
6
8
  if ActiveSupport::InspectionTreeBuilders.const_defined?(
7
- missing_const_name
8
- )
9
- warn <<~EOT
9
+ missing_const_name
10
+ )
11
+ warn <<~WARNING
10
12
  WARNING: SuperDiff::ActiveSupport::ObjectInspection::InspectionTreeBuilders::#{missing_const_name} is deprecated and will be removed in the next major release.
11
13
  Please use SuperDiff::ActiveSupport::InspectionTreeBuilders::#{missing_const_name} instead.
12
14
  #{caller_locations.join("\n")}
13
- EOT
15
+ WARNING
14
16
  ActiveSupport::InspectionTreeBuilders.const_get(missing_const_name)
15
17
  else
16
18
  super
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTreeBuilders
@@ -20,10 +22,10 @@ module SuperDiff
20
22
  @actual = actual.transform_keys(&:to_s)
21
23
  end
22
24
 
23
- if actual.is_a?(::HashWithIndifferentAccess)
24
- @expected = expected.transform_keys(&:to_s)
25
- @actual = actual.to_h
26
- end
25
+ return unless actual.is_a?(::HashWithIndifferentAccess)
26
+
27
+ @expected = expected.transform_keys(&:to_s)
28
+ @actual = actual.to_h
27
29
  end
28
30
 
29
31
  protected
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTreeBuilders
4
6
  autoload(
5
7
  :HashWithIndifferentAccess,
6
- "super_diff/active_support/operation_tree_builders/hash_with_indifferent_access"
8
+ 'super_diff/active_support/operation_tree_builders/hash_with_indifferent_access'
7
9
  )
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTreeFlatteners
@@ -5,11 +7,11 @@ module SuperDiff
5
7
  protected
6
8
 
7
9
  def open_token
8
- "#<HashWithIndifferentAccess {"
10
+ '#<HashWithIndifferentAccess {'
9
11
  end
10
12
 
11
13
  def close_token
12
- "}>"
14
+ '}>'
13
15
  end
14
16
  end
15
17
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTreeFlatteners
4
6
  autoload(
5
7
  :HashWithIndifferentAccess,
6
- "super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access"
8
+ 'super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access'
7
9
  )
8
10
  end
9
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTrees
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module ActiveSupport
3
5
  module OperationTrees
4
6
  autoload(
5
7
  :HashWithIndifferentAccess,
6
- "super_diff/active_support/operation_trees/hash_with_indifferent_access"
8
+ 'super_diff/active_support/operation_trees/hash_with_indifferent_access'
7
9
  )
8
10
  end
9
11
  end
@@ -1,12 +1,14 @@
1
- require "super_diff/active_support/differs"
2
- require "super_diff/active_support/inspection_tree_builders"
3
- require "super_diff/active_support/operation_trees"
4
- require "super_diff/active_support/operation_tree_builders"
5
- require "super_diff/active_support/operation_tree_flatteners"
1
+ # frozen_string_literal: true
2
+
3
+ require 'super_diff/active_support/differs'
4
+ require 'super_diff/active_support/inspection_tree_builders'
5
+ require 'super_diff/active_support/operation_trees'
6
+ require 'super_diff/active_support/operation_tree_builders'
7
+ require 'super_diff/active_support/operation_tree_flatteners'
6
8
 
7
9
  module SuperDiff
8
10
  module ActiveSupport
9
- autoload :ObjectInspection, "super_diff/active_support/object_inspection"
11
+ autoload :ObjectInspection, 'super_diff/active_support/object_inspection'
10
12
 
11
13
  SuperDiff.configure do |config|
12
14
  config.prepend_extra_differ_classes(Differs::HashWithIndifferentAccess)