super_diff 0.5.3 → 0.8.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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -20
  3. data/lib/super_diff.rb +46 -7
  4. data/lib/super_diff/active_record.rb +7 -7
  5. data/lib/super_diff/active_record/differs/active_record_relation.rb +3 -13
  6. data/lib/super_diff/active_record/object_inspection.rb +2 -6
  7. data/lib/super_diff/active_record/object_inspection/inspection_tree_builders.rb +16 -0
  8. data/lib/super_diff/active_record/object_inspection/{inspectors → inspection_tree_builders}/active_record_model.rb +19 -20
  9. data/lib/super_diff/active_record/object_inspection/{inspectors → inspection_tree_builders}/active_record_relation.rb +9 -8
  10. data/lib/super_diff/active_record/operation_tree_flatteners.rb +10 -0
  11. data/lib/super_diff/active_record/operation_tree_flatteners/active_record_relation.rb +17 -0
  12. data/lib/super_diff/active_record/operation_trees/active_record_relation.rb +8 -7
  13. data/lib/super_diff/active_support.rb +8 -8
  14. data/lib/super_diff/active_support/differs/hash_with_indifferent_access.rb +3 -13
  15. data/lib/super_diff/active_support/object_inspection.rb +2 -6
  16. data/lib/super_diff/active_support/object_inspection/{inspectors.rb → inspection_tree_builders.rb} +2 -2
  17. data/lib/super_diff/active_support/object_inspection/inspection_tree_builders/hash_with_indifferent_access.rb +37 -0
  18. data/lib/super_diff/active_support/operation_tree_builders/hash_with_indifferent_access.rb +17 -0
  19. data/lib/super_diff/active_support/operation_tree_flatteners.rb +10 -0
  20. data/lib/super_diff/active_support/operation_tree_flatteners/hash_with_indifferent_access.rb +17 -0
  21. data/lib/super_diff/active_support/operation_trees/hash_with_indifferent_access.rb +4 -7
  22. data/lib/super_diff/colorized_document_extensions.rb +9 -6
  23. data/lib/super_diff/configuration.rb +102 -19
  24. data/lib/super_diff/csi.rb +1 -1
  25. data/lib/super_diff/csi/four_bit_color.rb +0 -2
  26. data/lib/super_diff/diff_formatters/collection.rb +2 -2
  27. data/lib/super_diff/diff_formatters/multiline_string.rb +4 -4
  28. data/lib/super_diff/differs/array.rb +1 -1
  29. data/lib/super_diff/differs/base.rb +3 -21
  30. data/lib/super_diff/differs/custom_object.rb +1 -1
  31. data/lib/super_diff/differs/default_object.rb +1 -1
  32. data/lib/super_diff/differs/hash.rb +1 -1
  33. data/lib/super_diff/differs/main.rb +1 -7
  34. data/lib/super_diff/differs/multiline_string.rb +1 -1
  35. data/lib/super_diff/differs/time_like.rb +1 -1
  36. data/lib/super_diff/equality_matchers/array.rb +4 -4
  37. data/lib/super_diff/equality_matchers/default.rb +4 -4
  38. data/lib/super_diff/equality_matchers/hash.rb +4 -4
  39. data/lib/super_diff/equality_matchers/multiline_string.rb +4 -4
  40. data/lib/super_diff/equality_matchers/primitive.rb +6 -9
  41. data/lib/super_diff/equality_matchers/singleline_string.rb +4 -4
  42. data/lib/super_diff/gem_version.rb +45 -0
  43. data/lib/super_diff/helpers.rb +52 -2
  44. data/lib/super_diff/line.rb +83 -0
  45. data/lib/super_diff/object_inspection.rb +12 -9
  46. data/lib/super_diff/object_inspection/inspection_tree.rb +183 -81
  47. data/lib/super_diff/object_inspection/inspection_tree_builders.rb +44 -0
  48. data/lib/super_diff/object_inspection/inspection_tree_builders/array.rb +38 -0
  49. data/lib/super_diff/object_inspection/inspection_tree_builders/base.rb +27 -0
  50. data/lib/super_diff/object_inspection/inspection_tree_builders/custom_object.rb +37 -0
  51. data/lib/super_diff/object_inspection/inspection_tree_builders/default_object.rb +63 -0
  52. data/lib/super_diff/object_inspection/{inspectors → inspection_tree_builders}/defaults.rb +1 -2
  53. data/lib/super_diff/object_inspection/inspection_tree_builders/hash.rb +46 -0
  54. data/lib/super_diff/object_inspection/{inspectors → inspection_tree_builders}/main.rb +5 -10
  55. data/lib/super_diff/object_inspection/inspection_tree_builders/primitive.rb +21 -0
  56. data/lib/super_diff/object_inspection/inspection_tree_builders/time_like.rb +64 -0
  57. data/lib/super_diff/object_inspection/nodes.rb +33 -32
  58. data/lib/super_diff/object_inspection/nodes/as_lines_when_rendering_to_lines.rb +97 -0
  59. data/lib/super_diff/object_inspection/nodes/as_prefix_when_rendering_to_lines.rb +27 -0
  60. data/lib/super_diff/object_inspection/nodes/as_prelude_when_rendering_to_lines.rb +27 -0
  61. data/lib/super_diff/object_inspection/nodes/as_single_line.rb +33 -0
  62. data/lib/super_diff/object_inspection/nodes/base.rb +55 -20
  63. data/lib/super_diff/object_inspection/nodes/inspection.rb +47 -7
  64. data/lib/super_diff/object_inspection/nodes/nesting.rb +16 -5
  65. data/lib/super_diff/object_inspection/nodes/only_when.rb +54 -0
  66. data/lib/super_diff/object_inspection/nodes/text.rb +16 -2
  67. data/lib/super_diff/object_inspection/nodes/when_empty.rb +21 -6
  68. data/lib/super_diff/object_inspection/nodes/when_non_empty.rb +20 -5
  69. data/lib/super_diff/object_inspection/nodes/when_rendering_to_lines.rb +27 -0
  70. data/lib/super_diff/object_inspection/nodes/when_rendering_to_string.rb +27 -0
  71. data/lib/super_diff/object_inspection/prefix_for_next_node.rb +6 -0
  72. data/lib/super_diff/object_inspection/prelude_for_next_node.rb +6 -0
  73. data/lib/super_diff/operation_tree_builders/array.rb +7 -10
  74. data/lib/super_diff/operation_tree_builders/base.rb +6 -6
  75. data/lib/super_diff/operation_tree_builders/custom_object.rb +5 -2
  76. data/lib/super_diff/operation_tree_builders/default_object.rb +1 -1
  77. data/lib/super_diff/operation_tree_builders/defaults.rb +1 -1
  78. data/lib/super_diff/operation_tree_builders/hash.rb +1 -8
  79. data/lib/super_diff/operation_tree_builders/multiline_string.rb +2 -6
  80. data/lib/super_diff/operation_tree_builders/time_like.rb +2 -2
  81. data/lib/super_diff/operation_tree_flatteners.rb +20 -0
  82. data/lib/super_diff/operation_tree_flatteners/array.rb +15 -0
  83. data/lib/super_diff/operation_tree_flatteners/base.rb +54 -0
  84. data/lib/super_diff/operation_tree_flatteners/collection.rb +139 -0
  85. data/lib/super_diff/operation_tree_flatteners/custom_object.rb +28 -0
  86. data/lib/super_diff/operation_tree_flatteners/default_object.rb +32 -0
  87. data/lib/super_diff/operation_tree_flatteners/hash.rb +41 -0
  88. data/lib/super_diff/operation_tree_flatteners/multiline_string.rb +17 -0
  89. data/lib/super_diff/operation_trees/array.rb +4 -7
  90. data/lib/super_diff/operation_trees/base.rb +39 -16
  91. data/lib/super_diff/operation_trees/custom_object.rb +4 -8
  92. data/lib/super_diff/operation_trees/default_object.rb +28 -13
  93. data/lib/super_diff/operation_trees/hash.rb +4 -7
  94. data/lib/super_diff/operation_trees/main.rb +1 -1
  95. data/lib/super_diff/operation_trees/multiline_string.rb +4 -7
  96. data/lib/super_diff/operations/binary_operation.rb +1 -6
  97. data/lib/super_diff/operations/unary_operation.rb +2 -30
  98. data/lib/super_diff/recursion_guard.rb +3 -3
  99. data/lib/super_diff/rspec.rb +41 -13
  100. data/lib/super_diff/rspec/differs/collection_including.rb +4 -2
  101. data/lib/super_diff/rspec/differs/hash_including.rb +4 -2
  102. data/lib/super_diff/rspec/matcher_text_builders/base.rb +7 -7
  103. data/lib/super_diff/rspec/matcher_text_builders/be_predicate.rb +6 -6
  104. data/lib/super_diff/rspec/matcher_text_builders/contain_exactly.rb +1 -1
  105. data/lib/super_diff/rspec/matcher_text_builders/have_predicate.rb +4 -4
  106. data/lib/super_diff/rspec/matcher_text_builders/raise_error.rb +1 -1
  107. data/lib/super_diff/rspec/matcher_text_builders/respond_to.rb +5 -5
  108. data/lib/super_diff/rspec/monkey_patches.rb +353 -306
  109. data/lib/super_diff/rspec/object_inspection.rb +4 -1
  110. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders.rb +44 -0
  111. data/lib/super_diff/rspec/object_inspection/{inspectors → inspection_tree_builders}/collection_containing_exactly.rb +9 -8
  112. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/collection_including.rb +34 -0
  113. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/double.rb +103 -0
  114. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/hash_including.rb +36 -0
  115. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/instance_of.rb +26 -0
  116. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/kind_of.rb +26 -0
  117. data/lib/super_diff/rspec/object_inspection/{inspectors → inspection_tree_builders}/object_having_attributes.rb +10 -12
  118. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/primitive.rb +10 -0
  119. data/lib/super_diff/rspec/object_inspection/inspection_tree_builders/value_within.rb +33 -0
  120. data/lib/super_diff/rspec/operation_tree_builders/collection_containing_exactly.rb +12 -4
  121. data/lib/super_diff/rspec/operation_tree_builders/collection_including.rb +10 -3
  122. data/lib/super_diff/rspec/operation_tree_builders/hash_including.rb +10 -3
  123. data/lib/super_diff/tiered_lines.rb +4 -0
  124. data/lib/super_diff/tiered_lines_elider.rb +490 -0
  125. data/lib/super_diff/tiered_lines_formatter.rb +79 -0
  126. data/lib/super_diff/version.rb +1 -1
  127. data/spec/examples.txt +407 -5
  128. data/spec/integration/rails/active_support_spec.rb +19 -0
  129. data/spec/integration/rspec/be_falsey_matcher_spec.rb +10 -10
  130. data/spec/integration/rspec/be_matcher_spec.rb +100 -100
  131. data/spec/integration/rspec/be_nil_matcher_spec.rb +10 -10
  132. data/spec/integration/rspec/be_predicate_matcher_spec.rb +103 -103
  133. data/spec/integration/rspec/be_truthy_matcher_spec.rb +10 -10
  134. data/spec/integration/rspec/contain_exactly_matcher_spec.rb +113 -107
  135. data/spec/integration/rspec/eq_matcher_spec.rb +223 -277
  136. data/spec/integration/rspec/have_attributes_matcher_spec.rb +138 -129
  137. data/spec/integration/rspec/have_predicate_matcher_spec.rb +65 -65
  138. data/spec/integration/rspec/include_matcher_spec.rb +73 -73
  139. data/spec/integration/rspec/match_array_matcher_spec.rb +126 -119
  140. data/spec/integration/rspec/match_matcher_spec.rb +362 -274
  141. data/spec/integration/rspec/raise_error_matcher_spec.rb +86 -86
  142. data/spec/integration/rspec/respond_to_matcher_spec.rb +240 -240
  143. data/spec/integration/rspec/third_party_matcher_spec.rb +8 -8
  144. data/spec/integration/rspec/unhandled_errors_spec.rb +5 -5
  145. data/spec/spec_helper.rb +33 -13
  146. data/spec/support/command_runner.rb +15 -25
  147. data/spec/support/helpers.rb +21 -0
  148. data/spec/support/integration/helpers.rb +8 -2
  149. data/spec/support/integration/matchers/produce_output_when_run_matcher.rb +4 -4
  150. data/spec/support/integration/test_programs/base.rb +38 -10
  151. data/spec/support/integration/test_programs/rspec_active_record.rb +1 -1
  152. data/spec/support/integration/test_programs/rspec_active_support.rb +17 -0
  153. data/spec/support/integration/test_programs/rspec_rails.rb +1 -1
  154. data/spec/support/shared_examples/active_record.rb +109 -108
  155. data/spec/support/shared_examples/active_support.rb +65 -0
  156. data/spec/support/shared_examples/elided_diffs.rb +914 -0
  157. data/spec/support/shared_examples/hash_with_indifferent_access.rb +196 -232
  158. data/spec/support/unit/helpers.rb +15 -0
  159. data/spec/support/unit/matchers/match_output.rb +41 -0
  160. data/spec/unit/active_record/object_inspection_spec.rb +273 -0
  161. data/spec/unit/equality_matchers/main_spec.rb +445 -465
  162. data/spec/unit/helpers_spec.rb +61 -0
  163. data/spec/unit/operation_tree_flatteners/array_spec.rb +604 -0
  164. data/spec/unit/operation_tree_flatteners/custom_object_spec.rb +667 -0
  165. data/spec/unit/operation_tree_flatteners/default_object_spec.rb +687 -0
  166. data/spec/unit/operation_tree_flatteners/hash_spec.rb +632 -0
  167. data/spec/unit/operation_tree_flatteners/multiline_string_spec.rb +121 -0
  168. data/spec/unit/rspec/object_inspection_spec.rb +446 -0
  169. data/spec/unit/super_diff_spec.rb +1958 -0
  170. data/spec/unit/tiered_lines_elider_spec.rb +6356 -0
  171. data/spec/unit/tiered_lines_formatter_spec.rb +193 -0
  172. data/super_diff.gemspec +1 -1
  173. metadata +95 -50
  174. data/lib/super_diff/active_record/diff_formatters.rb +0 -10
  175. data/lib/super_diff/active_record/diff_formatters/active_record_relation.rb +0 -23
  176. data/lib/super_diff/active_record/object_inspection/inspectors.rb +0 -16
  177. data/lib/super_diff/active_support/diff_formatters.rb +0 -10
  178. data/lib/super_diff/active_support/diff_formatters/hash_with_indifferent_access.rb +0 -36
  179. data/lib/super_diff/active_support/object_inspection/inspectors/hash_with_indifferent_access.rb +0 -28
  180. data/lib/super_diff/diff_formatters.rb +0 -14
  181. data/lib/super_diff/diff_formatters/array.rb +0 -21
  182. data/lib/super_diff/diff_formatters/base.rb +0 -33
  183. data/lib/super_diff/diff_formatters/custom_object.rb +0 -30
  184. data/lib/super_diff/diff_formatters/default_object.rb +0 -46
  185. data/lib/super_diff/diff_formatters/defaults.rb +0 -10
  186. data/lib/super_diff/diff_formatters/hash.rb +0 -34
  187. data/lib/super_diff/diff_formatters/main.rb +0 -41
  188. data/lib/super_diff/object_inspection/inspectors.rb +0 -23
  189. data/lib/super_diff/object_inspection/inspectors/array.rb +0 -32
  190. data/lib/super_diff/object_inspection/inspectors/base.rb +0 -36
  191. data/lib/super_diff/object_inspection/inspectors/custom_object.rb +0 -37
  192. data/lib/super_diff/object_inspection/inspectors/default_object.rb +0 -61
  193. data/lib/super_diff/object_inspection/inspectors/hash.rb +0 -32
  194. data/lib/super_diff/object_inspection/inspectors/primitive.rb +0 -28
  195. data/lib/super_diff/object_inspection/inspectors/string.rb +0 -23
  196. data/lib/super_diff/object_inspection/inspectors/time_like.rb +0 -23
  197. data/lib/super_diff/object_inspection/nodes/break.rb +0 -15
  198. data/lib/super_diff/object_inspection/nodes/when_multiline.rb +0 -22
  199. data/lib/super_diff/object_inspection/nodes/when_singleline.rb +0 -24
  200. data/lib/super_diff/rspec/object_inspection/inspectors.rb +0 -40
  201. data/lib/super_diff/rspec/object_inspection/inspectors/collection_including.rb +0 -28
  202. data/lib/super_diff/rspec/object_inspection/inspectors/hash_including.rb +0 -31
  203. data/lib/super_diff/rspec/object_inspection/inspectors/instance_of.rb +0 -23
  204. data/lib/super_diff/rspec/object_inspection/inspectors/kind_of.rb +0 -23
  205. data/lib/super_diff/rspec/object_inspection/inspectors/primitive.rb +0 -13
  206. data/lib/super_diff/rspec/object_inspection/inspectors/value_within.rb +0 -29
  207. data/spec/support/object_id.rb +0 -27
  208. data/spec/support/ruby_versions.rb +0 -11
  209. data/spec/unit/object_inspection_spec.rb +0 -1168
@@ -1,37 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class CustomObject < Base
5
- def self.applies_to?(value)
6
- value.respond_to?(:attributes_for_super_diff)
7
- end
8
-
9
- protected
10
-
11
- def inspection_tree
12
- InspectionTree.new do
13
- add_text do |object|
14
- "#<#{object.class}"
15
- end
16
-
17
- when_multiline do
18
- add_text " {"
19
- end
20
-
21
- nested do |object|
22
- insert_hash_inspection_of(object.attributes_for_super_diff)
23
- end
24
-
25
- add_break
26
-
27
- when_multiline do
28
- add_text "}"
29
- end
30
-
31
- add_text ">"
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,61 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class DefaultObject < Base
5
- def self.applies_to?(_value)
6
- true
7
- end
8
-
9
- protected
10
-
11
- def inspection_tree
12
- # rubocop:disable Metrics/BlockLength
13
- InspectionTree.new do
14
- when_empty do
15
- # rubocop:disable Style/SymbolProc
16
- add_text do |object|
17
- object.inspect
18
- end
19
- # rubocop:enable Style/SymbolProc
20
- end
21
-
22
- when_non_empty do
23
- when_singleline do
24
- add_text do |object|
25
- object.inspect
26
- end
27
- end
28
-
29
- when_multiline do
30
- add_text do |object|
31
- "#<%<class>s:0x%<id>x {" % {
32
- class: object.class,
33
- id: object.object_id * 2,
34
- }
35
- end
36
-
37
- nested do |object|
38
- add_break " "
39
-
40
- insert_separated_list(
41
- object.instance_variables.sort,
42
- separator: ","
43
- ) do |name|
44
- add_text name.to_s
45
- add_text "="
46
- add_inspection_of object.instance_variable_get(name)
47
- end
48
- end
49
-
50
- add_break
51
-
52
- add_text "}>"
53
- end
54
- end
55
- end
56
- # rubocop:enable Metrics/BlockLength
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,32 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class Hash < Base
5
- def self.applies_to?(value)
6
- value.is_a?(::Hash)
7
- end
8
-
9
- protected
10
-
11
- def inspection_tree
12
- InspectionTree.new do
13
- when_empty do
14
- add_text "{}"
15
- end
16
-
17
- when_non_empty do
18
- add_text "{"
19
-
20
- nested do |hash|
21
- insert_hash_inspection_of(hash)
22
- end
23
-
24
- add_break " "
25
- add_text "}"
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,28 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class Primitive < Base
5
- def self.applies_to?(value)
6
- case value
7
- when true, false, nil, Symbol, Numeric, Regexp, Class
8
- true
9
- else
10
- false
11
- end
12
- end
13
-
14
- protected
15
-
16
- def inspection_tree
17
- InspectionTree.new do
18
- # rubocop:disable Style/SymbolProc
19
- add_text do |object|
20
- object.inspect
21
- end
22
- # rubocop:enable Style/SymbolProc
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,23 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class String < Base
5
- def self.applies_to?(value)
6
- value.is_a?(::String)
7
- end
8
-
9
- protected
10
-
11
- def inspection_tree
12
- InspectionTree.new do
13
- # rubocop:disable Style/SymbolProc
14
- add_text do |string|
15
- string.inspect
16
- end
17
- # rubocop:enable Style/SymbolProc
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Inspectors
4
- class TimeLike < Base
5
- def self.applies_to?(value)
6
- SuperDiff.time_like?(value)
7
- end
8
-
9
- TIME_FORMAT = "%Y-%m-%d %H:%M:%S.%3N %Z %:z".freeze
10
-
11
- protected
12
-
13
- def inspection_tree
14
- InspectionTree.new do
15
- add_text do |time|
16
- "#{time.strftime(TIME_FORMAT)} (#{time.class})"
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Nodes
4
- class Break < Base
5
- def evaluate(_object, indent_level:, as_single_line:)
6
- if as_single_line
7
- immediate_value.to_s
8
- else
9
- "\n#{" " * indent_level}"
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,22 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Nodes
4
- class WhenMultiline < Base
5
- def evaluate(object, indent_level:, as_single_line:)
6
- if as_single_line
7
- ""
8
- elsif block
9
- evaluate_in_subtree(
10
- object,
11
- indent_level: indent_level,
12
- as_single_line: as_single_line,
13
- &block
14
- )
15
- else
16
- immediate_value
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,24 +0,0 @@
1
- module SuperDiff
2
- module ObjectInspection
3
- module Nodes
4
- class WhenSingleline < Base
5
- def evaluate(object, indent_level:, as_single_line:)
6
- if as_single_line
7
- if immediate_value
8
- immediate_value
9
- else
10
- evaluate_in_subtree(
11
- object,
12
- indent_level: indent_level,
13
- as_single_line: as_single_line,
14
- &block
15
- )
16
- end
17
- else
18
- ""
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,40 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- autoload(
6
- :CollectionContainingExactly,
7
- "super_diff/rspec/object_inspection/inspectors/collection_containing_exactly",
8
- )
9
- autoload(
10
- :CollectionIncluding,
11
- "super_diff/rspec/object_inspection/inspectors/collection_including",
12
- )
13
- autoload(
14
- :HashIncluding,
15
- "super_diff/rspec/object_inspection/inspectors/hash_including",
16
- )
17
- autoload(
18
- :InstanceOf,
19
- "super_diff/rspec/object_inspection/inspectors/instance_of",
20
- )
21
- autoload(
22
- :KindOf,
23
- "super_diff/rspec/object_inspection/inspectors/kind_of",
24
- )
25
- autoload(
26
- :ObjectHavingAttributes,
27
- "super_diff/rspec/object_inspection/inspectors/object_having_attributes",
28
- )
29
- autoload(
30
- :Primitive,
31
- "super_diff/rspec/object_inspection/inspectors/primitive",
32
- )
33
- autoload(
34
- :ValueWithin,
35
- "super_diff/rspec/object_inspection/inspectors/value_within",
36
- )
37
- end
38
- end
39
- end
40
- end
@@ -1,28 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- class CollectionIncluding < SuperDiff::ObjectInspection::Inspectors::Base
6
- def self.applies_to?(value)
7
- SuperDiff::RSpec.a_collection_including_something?(value)
8
- end
9
-
10
- protected
11
-
12
- def inspection_tree
13
- SuperDiff::ObjectInspection::InspectionTree.new do
14
- add_text "#<a collection including ("
15
-
16
- nested do |aliased_matcher|
17
- insert_array_inspection_of(aliased_matcher.expecteds)
18
- end
19
-
20
- add_break
21
- add_text ")>"
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,31 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- class HashIncluding < SuperDiff::ObjectInspection::Inspectors::Base
6
- def self.applies_to?(value)
7
- SuperDiff::RSpec.a_hash_including_something?(value)
8
- end
9
-
10
- protected
11
-
12
- def inspection_tree
13
- SuperDiff::ObjectInspection::InspectionTree.new do
14
- add_text "#<a hash including ("
15
-
16
- nested do |aliased_matcher|
17
- insert_hash_inspection_of(
18
- aliased_matcher.expecteds.first,
19
- initial_break: nil,
20
- )
21
- end
22
-
23
- add_break
24
- add_text ")>"
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,23 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- class InstanceOf < SuperDiff::ObjectInspection::Inspectors::Base
6
- def self.applies_to?(value)
7
- SuperDiff::RSpec.an_instance_of_something?(value)
8
- end
9
-
10
- protected
11
-
12
- def inspection_tree
13
- SuperDiff::ObjectInspection::InspectionTree.new do
14
- add_text do |aliased_matcher|
15
- "#<an instance of #{aliased_matcher.expected}>"
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- class KindOf < SuperDiff::ObjectInspection::Inspectors::Base
6
- def self.applies_to?(value)
7
- SuperDiff::RSpec.a_kind_of_something?(value)
8
- end
9
-
10
- protected
11
-
12
- def inspection_tree
13
- SuperDiff::ObjectInspection::InspectionTree.new do
14
- add_text do |aliased_matcher|
15
- "#<a kind of #{aliased_matcher.expected}>"
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,13 +0,0 @@
1
- module SuperDiff
2
- module RSpec
3
- module ObjectInspection
4
- module Inspectors
5
- class Primitive < SuperDiff::ObjectInspection::Inspectors::Primitive
6
- def self.applies_to?(value)
7
- super || value.is_a?(::RSpec::Mocks::Double)
8
- end
9
- end
10
- end
11
- end
12
- end
13
- end