super_diff 0.12.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module OperationTreeBuilders
@@ -19,9 +21,7 @@ module SuperDiff
19
21
  operations = []
20
22
 
21
23
  (0...actual.length)
22
- .reject do |index|
23
- indexes_in_actual_but_not_in_expected.include?(index)
24
- end
24
+ .reject { |index| indexes_in_actual_but_not_in_expected.include?(index) }
25
25
  .each { |index| add_noop_to(operations, index) }
26
26
 
27
27
  indexes_in_actual_but_not_in_expected.each do |index|
@@ -36,7 +36,7 @@ module SuperDiff
36
36
  end
37
37
 
38
38
  def build_operation_tree
39
- OperationTrees::Array.new([])
39
+ Basic::OperationTrees::Array.new([])
40
40
  end
41
41
 
42
42
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module OperationTreeBuilders
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module OperationTreeBuilders
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module OperationTreeBuilders
@@ -1,21 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module OperationTreeBuilders
4
6
  autoload(
5
7
  :CollectionContainingExactly,
6
- "super_diff/rspec/operation_tree_builders/collection_containing_exactly"
8
+ 'super_diff/rspec/operation_tree_builders/collection_containing_exactly'
7
9
  )
8
10
  autoload(
9
11
  :CollectionIncluding,
10
- "super_diff/rspec/operation_tree_builders/collection_including"
12
+ 'super_diff/rspec/operation_tree_builders/collection_including'
11
13
  )
12
14
  autoload(
13
15
  :HashIncluding,
14
- "super_diff/rspec/operation_tree_builders/hash_including"
16
+ 'super_diff/rspec/operation_tree_builders/hash_including'
15
17
  )
16
18
  autoload(
17
19
  :ObjectHavingAttributes,
18
- "super_diff/rspec/operation_tree_builders/object_having_attributes"
20
+ 'super_diff/rspec/operation_tree_builders/object_having_attributes'
19
21
  )
20
22
  end
21
23
  end
@@ -1,2 +1,4 @@
1
- require "super_diff/rspec"
2
- require "super_diff/rails"
1
+ # frozen_string_literal: true
2
+
3
+ require 'super_diff/rspec'
4
+ require 'super_diff/rails'
@@ -1,17 +1,19 @@
1
- require "super_diff"
1
+ # frozen_string_literal: true
2
2
 
3
- require "super_diff/rspec/differs"
4
- require "super_diff/rspec/inspection_tree_builders"
5
- require "super_diff/rspec/operation_tree_builders"
3
+ require 'super_diff'
4
+
5
+ require 'super_diff/rspec/differs'
6
+ require 'super_diff/rspec/inspection_tree_builders'
7
+ require 'super_diff/rspec/operation_tree_builders'
6
8
 
7
9
  module SuperDiff
8
10
  module RSpec
9
- autoload :AugmentedMatcher, "super_diff/rspec/augmented_matcher"
10
- autoload :Configuration, "super_diff/rspec/configuration"
11
- autoload :Differ, "super_diff/rspec/differ"
12
- autoload :MatcherTextBuilders, "super_diff/rspec/matcher_text_builders"
13
- autoload :MatcherTextTemplate, "super_diff/rspec/matcher_text_template"
14
- autoload :ObjectInspection, "super_diff/rspec/object_inspection"
11
+ autoload :AugmentedMatcher, 'super_diff/rspec/augmented_matcher'
12
+ autoload :Configuration, 'super_diff/rspec/configuration'
13
+ autoload :Differ, 'super_diff/rspec/differ'
14
+ autoload :MatcherTextBuilders, 'super_diff/rspec/matcher_text_builders'
15
+ autoload :MatcherTextTemplate, 'super_diff/rspec/matcher_text_template'
16
+ autoload :ObjectInspection, 'super_diff/rspec/object_inspection'
15
17
 
16
18
  def self.configure(&block)
17
19
  SuperDiff.configure(&block)
@@ -83,9 +85,9 @@ module SuperDiff
83
85
  end
84
86
 
85
87
  def self.rspec_version
86
- @_rspec_version ||=
88
+ @rspec_version ||=
87
89
  begin
88
- require "rspec/core/version"
90
+ require 'rspec/core/version'
89
91
  Core::GemVersion.new(::RSpec::Core::Version::STRING)
90
92
  end
91
93
  end
@@ -121,4 +123,4 @@ module SuperDiff
121
123
  end
122
124
  end
123
125
 
124
- require_relative "rspec/monkey_patches"
126
+ require_relative 'rspec/monkey_patches'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
- VERSION = "0.12.1".freeze
4
+ VERSION = '0.14.0'
3
5
  end
data/lib/super_diff.rb CHANGED
@@ -1,33 +1,35 @@
1
- require "attr_extras/explicit"
2
- require "date"
1
+ # frozen_string_literal: true
2
+
3
+ require 'attr_extras/explicit'
4
+ require 'date'
3
5
 
4
6
  module SuperDiff
5
- autoload :Core, "super_diff/core"
6
- autoload :Csi, "super_diff/csi"
7
- autoload :Differs, "super_diff/differs"
8
- autoload :EqualityMatchers, "super_diff/equality_matchers"
9
- autoload :Errors, "super_diff/errors"
10
- autoload :ObjectInspection, "super_diff/object_inspection"
11
- autoload :OperationTreeBuilders, "super_diff/operation_tree_builders"
12
- autoload :OperationTreeFlatteners, "super_diff/operation_tree_flatteners"
13
- autoload :OperationTrees, "super_diff/operation_trees"
14
- autoload :Operations, "super_diff/operations"
15
- autoload :VERSION, "super_diff/version"
7
+ autoload :Core, 'super_diff/core'
8
+ autoload :Csi, 'super_diff/csi'
9
+ autoload :Differs, 'super_diff/differs'
10
+ autoload :EqualityMatchers, 'super_diff/equality_matchers'
11
+ autoload :Errors, 'super_diff/errors'
12
+ autoload :ObjectInspection, 'super_diff/object_inspection'
13
+ autoload :OperationTreeBuilders, 'super_diff/operation_tree_builders'
14
+ autoload :OperationTreeFlatteners, 'super_diff/operation_tree_flatteners'
15
+ autoload :OperationTrees, 'super_diff/operation_trees'
16
+ autoload :Operations, 'super_diff/operations'
17
+ autoload :VERSION, 'super_diff/version'
16
18
 
17
19
  def self.const_missing(missing_const_name)
18
20
  if Core.const_defined?(missing_const_name)
19
- warn <<~EOT
21
+ warn <<~WARNING
20
22
  WARNING: SuperDiff::#{missing_const_name} is deprecated and will be removed in the next major release.
21
23
  Please use SuperDiff::Core::#{missing_const_name} instead.
22
24
  #{caller_locations.join("\n")}
23
- EOT
25
+ WARNING
24
26
  Core.const_get(missing_const_name)
25
27
  elsif Basic.const_defined?(missing_const_name)
26
- warn <<~EOT
28
+ warn <<~WARNING
27
29
  WARNING: SuperDiff::#{missing_const_name} is deprecated and will be removed in the next major release.
28
30
  Please use SuperDiff::Basic::#{missing_const_name} instead.
29
31
  #{caller_locations.join("\n")}
30
- EOT
32
+ WARNING
31
33
  Basic.const_get(missing_const_name)
32
34
  else
33
35
  super
@@ -36,11 +38,10 @@ module SuperDiff
36
38
 
37
39
  def self.configure
38
40
  yield configuration
39
- configuration.updated
40
41
  end
41
42
 
42
43
  def self.configuration
43
- @_configuration ||= Core::Configuration.new
44
+ @configuration ||= Core::Configuration.new
44
45
  end
45
46
 
46
47
  def self.diff(
@@ -114,7 +115,7 @@ module SuperDiff
114
115
 
115
116
  def self.primitive?(value)
116
117
  case value
117
- when true, false, nil, Symbol, Numeric, Regexp, Class
118
+ when true, false, nil, Symbol, Numeric, Regexp, Class, Module, String
118
119
  true
119
120
  else
120
121
  false
@@ -122,16 +123,12 @@ module SuperDiff
122
123
  end
123
124
 
124
125
  def self.insert_overrides(target_module, mod = nil, &block)
125
- mod ? target_module.prepend(mod) : target_module.prepend(Module.new(&block))
126
+ target_module.prepend(mod || Module.new(&block))
126
127
  end
127
128
 
128
129
  def self.insert_singleton_overrides(target_module, mod = nil, &block)
129
- if mod
130
- target_module.singleton_class.prepend(mod)
131
- else
132
- target_module.singleton_class.prepend(Module.new(&block))
133
- end
130
+ target_module.singleton_class.prepend(mod || Module.new(&block))
134
131
  end
135
132
  end
136
133
 
137
- require "super_diff/basic"
134
+ require 'super_diff/basic'
data/super_diff.gemspec CHANGED
@@ -1,31 +1,33 @@
1
- require File.expand_path("lib/super_diff/version", __dir__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('lib/super_diff/version', __dir__)
2
4
 
3
5
  Gem::Specification.new do |s|
4
- s.name = "super_diff"
6
+ s.name = 'super_diff'
5
7
  s.version = SuperDiff::VERSION
6
- s.authors = ["Elliot Winkler"]
7
- s.email = ["elliot.winkler@gmail.com"]
8
- s.homepage = "https://github.com/mcmire/super_diff"
8
+ s.authors = ['Elliot Winkler', 'Splitwise, Inc.']
9
+ s.email = ['oss-community@splitwise.com']
10
+ s.homepage = 'https://github.com/splitwise/super_diff'
9
11
  s.summary =
10
- "A better way to view differences between complex data structures in RSpec."
11
- s.license = "MIT"
12
+ 'A better way to view differences between complex data structures in RSpec.'
13
+ s.license = 'MIT'
12
14
  s.description = <<~DESC
13
15
  SuperDiff is a gem that hooks into RSpec to intelligently display the
14
16
  differences between two data structures of any type.
15
17
  DESC
16
18
  s.metadata = {
17
- "bug_tracker_uri" => "https://github.com/mcmire/super_diff/issues",
18
- "changelog_uri" =>
19
- "https://github.com/mcmire/super_diff/blob/main/CHANGELOG.md",
20
- "source_code_uri" => "https://github.com/mcmire/super_diff"
19
+ 'bug_tracker_uri' => 'https://github.com/splitwise/super_diff/issues',
20
+ 'changelog_uri' =>
21
+ 'https://github.com/splitwise/super_diff/blob/main/CHANGELOG.md',
22
+ 'rubygems_mfa_required' => 'true',
23
+ 'source_code_uri' => 'https://github.com/splitwise/super_diff'
21
24
  }
22
- s.required_ruby_version = ">= 3"
25
+ s.required_ruby_version = '>= 3.0'
23
26
 
24
- s.files = %w[README.md super_diff.gemspec] + Dir["lib/**/*"]
25
- s.test_files = Dir["spec/**/*"]
26
- s.executables = Dir["exe/**/*"].map { |f| File.basename(f) }
27
+ s.files = %w[README.md super_diff.gemspec] + Dir['lib/**/*']
28
+ s.executables = Dir['exe/**/*'].map { |f| File.basename(f) }
27
29
 
28
- s.add_dependency "attr_extras", ">= 6.2.4"
29
- s.add_dependency "diff-lcs"
30
- s.add_dependency "patience_diff"
30
+ s.add_dependency 'attr_extras', '>= 6.2.4'
31
+ s.add_dependency 'diff-lcs'
32
+ s.add_dependency 'patience_diff'
31
33
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elliot Winkler
8
+ - Splitwise, Inc.
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2024-04-27 00:00:00.000000000 Z
12
+ date: 2024-11-15 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: attr_extras
@@ -56,7 +57,7 @@ description: |
56
57
  SuperDiff is a gem that hooks into RSpec to intelligently display the
57
58
  differences between two data structures of any type.
58
59
  email:
59
- - elliot.winkler@gmail.com
60
+ - oss-community@splitwise.com
60
61
  executables: []
61
62
  extensions: []
62
63
  extra_rdoc_files: []
@@ -106,14 +107,17 @@ files:
106
107
  - lib/super_diff/basic/inspection_tree_builders.rb
107
108
  - lib/super_diff/basic/inspection_tree_builders/array.rb
108
109
  - lib/super_diff/basic/inspection_tree_builders/custom_object.rb
110
+ - lib/super_diff/basic/inspection_tree_builders/data_object.rb
109
111
  - lib/super_diff/basic/inspection_tree_builders/date_like.rb
110
112
  - lib/super_diff/basic/inspection_tree_builders/default_object.rb
111
113
  - lib/super_diff/basic/inspection_tree_builders/hash.rb
112
114
  - lib/super_diff/basic/inspection_tree_builders/primitive.rb
115
+ - lib/super_diff/basic/inspection_tree_builders/range_object.rb
113
116
  - lib/super_diff/basic/inspection_tree_builders/time_like.rb
114
117
  - lib/super_diff/basic/operation_tree_builders.rb
115
118
  - lib/super_diff/basic/operation_tree_builders/array.rb
116
119
  - lib/super_diff/basic/operation_tree_builders/custom_object.rb
120
+ - lib/super_diff/basic/operation_tree_builders/data_object.rb
117
121
  - lib/super_diff/basic/operation_tree_builders/date_like.rb
118
122
  - lib/super_diff/basic/operation_tree_builders/default_object.rb
119
123
  - lib/super_diff/basic/operation_tree_builders/hash.rb
@@ -241,100 +245,15 @@ files:
241
245
  - lib/super_diff/rspec/operation_tree_builders/hash_including.rb
242
246
  - lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb
243
247
  - lib/super_diff/version.rb
244
- - spec/examples.txt
245
- - spec/integration/rails/active_record_spec.rb
246
- - spec/integration/rails/active_support_spec.rb
247
- - spec/integration/rails/engines_spec.rb
248
- - spec/integration/rails/hash_with_indifferent_access_spec.rb
249
- - spec/integration/rspec/be_falsey_matcher_spec.rb
250
- - spec/integration/rspec/be_matcher_spec.rb
251
- - spec/integration/rspec/be_nil_matcher_spec.rb
252
- - spec/integration/rspec/be_predicate_matcher_spec.rb
253
- - spec/integration/rspec/be_truthy_matcher_spec.rb
254
- - spec/integration/rspec/contain_exactly_matcher_spec.rb
255
- - spec/integration/rspec/eq_matcher_spec.rb
256
- - spec/integration/rspec/generic_describable_matchers_spec.rb
257
- - spec/integration/rspec/have_attributes_matcher_spec.rb
258
- - spec/integration/rspec/have_predicate_matcher_spec.rb
259
- - spec/integration/rspec/include_matcher_spec.rb
260
- - spec/integration/rspec/magic_metadata_spec.rb
261
- - spec/integration/rspec/match_array_matcher_spec.rb
262
- - spec/integration/rspec/match_matcher_spec.rb
263
- - spec/integration/rspec/raise_error_matcher_spec.rb
264
- - spec/integration/rspec/respond_to_matcher_spec.rb
265
- - spec/integration/rspec/third_party_matcher_spec.rb
266
- - spec/integration/rspec/unhandled_errors_spec.rb
267
- - spec/internal/log/test.log
268
- - spec/spec_helper.rb
269
- - spec/support/colorizer.rb
270
- - spec/support/command_runner.rb
271
- - spec/support/helpers.rb
272
- - spec/support/integration/helpers.rb
273
- - spec/support/integration/matchers.rb
274
- - spec/support/integration/matchers/produce_output_when_run_matcher.rb
275
- - spec/support/integration/test_programs/base.rb
276
- - spec/support/integration/test_programs/plain.rb
277
- - spec/support/integration/test_programs/rspec_active_record.rb
278
- - spec/support/integration/test_programs/rspec_active_support.rb
279
- - spec/support/integration/test_programs/rspec_rails.rb
280
- - spec/support/integration/test_programs/rspec_rails_engine.rb
281
- - spec/support/models/a.rb
282
- - spec/support/models/active_record/person.rb
283
- - spec/support/models/active_record/query.rb
284
- - spec/support/models/active_record/shipping_address.rb
285
- - spec/support/models/customer.rb
286
- - spec/support/models/empty_class.rb
287
- - spec/support/models/item.rb
288
- - spec/support/models/order.rb
289
- - spec/support/models/person.rb
290
- - spec/support/models/player.rb
291
- - spec/support/models/shipping_address.rb
292
- - spec/support/shared_examples/active_record.rb
293
- - spec/support/shared_examples/active_support.rb
294
- - spec/support/shared_examples/elided_diffs.rb
295
- - spec/support/shared_examples/hash_with_indifferent_access.rb
296
- - spec/support/shared_examples/key.rb
297
- - spec/support/unit/helpers.rb
298
- - spec/support/unit/matchers/be_deprecated_in_favor_of.rb
299
- - spec/support/unit/matchers/match_output.rb
300
- - spec/unit/active_record/object_inspection_spec.rb
301
- - spec/unit/active_support/object_inspection_spec.rb
302
- - spec/unit/basic/operation_tree_flatteners/array_spec.rb
303
- - spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb
304
- - spec/unit/basic/operation_tree_flatteners/default_object_spec.rb
305
- - spec/unit/basic/operation_tree_flatteners/hash_spec.rb
306
- - spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb
307
- - spec/unit/core/helpers_spec.rb
308
- - spec/unit/core/tiered_lines_elider_spec.rb
309
- - spec/unit/core/tiered_lines_formatter_spec.rb
310
- - spec/unit/deprecations_spec.rb
311
- - spec/unit/equality_matchers/main_spec.rb
312
- - spec/unit/rspec/matchers/be_compared_to_spec.rb
313
- - spec/unit/rspec/matchers/be_falsey_spec.rb
314
- - spec/unit/rspec/matchers/be_nil_spec.rb
315
- - spec/unit/rspec/matchers/be_predicate_spec.rb
316
- - spec/unit/rspec/matchers/be_spec.rb
317
- - spec/unit/rspec/matchers/be_truthy_spec.rb
318
- - spec/unit/rspec/matchers/contain_exactly_spec.rb
319
- - spec/unit/rspec/matchers/eq_spec.rb
320
- - spec/unit/rspec/matchers/have_attributes_spec.rb
321
- - spec/unit/rspec/matchers/have_predicate_spec.rb
322
- - spec/unit/rspec/matchers/include_spec.rb
323
- - spec/unit/rspec/matchers/match_array_spec.rb
324
- - spec/unit/rspec/matchers/match_spec.rb
325
- - spec/unit/rspec/matchers/raise_error_spec.rb
326
- - spec/unit/rspec/matchers/respond_to_spec.rb
327
- - spec/unit/rspec/object_inspection/rspec_matcher_spec.rb
328
- - spec/unit/rspec/object_inspection_spec.rb
329
- - spec/unit/super_diff_spec.rb
330
248
  - super_diff.gemspec
331
- homepage: https://github.com/mcmire/super_diff
249
+ homepage: https://github.com/splitwise/super_diff
332
250
  licenses:
333
251
  - MIT
334
252
  metadata:
335
- bug_tracker_uri: https://github.com/mcmire/super_diff/issues
336
- changelog_uri: https://github.com/mcmire/super_diff/blob/main/CHANGELOG.md
337
- source_code_uri: https://github.com/mcmire/super_diff
253
+ bug_tracker_uri: https://github.com/splitwise/super_diff/issues
254
+ changelog_uri: https://github.com/splitwise/super_diff/blob/main/CHANGELOG.md
255
+ rubygems_mfa_required: 'true'
256
+ source_code_uri: https://github.com/splitwise/super_diff
338
257
  post_install_message:
339
258
  rdoc_options: []
340
259
  require_paths:
@@ -343,101 +262,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
343
262
  requirements:
344
263
  - - ">="
345
264
  - !ruby/object:Gem::Version
346
- version: '3'
265
+ version: '3.0'
347
266
  required_rubygems_version: !ruby/object:Gem::Requirement
348
267
  requirements:
349
268
  - - ">="
350
269
  - !ruby/object:Gem::Version
351
270
  version: '0'
352
271
  requirements: []
353
- rubygems_version: 3.4.6
272
+ rubygems_version: 3.5.20
354
273
  signing_key:
355
274
  specification_version: 4
356
275
  summary: A better way to view differences between complex data structures in RSpec.
357
- test_files:
358
- - spec/examples.txt
359
- - spec/integration/rails/active_record_spec.rb
360
- - spec/integration/rails/active_support_spec.rb
361
- - spec/integration/rails/engines_spec.rb
362
- - spec/integration/rails/hash_with_indifferent_access_spec.rb
363
- - spec/integration/rspec/be_falsey_matcher_spec.rb
364
- - spec/integration/rspec/be_matcher_spec.rb
365
- - spec/integration/rspec/be_nil_matcher_spec.rb
366
- - spec/integration/rspec/be_predicate_matcher_spec.rb
367
- - spec/integration/rspec/be_truthy_matcher_spec.rb
368
- - spec/integration/rspec/contain_exactly_matcher_spec.rb
369
- - spec/integration/rspec/eq_matcher_spec.rb
370
- - spec/integration/rspec/generic_describable_matchers_spec.rb
371
- - spec/integration/rspec/have_attributes_matcher_spec.rb
372
- - spec/integration/rspec/have_predicate_matcher_spec.rb
373
- - spec/integration/rspec/include_matcher_spec.rb
374
- - spec/integration/rspec/magic_metadata_spec.rb
375
- - spec/integration/rspec/match_array_matcher_spec.rb
376
- - spec/integration/rspec/match_matcher_spec.rb
377
- - spec/integration/rspec/raise_error_matcher_spec.rb
378
- - spec/integration/rspec/respond_to_matcher_spec.rb
379
- - spec/integration/rspec/third_party_matcher_spec.rb
380
- - spec/integration/rspec/unhandled_errors_spec.rb
381
- - spec/internal/log/test.log
382
- - spec/spec_helper.rb
383
- - spec/support/colorizer.rb
384
- - spec/support/command_runner.rb
385
- - spec/support/helpers.rb
386
- - spec/support/integration/helpers.rb
387
- - spec/support/integration/matchers/produce_output_when_run_matcher.rb
388
- - spec/support/integration/matchers.rb
389
- - spec/support/integration/test_programs/base.rb
390
- - spec/support/integration/test_programs/plain.rb
391
- - spec/support/integration/test_programs/rspec_active_record.rb
392
- - spec/support/integration/test_programs/rspec_active_support.rb
393
- - spec/support/integration/test_programs/rspec_rails.rb
394
- - spec/support/integration/test_programs/rspec_rails_engine.rb
395
- - spec/support/models/a.rb
396
- - spec/support/models/active_record/person.rb
397
- - spec/support/models/active_record/query.rb
398
- - spec/support/models/active_record/shipping_address.rb
399
- - spec/support/models/customer.rb
400
- - spec/support/models/empty_class.rb
401
- - spec/support/models/item.rb
402
- - spec/support/models/order.rb
403
- - spec/support/models/person.rb
404
- - spec/support/models/player.rb
405
- - spec/support/models/shipping_address.rb
406
- - spec/support/shared_examples/active_record.rb
407
- - spec/support/shared_examples/active_support.rb
408
- - spec/support/shared_examples/elided_diffs.rb
409
- - spec/support/shared_examples/hash_with_indifferent_access.rb
410
- - spec/support/shared_examples/key.rb
411
- - spec/support/unit/helpers.rb
412
- - spec/support/unit/matchers/be_deprecated_in_favor_of.rb
413
- - spec/support/unit/matchers/match_output.rb
414
- - spec/unit/active_record/object_inspection_spec.rb
415
- - spec/unit/active_support/object_inspection_spec.rb
416
- - spec/unit/basic/operation_tree_flatteners/array_spec.rb
417
- - spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb
418
- - spec/unit/basic/operation_tree_flatteners/default_object_spec.rb
419
- - spec/unit/basic/operation_tree_flatteners/hash_spec.rb
420
- - spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb
421
- - spec/unit/core/helpers_spec.rb
422
- - spec/unit/core/tiered_lines_elider_spec.rb
423
- - spec/unit/core/tiered_lines_formatter_spec.rb
424
- - spec/unit/deprecations_spec.rb
425
- - spec/unit/equality_matchers/main_spec.rb
426
- - spec/unit/rspec/matchers/be_compared_to_spec.rb
427
- - spec/unit/rspec/matchers/be_falsey_spec.rb
428
- - spec/unit/rspec/matchers/be_nil_spec.rb
429
- - spec/unit/rspec/matchers/be_predicate_spec.rb
430
- - spec/unit/rspec/matchers/be_spec.rb
431
- - spec/unit/rspec/matchers/be_truthy_spec.rb
432
- - spec/unit/rspec/matchers/contain_exactly_spec.rb
433
- - spec/unit/rspec/matchers/eq_spec.rb
434
- - spec/unit/rspec/matchers/have_attributes_spec.rb
435
- - spec/unit/rspec/matchers/have_predicate_spec.rb
436
- - spec/unit/rspec/matchers/include_spec.rb
437
- - spec/unit/rspec/matchers/match_array_spec.rb
438
- - spec/unit/rspec/matchers/match_spec.rb
439
- - spec/unit/rspec/matchers/raise_error_spec.rb
440
- - spec/unit/rspec/matchers/respond_to_spec.rb
441
- - spec/unit/rspec/object_inspection/rspec_matcher_spec.rb
442
- - spec/unit/rspec/object_inspection_spec.rb
443
- - spec/unit/super_diff_spec.rb
276
+ test_files: []