super_diff 0.12.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -19
  3. data/lib/super_diff/active_record/differs/active_record_relation.rb +2 -0
  4. data/lib/super_diff/active_record/differs.rb +3 -1
  5. data/lib/super_diff/active_record/inspection_tree_builders/active_record_model.rb +7 -5
  6. data/lib/super_diff/active_record/inspection_tree_builders/active_record_relation.rb +12 -10
  7. data/lib/super_diff/active_record/inspection_tree_builders.rb +4 -2
  8. data/lib/super_diff/active_record/monkey_patches.rb +4 -2
  9. data/lib/super_diff/active_record/object_inspection.rb +6 -4
  10. data/lib/super_diff/active_record/operation_tree_builders/active_record_model.rb +3 -1
  11. data/lib/super_diff/active_record/operation_tree_builders/active_record_relation.rb +3 -1
  12. data/lib/super_diff/active_record/operation_tree_builders.rb +4 -2
  13. data/lib/super_diff/active_record/operation_tree_flatteners/active_record_relation.rb +4 -2
  14. data/lib/super_diff/active_record/operation_tree_flatteners.rb +3 -1
  15. data/lib/super_diff/active_record/operation_trees/active_record_relation.rb +2 -0
  16. data/lib/super_diff/active_record/operation_trees.rb +3 -1
  17. data/lib/super_diff/active_record.rb +10 -8
  18. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +2 -0
  19. data/lib/super_diff/active_support/differs.rb +3 -1
  20. data/lib/super_diff/active_support/inspection_tree_builders/hash_with_indifferent_access.rb +16 -14
  21. data/lib/super_diff/active_support/inspection_tree_builders/ordered_options.rb +16 -14
  22. data/lib/super_diff/active_support/inspection_tree_builders.rb +4 -2
  23. data/lib/super_diff/active_support/object_inspection.rb +6 -4
  24. data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +6 -4
  25. data/lib/super_diff/active_support/operation_tree_builders.rb +3 -1
  26. data/lib/super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access.rb +4 -2
  27. data/lib/super_diff/active_support/operation_tree_flatteners.rb +3 -1
  28. data/lib/super_diff/active_support/operation_trees/hash_with_indifferent_access.rb +2 -0
  29. data/lib/super_diff/active_support/operation_trees.rb +3 -1
  30. data/lib/super_diff/active_support.rb +8 -6
  31. data/lib/super_diff/basic/diff_formatters/collection.rb +18 -18
  32. data/lib/super_diff/basic/diff_formatters/multiline_string.rb +2 -0
  33. data/lib/super_diff/basic/diff_formatters.rb +4 -2
  34. data/lib/super_diff/basic/differs/array.rb +2 -0
  35. data/lib/super_diff/basic/differs/custom_object.rb +3 -1
  36. data/lib/super_diff/basic/differs/date_like.rb +2 -0
  37. data/lib/super_diff/basic/differs/default_object.rb +3 -1
  38. data/lib/super_diff/basic/differs/hash.rb +2 -0
  39. data/lib/super_diff/basic/differs/multiline_string.rb +2 -0
  40. data/lib/super_diff/basic/differs/time_like.rb +2 -0
  41. data/lib/super_diff/basic/differs.rb +11 -9
  42. data/lib/super_diff/basic/inspection_tree_builders/array.rb +5 -3
  43. data/lib/super_diff/basic/inspection_tree_builders/custom_object.rb +5 -3
  44. data/lib/super_diff/basic/inspection_tree_builders/data_object.rb +42 -0
  45. data/lib/super_diff/basic/inspection_tree_builders/date_like.rb +7 -5
  46. data/lib/super_diff/basic/inspection_tree_builders/default_object.rb +7 -5
  47. data/lib/super_diff/basic/inspection_tree_builders/hash.rb +7 -5
  48. data/lib/super_diff/basic/inspection_tree_builders/primitive.rb +3 -1
  49. data/lib/super_diff/basic/inspection_tree_builders/range_object.rb +19 -0
  50. data/lib/super_diff/basic/inspection_tree_builders/time_like.rb +8 -8
  51. data/lib/super_diff/basic/inspection_tree_builders.rb +18 -8
  52. data/lib/super_diff/basic/operation_tree_builders/array.rb +6 -4
  53. data/lib/super_diff/basic/operation_tree_builders/custom_object.rb +3 -1
  54. data/lib/super_diff/basic/operation_tree_builders/data_object.rb +20 -0
  55. data/lib/super_diff/basic/operation_tree_builders/date_like.rb +2 -0
  56. data/lib/super_diff/basic/operation_tree_builders/default_object.rb +32 -31
  57. data/lib/super_diff/basic/operation_tree_builders/hash.rb +49 -46
  58. data/lib/super_diff/basic/operation_tree_builders/multiline_string.rb +5 -3
  59. data/lib/super_diff/basic/operation_tree_builders/time_like.rb +5 -3
  60. data/lib/super_diff/basic/operation_tree_builders.rb +15 -9
  61. data/lib/super_diff/basic/operation_tree_flatteners/array.rb +4 -2
  62. data/lib/super_diff/basic/operation_tree_flatteners/collection.rb +11 -11
  63. data/lib/super_diff/basic/operation_tree_flatteners/custom_object.rb +5 -3
  64. data/lib/super_diff/basic/operation_tree_flatteners/default_object.rb +6 -5
  65. data/lib/super_diff/basic/operation_tree_flatteners/hash.rb +5 -3
  66. data/lib/super_diff/basic/operation_tree_flatteners/multiline_string.rb +3 -1
  67. data/lib/super_diff/basic/operation_tree_flatteners.rb +8 -6
  68. data/lib/super_diff/basic/operation_trees/array.rb +2 -0
  69. data/lib/super_diff/basic/operation_trees/custom_object.rb +2 -0
  70. data/lib/super_diff/basic/operation_trees/default_object.rb +6 -4
  71. data/lib/super_diff/basic/operation_trees/hash.rb +2 -0
  72. data/lib/super_diff/basic/operation_trees/multiline_string.rb +3 -1
  73. data/lib/super_diff/basic/operation_trees.rb +9 -7
  74. data/lib/super_diff/basic.rb +12 -7
  75. data/lib/super_diff/core/abstract_differ.rb +2 -0
  76. data/lib/super_diff/core/abstract_inspection_tree_builder.rb +2 -0
  77. data/lib/super_diff/core/abstract_operation_tree.rb +4 -2
  78. data/lib/super_diff/core/abstract_operation_tree_builder.rb +15 -18
  79. data/lib/super_diff/core/abstract_operation_tree_flattener.rb +5 -3
  80. data/lib/super_diff/core/binary_operation.rb +3 -1
  81. data/lib/super_diff/core/colorized_document_extensions.rb +2 -0
  82. data/lib/super_diff/core/configuration.rb +23 -43
  83. data/lib/super_diff/core/differ_dispatcher.rb +4 -2
  84. data/lib/super_diff/core/gem_version.rb +2 -0
  85. data/lib/super_diff/core/helpers.rb +14 -12
  86. data/lib/super_diff/core/implementation_checks.rb +6 -2
  87. data/lib/super_diff/core/inspection_tree.rb +38 -38
  88. data/lib/super_diff/core/inspection_tree_builder_dispatcher.rb +5 -5
  89. data/lib/super_diff/core/inspection_tree_nodes/as_lines_when_rendering_to_lines.rb +3 -1
  90. data/lib/super_diff/core/inspection_tree_nodes/as_prefix_when_rendering_to_lines.rb +2 -0
  91. data/lib/super_diff/core/inspection_tree_nodes/as_prelude_when_rendering_to_lines.rb +2 -0
  92. data/lib/super_diff/core/inspection_tree_nodes/as_single_line.rb +2 -0
  93. data/lib/super_diff/core/inspection_tree_nodes/base.rb +9 -9
  94. data/lib/super_diff/core/inspection_tree_nodes/inspection.rb +2 -0
  95. data/lib/super_diff/core/inspection_tree_nodes/nesting.rb +2 -0
  96. data/lib/super_diff/core/inspection_tree_nodes/only_when.rb +5 -1
  97. data/lib/super_diff/core/inspection_tree_nodes/text.rb +2 -0
  98. data/lib/super_diff/core/inspection_tree_nodes/when_empty.rb +3 -1
  99. data/lib/super_diff/core/inspection_tree_nodes/when_non_empty.rb +3 -1
  100. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_lines.rb +3 -1
  101. data/lib/super_diff/core/inspection_tree_nodes/when_rendering_to_string.rb +2 -0
  102. data/lib/super_diff/core/inspection_tree_nodes.rb +16 -14
  103. data/lib/super_diff/core/line.rb +9 -7
  104. data/lib/super_diff/core/no_differ_available_error.rb +7 -5
  105. data/lib/super_diff/core/no_inspection_tree_builder_available_error.rb +5 -3
  106. data/lib/super_diff/core/no_operation_tree_available_error.rb +4 -2
  107. data/lib/super_diff/core/no_operation_tree_builder_available_error.rb +7 -5
  108. data/lib/super_diff/core/operation_tree_builder_dispatcher.rb +3 -3
  109. data/lib/super_diff/core/operation_tree_finder.rb +8 -8
  110. data/lib/super_diff/core/prefix_for_next_inspection_tree_node.rb +2 -0
  111. data/lib/super_diff/core/prelude_for_next_inspection_tree_node.rb +2 -0
  112. data/lib/super_diff/core/recursion_guard.rb +6 -4
  113. data/lib/super_diff/core/tiered_lines.rb +2 -0
  114. data/lib/super_diff/core/tiered_lines_elider.rb +53 -54
  115. data/lib/super_diff/core/tiered_lines_formatter.rb +6 -4
  116. data/lib/super_diff/core/unary_operation.rb +2 -0
  117. data/lib/super_diff/core.rb +31 -29
  118. data/lib/super_diff/csi/bold_sequence.rb +2 -0
  119. data/lib/super_diff/csi/color.rb +4 -4
  120. data/lib/super_diff/csi/color_sequence_block.rb +3 -1
  121. data/lib/super_diff/csi/colorized_document.rb +7 -9
  122. data/lib/super_diff/csi/document.rb +15 -18
  123. data/lib/super_diff/csi/eight_bit_color.rb +32 -37
  124. data/lib/super_diff/csi/four_bit_color.rb +12 -9
  125. data/lib/super_diff/csi/reset_sequence.rb +2 -0
  126. data/lib/super_diff/csi/twenty_four_bit_color.rb +22 -21
  127. data/lib/super_diff/csi/uncolorized_document.rb +2 -0
  128. data/lib/super_diff/csi.rb +12 -42
  129. data/lib/super_diff/differs.rb +6 -4
  130. data/lib/super_diff/equality_matchers/array.rb +18 -16
  131. data/lib/super_diff/equality_matchers/base.rb +6 -4
  132. data/lib/super_diff/equality_matchers/default.rb +5 -3
  133. data/lib/super_diff/equality_matchers/defaults.rb +3 -1
  134. data/lib/super_diff/equality_matchers/hash.rb +18 -16
  135. data/lib/super_diff/equality_matchers/main.rb +3 -1
  136. data/lib/super_diff/equality_matchers/multiline_string.rb +18 -16
  137. data/lib/super_diff/equality_matchers/primitive.rb +15 -13
  138. data/lib/super_diff/equality_matchers/singleline_string.rb +16 -14
  139. data/lib/super_diff/equality_matchers.rb +11 -9
  140. data/lib/super_diff/errors.rb +4 -2
  141. data/lib/super_diff/object_inspection.rb +17 -15
  142. data/lib/super_diff/operation_tree_builders.rb +6 -4
  143. data/lib/super_diff/operation_tree_flatteners.rb +6 -4
  144. data/lib/super_diff/operation_trees.rb +6 -4
  145. data/lib/super_diff/operations.rb +4 -2
  146. data/lib/super_diff/rails.rb +4 -2
  147. data/lib/super_diff/rspec/augmented_matcher.rb +3 -1
  148. data/lib/super_diff/rspec/differ.rb +16 -7
  149. data/lib/super_diff/rspec/differs/collection_containing_exactly.rb +2 -0
  150. data/lib/super_diff/rspec/differs/collection_including.rb +2 -0
  151. data/lib/super_diff/rspec/differs/hash_including.rb +2 -0
  152. data/lib/super_diff/rspec/differs/object_having_attributes.rb +2 -0
  153. data/lib/super_diff/rspec/differs.rb +6 -4
  154. data/lib/super_diff/rspec/inspection_tree_builders/collection_containing_exactly.rb +12 -10
  155. data/lib/super_diff/rspec/inspection_tree_builders/collection_including.rb +10 -8
  156. data/lib/super_diff/rspec/inspection_tree_builders/double.rb +20 -18
  157. data/lib/super_diff/rspec/inspection_tree_builders/generic_describable_matcher.rb +2 -0
  158. data/lib/super_diff/rspec/inspection_tree_builders/hash_including.rb +10 -8
  159. data/lib/super_diff/rspec/inspection_tree_builders/instance_of.rb +2 -0
  160. data/lib/super_diff/rspec/inspection_tree_builders/kind_of.rb +2 -0
  161. data/lib/super_diff/rspec/inspection_tree_builders/object_having_attributes.rb +12 -10
  162. data/lib/super_diff/rspec/inspection_tree_builders/primitive.rb +2 -0
  163. data/lib/super_diff/rspec/inspection_tree_builders/value_within.rb +6 -4
  164. data/lib/super_diff/rspec/inspection_tree_builders.rb +12 -10
  165. data/lib/super_diff/rspec/matcher_text_builders/base.rb +12 -12
  166. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +19 -17
  167. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +3 -1
  168. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +7 -5
  169. data/lib/super_diff/rspec/matcher_text_builders/match.rb +6 -4
  170. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +5 -3
  171. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +20 -18
  172. data/lib/super_diff/rspec/matcher_text_builders.rb +9 -7
  173. data/lib/super_diff/rspec/matcher_text_template.rb +34 -39
  174. data/lib/super_diff/rspec/monkey_patches.rb +129 -56
  175. data/lib/super_diff/rspec/object_inspection.rb +7 -5
  176. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +4 -4
  177. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +2 -0
  178. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +2 -0
  179. data/lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb +2 -0
  180. data/lib/super_diff/rspec/operation_tree_builders.rb +6 -4
  181. data/lib/super_diff/rspec-rails.rb +4 -2
  182. data/lib/super_diff/rspec.rb +27 -14
  183. data/lib/super_diff/version.rb +3 -1
  184. data/lib/super_diff.rb +24 -27
  185. data/super_diff.gemspec +20 -18
  186. metadata +15 -182
  187. data/spec/examples.txt +0 -704
  188. data/spec/integration/rails/active_record_spec.rb +0 -21
  189. data/spec/integration/rails/active_support_spec.rb +0 -19
  190. data/spec/integration/rails/engines_spec.rb +0 -25
  191. data/spec/integration/rails/hash_with_indifferent_access_spec.rb +0 -21
  192. data/spec/integration/rspec/be_falsey_matcher_spec.rb +0 -58
  193. data/spec/integration/rspec/be_matcher_spec.rb +0 -605
  194. data/spec/integration/rspec/be_nil_matcher_spec.rb +0 -57
  195. data/spec/integration/rspec/be_predicate_matcher_spec.rb +0 -615
  196. data/spec/integration/rspec/be_truthy_matcher_spec.rb +0 -62
  197. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +0 -377
  198. data/spec/integration/rspec/eq_matcher_spec.rb +0 -1066
  199. data/spec/integration/rspec/generic_describable_matchers_spec.rb +0 -177
  200. data/spec/integration/rspec/have_attributes_matcher_spec.rb +0 -443
  201. data/spec/integration/rspec/have_predicate_matcher_spec.rb +0 -478
  202. data/spec/integration/rspec/include_matcher_spec.rb +0 -452
  203. data/spec/integration/rspec/magic_metadata_spec.rb +0 -51
  204. data/spec/integration/rspec/match_array_matcher_spec.rb +0 -424
  205. data/spec/integration/rspec/match_matcher_spec.rb +0 -1359
  206. data/spec/integration/rspec/raise_error_matcher_spec.rb +0 -1488
  207. data/spec/integration/rspec/respond_to_matcher_spec.rb +0 -999
  208. data/spec/integration/rspec/third_party_matcher_spec.rb +0 -245
  209. data/spec/integration/rspec/unhandled_errors_spec.rb +0 -150
  210. data/spec/internal/log/test.log +0 -0
  211. data/spec/spec_helper.rb +0 -90
  212. data/spec/support/colorizer.rb +0 -9
  213. data/spec/support/command_runner.rb +0 -253
  214. data/spec/support/helpers.rb +0 -21
  215. data/spec/support/integration/helpers.rb +0 -124
  216. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +0 -104
  217. data/spec/support/integration/matchers.rb +0 -177
  218. data/spec/support/integration/test_programs/base.rb +0 -143
  219. data/spec/support/integration/test_programs/plain.rb +0 -19
  220. data/spec/support/integration/test_programs/rspec_active_record.rb +0 -20
  221. data/spec/support/integration/test_programs/rspec_active_support.rb +0 -20
  222. data/spec/support/integration/test_programs/rspec_rails.rb +0 -20
  223. data/spec/support/integration/test_programs/rspec_rails_engine.rb +0 -20
  224. data/spec/support/models/a.rb +0 -11
  225. data/spec/support/models/active_record/person.rb +0 -28
  226. data/spec/support/models/active_record/query.rb +0 -15
  227. data/spec/support/models/active_record/shipping_address.rb +0 -24
  228. data/spec/support/models/customer.rb +0 -22
  229. data/spec/support/models/empty_class.rb +0 -6
  230. data/spec/support/models/item.rb +0 -10
  231. data/spec/support/models/order.rb +0 -9
  232. data/spec/support/models/person.rb +0 -20
  233. data/spec/support/models/player.rb +0 -30
  234. data/spec/support/models/shipping_address.rb +0 -25
  235. data/spec/support/shared_examples/active_record.rb +0 -428
  236. data/spec/support/shared_examples/active_support.rb +0 -188
  237. data/spec/support/shared_examples/elided_diffs.rb +0 -938
  238. data/spec/support/shared_examples/hash_with_indifferent_access.rb +0 -749
  239. data/spec/support/shared_examples/key.rb +0 -123
  240. data/spec/support/unit/helpers.rb +0 -24
  241. data/spec/support/unit/matchers/be_deprecated_in_favor_of.rb +0 -39
  242. data/spec/support/unit/matchers/match_output.rb +0 -40
  243. data/spec/unit/active_record/object_inspection_spec.rb +0 -289
  244. data/spec/unit/active_support/object_inspection_spec.rb +0 -170
  245. data/spec/unit/basic/operation_tree_flatteners/array_spec.rb +0 -637
  246. data/spec/unit/basic/operation_tree_flatteners/custom_object_spec.rb +0 -685
  247. data/spec/unit/basic/operation_tree_flatteners/default_object_spec.rb +0 -685
  248. data/spec/unit/basic/operation_tree_flatteners/hash_spec.rb +0 -671
  249. data/spec/unit/basic/operation_tree_flatteners/multiline_string_spec.rb +0 -131
  250. data/spec/unit/core/helpers_spec.rb +0 -68
  251. data/spec/unit/core/tiered_lines_elider_spec.rb +0 -6328
  252. data/spec/unit/core/tiered_lines_formatter_spec.rb +0 -131
  253. data/spec/unit/deprecations_spec.rb +0 -176
  254. data/spec/unit/equality_matchers/main_spec.rb +0 -1842
  255. data/spec/unit/rspec/matchers/be_compared_to_spec.rb +0 -23
  256. data/spec/unit/rspec/matchers/be_falsey_spec.rb +0 -9
  257. data/spec/unit/rspec/matchers/be_nil_spec.rb +0 -9
  258. data/spec/unit/rspec/matchers/be_predicate_spec.rb +0 -31
  259. data/spec/unit/rspec/matchers/be_spec.rb +0 -17
  260. data/spec/unit/rspec/matchers/be_truthy_spec.rb +0 -9
  261. data/spec/unit/rspec/matchers/contain_exactly_spec.rb +0 -11
  262. data/spec/unit/rspec/matchers/eq_spec.rb +0 -9
  263. data/spec/unit/rspec/matchers/have_attributes_spec.rb +0 -11
  264. data/spec/unit/rspec/matchers/have_predicate_spec.rb +0 -21
  265. data/spec/unit/rspec/matchers/include_spec.rb +0 -21
  266. data/spec/unit/rspec/matchers/match_array_spec.rb +0 -11
  267. data/spec/unit/rspec/matchers/match_spec.rb +0 -9
  268. data/spec/unit/rspec/matchers/raise_error_spec.rb +0 -77
  269. data/spec/unit/rspec/matchers/respond_to_spec.rb +0 -85
  270. data/spec/unit/rspec/object_inspection/rspec_matcher_spec.rb +0 -91
  271. data/spec/unit/rspec/object_inspection_spec.rb +0 -471
  272. data/spec/unit/super_diff_spec.rb +0 -2115
@@ -1,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
@@ -9,19 +11,19 @@ module SuperDiff
9
11
  def call
10
12
  Core::InspectionTree.new do |t1|
11
13
  t1.as_prelude_when_rendering_to_lines do |t2|
12
- t2.add_text "#<a value within "
14
+ t2.add_text '#<a value within '
13
15
 
14
16
  t2.add_inspection_of(
15
- object.base_matcher.instance_variable_get("@delta"),
17
+ object.base_matcher.instance_variable_get('@delta'),
16
18
  as_lines: false
17
19
  )
18
20
 
19
- t2.add_text " of "
21
+ t2.add_text ' of '
20
22
  end
21
23
 
22
24
  t1.add_inspection_of object.expected
23
25
 
24
- t1.add_text ">"
26
+ t1.add_text '>'
25
27
  end
26
28
  end
27
29
  end
@@ -1,39 +1,41 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module InspectionTreeBuilders
4
6
  autoload(
5
7
  :CollectionContainingExactly,
6
- "super_diff/rspec/inspection_tree_builders/collection_containing_exactly"
8
+ 'super_diff/rspec/inspection_tree_builders/collection_containing_exactly'
7
9
  )
8
10
  autoload(
9
11
  :CollectionIncluding,
10
- "super_diff/rspec/inspection_tree_builders/collection_including"
12
+ 'super_diff/rspec/inspection_tree_builders/collection_including'
11
13
  )
12
- autoload :Double, "super_diff/rspec/inspection_tree_builders/double"
14
+ autoload :Double, 'super_diff/rspec/inspection_tree_builders/double'
13
15
  autoload(
14
16
  :GenericDescribableMatcher,
15
- "super_diff/rspec/inspection_tree_builders/generic_describable_matcher"
17
+ 'super_diff/rspec/inspection_tree_builders/generic_describable_matcher'
16
18
  )
17
19
  autoload(
18
20
  :HashIncluding,
19
- "super_diff/rspec/inspection_tree_builders/hash_including"
21
+ 'super_diff/rspec/inspection_tree_builders/hash_including'
20
22
  )
21
23
  autoload(
22
24
  :InstanceOf,
23
- "super_diff/rspec/inspection_tree_builders/instance_of"
25
+ 'super_diff/rspec/inspection_tree_builders/instance_of'
24
26
  )
25
- autoload :KindOf, "super_diff/rspec/inspection_tree_builders/kind_of"
27
+ autoload :KindOf, 'super_diff/rspec/inspection_tree_builders/kind_of'
26
28
  autoload(
27
29
  :ObjectHavingAttributes,
28
- "super_diff/rspec/inspection_tree_builders/object_having_attributes"
30
+ 'super_diff/rspec/inspection_tree_builders/object_having_attributes'
29
31
  )
30
32
  autoload(
31
33
  :Primitive,
32
- "super_diff/rspec/inspection_tree_builders/primitive"
34
+ 'super_diff/rspec/inspection_tree_builders/primitive'
33
35
  )
34
36
  autoload(
35
37
  :ValueWithin,
36
- "super_diff/rspec/inspection_tree_builders/value_within"
38
+ 'super_diff/rspec/inspection_tree_builders/value_within'
37
39
  )
38
40
  end
39
41
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -40,11 +42,9 @@ module SuperDiff
40
42
 
41
43
  protected
42
44
 
43
- def add_extra_after_expected_to(template)
44
- end
45
+ def add_extra_after_expected_to(template); end
45
46
 
46
- def add_extra_after_error
47
- end
47
+ def add_extra_after_error; end
48
48
 
49
49
  def actual_color
50
50
  SuperDiff.configuration.actual_color
@@ -74,7 +74,7 @@ module SuperDiff
74
74
  template.add_break
75
75
  template.insert expected_section
76
76
  add_extra_after_expected_to(template)
77
- template.add_text_in_singleline_mode "."
77
+ template.add_text_in_singleline_mode '.'
78
78
  add_extra_after_error
79
79
  end
80
80
 
@@ -83,12 +83,12 @@ module SuperDiff
83
83
  template.add_text_in_multiline_mode do
84
84
  actual_phrase.rjust(phrase_width)
85
85
  end
86
- template.add_text " "
86
+ template.add_text ' '
87
87
  add_actual_value
88
88
  end
89
89
 
90
90
  def actual_phrase
91
- "Expected"
91
+ 'Expected'
92
92
  end
93
93
 
94
94
  def add_actual_value
@@ -109,7 +109,7 @@ module SuperDiff
109
109
  if respond_to?(:add_expected_value_to, true)
110
110
  add_expected_value_to(template, expected_for_failure_message)
111
111
  else
112
- template.add_text " "
112
+ template.add_text ' '
113
113
  template.add_text_in_color(
114
114
  expected_color,
115
115
  expected_for_failure_message
@@ -121,7 +121,7 @@ module SuperDiff
121
121
  if respond_to?(:add_expected_value_to, true)
122
122
  add_expected_value_to(template, expected_for_description)
123
123
  else
124
- template.add_text " "
124
+ template.add_text ' '
125
125
  template.add_text_in_color(expected_color, expected_for_description)
126
126
  end
127
127
  end
@@ -131,13 +131,13 @@ module SuperDiff
131
131
  end
132
132
 
133
133
  def to_or_not_to
134
- negated? ? "not to" : "to"
134
+ negated? ? 'not to' : 'to'
135
135
  end
136
136
 
137
137
  def phrase_width
138
138
  [actual_phrase, expected_phrase].map do |text|
139
- Csi.decolorize(text.to_s).length
140
- end
139
+ Csi.decolorize(text.to_s).length
140
+ end
141
141
  .max
142
142
  end
143
143
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -18,11 +20,11 @@ module SuperDiff
18
20
 
19
21
  def expected_action_for_failure_message
20
22
  if predicate_accessible?
21
- "return a truthy result for"
23
+ 'return a truthy result for'
22
24
  elsif private_predicate?
23
- "have a public method"
25
+ 'have a public method'
24
26
  else
25
- "respond to"
27
+ 'respond to'
26
28
  end
27
29
  end
28
30
 
@@ -35,12 +37,12 @@ module SuperDiff
35
37
  end
36
38
 
37
39
  def add_expected_value_to_failure_message(template)
38
- template.add_text " "
40
+ template.add_text ' '
39
41
  template.add_text_in_color(
40
42
  expected_color,
41
43
  "#{expected_for_failure_message}?"
42
44
  )
43
- template.add_text " or "
45
+ template.add_text ' or '
44
46
  template.add_text_in_color(
45
47
  expected_color,
46
48
  "#{expected_for_failure_message}s?"
@@ -48,12 +50,12 @@ module SuperDiff
48
50
  end
49
51
 
50
52
  def add_expected_value_to_description(template)
51
- template.add_text " "
53
+ template.add_text ' '
52
54
  template.add_text_in_color(
53
55
  expected_color,
54
56
  "`#{expected_for_description}?`"
55
57
  )
56
- template.add_text " or "
58
+ template.add_text ' or '
57
59
  template.add_text_in_color(
58
60
  expected_color,
59
61
  "`#{expected_for_description}s?`"
@@ -63,18 +65,18 @@ module SuperDiff
63
65
  def add_extra_after_error
64
66
  if expected_predicate_method_name == :true?
65
67
  template.add_text "\n\n"
66
- template.add_text "(Perhaps you want to use "
67
- template.add_text_in_color(:blue, "be(true)")
68
- template.add_text " or "
69
- template.add_text_in_color(:blue, "be_truthy")
70
- template.add_text " instead?)"
68
+ template.add_text '(Perhaps you want to use '
69
+ template.add_text_in_color(:blue, 'be(true)')
70
+ template.add_text ' or '
71
+ template.add_text_in_color(:blue, 'be_truthy')
72
+ template.add_text ' instead?)'
71
73
  elsif expected_predicate_method_name == :false?
72
74
  template.add_text "\n\n"
73
- template.add_text "(Perhaps you want to use "
74
- template.add_text_in_color(:blue, "be(false)")
75
- template.add_text " or "
76
- template.add_text_in_color(:blue, "be_falsey")
77
- template.add_text " instead?)"
75
+ template.add_text '(Perhaps you want to use '
76
+ template.add_text_in_color(:blue, 'be(false)')
77
+ template.add_text ' or '
78
+ template.add_text_in_color(:blue, 'be_falsey')
79
+ template.add_text ' instead?)'
78
80
  end
79
81
  end
80
82
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -5,7 +7,7 @@ module SuperDiff
5
7
  protected
6
8
 
7
9
  def add_expected_value_to(template, expected)
8
- template.add_text " "
10
+ template.add_text ' '
9
11
  template.add_list_in_color(expected_color, expected)
10
12
  end
11
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -12,11 +14,11 @@ module SuperDiff
12
14
 
13
15
  def expected_action_for_failure_message
14
16
  if predicate_accessible?
15
- "return a truthy result for"
17
+ 'return a truthy result for'
16
18
  elsif private_predicate?
17
- "have a public method"
19
+ 'have a public method'
18
20
  else
19
- "respond to"
21
+ 'respond to'
20
22
  end
21
23
  end
22
24
 
@@ -29,7 +31,7 @@ module SuperDiff
29
31
  end
30
32
 
31
33
  def add_expected_value_to_failure_message(template)
32
- template.add_text " "
34
+ template.add_text ' '
33
35
  template.add_text_in_color(
34
36
  expected_color,
35
37
  expected_for_failure_message
@@ -37,7 +39,7 @@ module SuperDiff
37
39
  end
38
40
 
39
41
  def add_expected_value_to_description(template)
40
- template.add_text " "
42
+ template.add_text ' '
41
43
  template.add_text_in_color(
42
44
  expected_color,
43
45
  "`#{expected_for_description}`"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -8,10 +10,10 @@ module SuperDiff
8
10
  end
9
11
 
10
12
  def add_extra
11
- if expected_captures
12
- template.add_text "with captures "
13
- template.add_text_in_color :blue, description_of(expected_captures)
14
- end
13
+ return unless expected_captures
14
+
15
+ template.add_text 'with captures '
16
+ template.add_text_in_color :blue, description_of(expected_captures)
15
17
  end
16
18
 
17
19
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -5,10 +7,10 @@ module SuperDiff
5
7
  protected
6
8
 
7
9
  def actual_phrase
8
- if actual == "exception-free block"
9
- "Expected"
10
+ if actual == 'exception-free block'
11
+ 'Expected'
10
12
  else
11
- "Expected raised exception"
13
+ 'Expected raised exception'
12
14
  end
13
15
  end
14
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
@@ -19,7 +21,7 @@ module SuperDiff
19
21
  protected
20
22
 
21
23
  def add_expected_value_to(template, expected)
22
- template.add_text " "
24
+ template.add_text ' '
23
25
  template.add_list_in_color(expected_color, expected)
24
26
  end
25
27
 
@@ -28,7 +30,7 @@ module SuperDiff
28
30
 
29
31
  if arbitrary_keywords?
30
32
  add_arbitrary_keywords_clause_to(template)
31
- elsif has_expected_keywords?
33
+ elsif expected_keywords?
32
34
  add_keywords_clause_to(template)
33
35
  end
34
36
 
@@ -43,8 +45,8 @@ module SuperDiff
43
45
  @arbitrary_keywords
44
46
  end
45
47
 
46
- def has_expected_keywords?
47
- expected_keywords && expected_keywords.count > 0
48
+ def expected_keywords?
49
+ expected_keywords&.count&.positive?
48
50
  end
49
51
 
50
52
  def unlimited_arguments?
@@ -52,34 +54,34 @@ module SuperDiff
52
54
  end
53
55
 
54
56
  def add_arity_clause_to(template)
55
- template.add_text " with "
57
+ template.add_text ' with '
56
58
  template.add_text_in_color expected_color, expected_arity
57
- template.add_text " "
58
- template.add_text pluralize("argument", expected_arity)
59
+ template.add_text ' '
60
+ template.add_text pluralize('argument', expected_arity)
59
61
  end
60
62
 
61
63
  def add_arbitrary_keywords_clause_to(template)
62
- template.add_text " with "
63
- template.add_text_in_color expected_color, "any"
64
- template.add_text " keywords"
64
+ template.add_text ' with '
65
+ template.add_text_in_color expected_color, 'any'
66
+ template.add_text ' keywords'
65
67
  end
66
68
 
67
69
  def add_keywords_clause_to(template)
68
- template.add_text " with "
69
- template.add_text pluralize("keyword", expected_keywords.length)
70
- template.add_text " "
70
+ template.add_text ' with '
71
+ template.add_text pluralize('keyword', expected_keywords.length)
72
+ template.add_text ' '
71
73
  template.add_list_in_color expected_color, expected_keywords
72
74
  end
73
75
 
74
76
  def add_unlimited_arguments_clause_to(template)
75
- if arbitrary_keywords? || has_expected_keywords?
76
- template.add_text " and "
77
+ if arbitrary_keywords? || expected_keywords?
78
+ template.add_text ' and '
77
79
  else
78
- template.add_text " with "
80
+ template.add_text ' with '
79
81
  end
80
82
 
81
- template.add_text_in_color expected_color, "unlimited"
82
- template.add_text " arguments"
83
+ template.add_text_in_color expected_color, 'unlimited'
84
+ template.add_text ' arguments'
83
85
  end
84
86
 
85
87
  def pluralize(word, count)
@@ -1,25 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  module MatcherTextBuilders
4
- autoload :Base, "super_diff/rspec/matcher_text_builders/base"
6
+ autoload :Base, 'super_diff/rspec/matcher_text_builders/base'
5
7
  autoload(
6
8
  :BePredicate,
7
- "super_diff/rspec/matcher_text_builders/be_predicate"
9
+ 'super_diff/rspec/matcher_text_builders/be_predicate'
8
10
  )
9
11
  autoload(
10
12
  :ContainExactly,
11
- "super_diff/rspec/matcher_text_builders/contain_exactly"
13
+ 'super_diff/rspec/matcher_text_builders/contain_exactly'
12
14
  )
13
15
  autoload(
14
16
  :HavePredicate,
15
- "super_diff/rspec/matcher_text_builders/have_predicate"
17
+ 'super_diff/rspec/matcher_text_builders/have_predicate'
16
18
  )
17
- autoload :Match, "super_diff/rspec/matcher_text_builders/match"
19
+ autoload :Match, 'super_diff/rspec/matcher_text_builders/match'
18
20
  autoload(
19
21
  :RaiseError,
20
- "super_diff/rspec/matcher_text_builders/raise_error"
22
+ 'super_diff/rspec/matcher_text_builders/raise_error'
21
23
  )
22
- autoload(:RespondTo, "super_diff/rspec/matcher_text_builders/respond_to")
24
+ autoload(:RespondTo, 'super_diff/rspec/matcher_text_builders/respond_to')
23
25
  end
24
26
  end
25
27
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SuperDiff
2
4
  module RSpec
3
5
  class MatcherTextTemplate
@@ -13,41 +15,41 @@ module SuperDiff
13
15
  yield self if block_given?
14
16
  end
15
17
 
16
- def add_text(*args, &block)
17
- add_token(PlainText, *args, &block)
18
+ def add_text(...)
19
+ add_token(PlainText, ...)
18
20
  end
19
21
 
20
- def add_text_in_color(*args, &block)
21
- add_token(ColorizedText, *args, &block)
22
+ def add_text_in_color(...)
23
+ add_token(ColorizedText, ...)
22
24
  end
23
25
 
24
- def add_text_in_singleline_mode(*args, &block)
25
- add_token(PlainTextInSinglelineMode, *args, &block)
26
+ def add_text_in_singleline_mode(...)
27
+ add_token(PlainTextInSinglelineMode, ...)
26
28
  end
27
29
 
28
- def add_text_in_multiline_mode(*args, &block)
29
- add_token(PlainTextInMultilineMode, *args, &block)
30
+ def add_text_in_multiline_mode(...)
31
+ add_token(PlainTextInMultilineMode, ...)
30
32
  end
31
33
 
32
- def add_list_in_color(*args, &block)
33
- add_token(ColorizedList, *args, &block)
34
+ def add_list_in_color(...)
35
+ add_token(ColorizedList, ...)
34
36
  end
35
37
 
36
- def add_break(*args, &block)
37
- add_token(Break, *args, &block)
38
+ def add_break(...)
39
+ add_token(Break, ...)
38
40
  end
39
41
 
40
- def insert(*args, &block)
41
- add_token(Insertion, *args, &block)
42
+ def insert(...)
43
+ add_token(Insertion, ...)
42
44
  end
43
45
 
44
46
  def length_of_first_paragraph
45
- Csi.decolorize(to_string_in_singleline_mode).split(/\n\n/).first.length
47
+ Csi.decolorize(to_string_in_singleline_mode).split("\n\n").first.length
46
48
  end
47
49
 
48
50
  def to_s(as_single_line: nil)
49
51
  if length_of_first_paragraph > MAX_LINE_LENGTH ||
50
- as_single_line == false
52
+ as_single_line == false
51
53
  to_string_in_multiline_mode
52
54
  elsif length_of_first_paragraph <= MAX_LINE_LENGTH ||
53
55
  as_single_line == true
@@ -67,21 +69,17 @@ module SuperDiff
67
69
 
68
70
  attr_reader :tokens
69
71
 
70
- def add_token(klass, *args, &block)
71
- tokens << klass.new(*args, &block)
72
+ def add_token(klass, ...)
73
+ tokens << klass.new(...)
72
74
  end
73
75
 
74
76
  class Base
75
77
  def to_string_in_singleline_mode
76
- raise NotImplementedError.new(
77
- "#{self.class} must support #to_string_in_singleline_mode"
78
- )
78
+ raise NotImplementedError, "#{self.class} must support #to_string_in_singleline_mode"
79
79
  end
80
80
 
81
81
  def to_string_in_multiline_mode
82
- raise NotImplementedError.new(
83
- "#{self.class} must support #to_string_in_multiline_mode"
84
- )
82
+ raise NotImplementedError, "#{self.class} must support #to_string_in_multiline_mode"
85
83
  end
86
84
 
87
85
  def length
@@ -91,6 +89,7 @@ module SuperDiff
91
89
 
92
90
  class Text < Base
93
91
  def initialize(immediate_value = nil, &block)
92
+ super()
94
93
  @immediate_value = immediate_value
95
94
  @block = block
96
95
  end
@@ -104,7 +103,7 @@ module SuperDiff
104
103
  end
105
104
 
106
105
  def to_s
107
- raise NotImplementedError.new("#{self.class} must support #to_s")
106
+ raise NotImplementedError, "#{self.class} must support #to_s"
108
107
  end
109
108
 
110
109
  protected
@@ -112,11 +111,7 @@ module SuperDiff
112
111
  attr_reader :immediate_value, :block
113
112
 
114
113
  def evaluate
115
- if immediate_value && block
116
- raise ArgumentError.new(
117
- "Cannot provide both immediate value and block"
118
- )
119
- end
114
+ raise ArgumentError, 'Cannot provide both immediate value and block' if immediate_value && block
120
115
 
121
116
  immediate_value || block.call
122
117
  end
@@ -124,12 +119,12 @@ module SuperDiff
124
119
  def to_sentence(values)
125
120
  case values.length
126
121
  when 0
127
- ""
122
+ ''
128
123
  when 1
129
124
  values[0]
130
125
  else
131
126
  # TODO: Use Oxford comma
132
- values[0..-2].join(", ") + " and #{values[-1]}"
127
+ values[0..-2].join(', ') + " and #{values[-1]}"
133
128
  end
134
129
  end
135
130
  end
@@ -141,8 +136,8 @@ module SuperDiff
141
136
  end
142
137
 
143
138
  class ColorizedText < Text
144
- def initialize(color, *args, &block)
145
- super(*args, &block)
139
+ def initialize(color, ...)
140
+ super(...)
146
141
 
147
142
  @color = color
148
143
  end
@@ -165,8 +160,8 @@ module SuperDiff
165
160
  end
166
161
 
167
162
  class ColorizedList < Text
168
- def initialize(color, *args, &block)
169
- super(*args, &block)
163
+ def initialize(color, ...)
164
+ super(...)
170
165
 
171
166
  @color = color
172
167
  end
@@ -199,13 +194,13 @@ module SuperDiff
199
194
  end
200
195
 
201
196
  def to_string_in_multiline_mode
202
- ""
197
+ ''
203
198
  end
204
199
  end
205
200
 
206
201
  class PlainTextInMultilineMode < Text
207
202
  def to_string_in_singleline_mode
208
- ""
203
+ ''
209
204
  end
210
205
 
211
206
  def to_string_in_multiline_mode
@@ -215,7 +210,7 @@ module SuperDiff
215
210
 
216
211
  class Break < Base
217
212
  def to_string_in_singleline_mode
218
- " "
213
+ ' '
219
214
  end
220
215
 
221
216
  def to_string_in_multiline_mode