Skip to content

Commit 06d7d4c

Browse files
committed
Autoload all the things
Both `super_diff.rb` and `super_diff/rspec.rb` have gotten pretty out of whack. All of the requires are stuffed into there, and it's gotten quite unmanageable. If we autoload all of our files instead of requiring them up front, then that makes updating this project easier in the future.
1 parent 860259b commit 06d7d4c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+272
-301
lines changed

lib/super_diff.rb

Lines changed: 19 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,70 +2,23 @@
22
require "diff-lcs"
33

44
require_relative "super_diff/csi"
5-
require_relative "super_diff/colorized_document"
65

7-
require_relative "super_diff/errors"
8-
require_relative "super_diff/helpers"
9-
10-
require_relative "super_diff/object_inspection/inspector_registry"
11-
require_relative "super_diff/object_inspection"
12-
require_relative "super_diff/object_inspection/nodes"
13-
require_relative "super_diff/object_inspection/nodes/base"
14-
require_relative "super_diff/object_inspection/nodes/break"
15-
require_relative "super_diff/object_inspection/nodes/inspection"
16-
require_relative "super_diff/object_inspection/nodes/nesting"
17-
require_relative "super_diff/object_inspection/nodes/text"
18-
require_relative "super_diff/object_inspection/nodes/when_multiline"
19-
require_relative "super_diff/object_inspection/nodes/when_singleline"
20-
require_relative "super_diff/object_inspection/inspection_tree"
21-
require_relative "super_diff/object_inspection/inspectors"
22-
require_relative "super_diff/object_inspection/inspectors/array"
23-
require_relative "super_diff/object_inspection/inspectors/custom_object"
24-
require_relative "super_diff/object_inspection/inspectors/default_object"
25-
require_relative "super_diff/object_inspection/inspectors/hash"
26-
require_relative "super_diff/object_inspection/inspectors/primitive"
27-
require_relative "super_diff/object_inspection/inspectors/string"
28-
29-
require_relative "super_diff/equality_matchers/base"
30-
require_relative "super_diff/equality_matchers/array"
31-
require_relative "super_diff/equality_matchers/hash"
32-
require_relative "super_diff/equality_matchers/multi_line_string"
33-
require_relative "super_diff/equality_matchers/object"
34-
require_relative "super_diff/equality_matchers/primitive"
35-
require_relative "super_diff/equality_matchers/single_line_string"
36-
require_relative "super_diff/equality_matchers"
37-
require_relative "super_diff/equality_matcher"
38-
39-
require_relative "super_diff/operations/unary_operation"
40-
require_relative "super_diff/operations/binary_operation"
41-
42-
require_relative "super_diff/operation_sequences/base"
43-
require_relative "super_diff/operation_sequences/array"
44-
require_relative "super_diff/operation_sequences/hash"
45-
require_relative "super_diff/operation_sequences/object"
46-
47-
require_relative "super_diff/operational_sequencers/base"
48-
require_relative "super_diff/operational_sequencers/array"
49-
require_relative "super_diff/operational_sequencers/hash"
50-
require_relative "super_diff/operational_sequencers/multi_line_string"
51-
require_relative "super_diff/operational_sequencers/object"
52-
require_relative "super_diff/operational_sequencers"
53-
require_relative "super_diff/operational_sequencer"
54-
55-
require_relative "super_diff/diff_formatters/collection"
56-
require_relative "super_diff/diff_formatters/base"
57-
require_relative "super_diff/diff_formatters/array"
58-
require_relative "super_diff/diff_formatters/hash"
59-
require_relative "super_diff/diff_formatters/multi_line_string"
60-
require_relative "super_diff/diff_formatters/object"
61-
require_relative "super_diff/diff_formatters"
62-
require_relative "super_diff/diff_formatter"
63-
64-
require_relative "super_diff/differs/base"
65-
require_relative "super_diff/differs/array"
66-
require_relative "super_diff/differs/empty"
67-
require_relative "super_diff/differs/hash"
68-
require_relative "super_diff/differs/multi_line_string"
69-
require_relative "super_diff/differs/object"
70-
require_relative "super_diff/differs"
71-
require_relative "super_diff/differ"
6+
module SuperDiff
7+
autoload :ColorizedDocument, "super_diff/colorized_document"
8+
autoload :DiffFormatter, "super_diff/diff_formatter"
9+
autoload :DiffFormatters, "super_diff/diff_formatters"
10+
autoload :Differ, "super_diff/differ"
11+
autoload :Differs, "super_diff/differs"
12+
autoload(
13+
:NoOperationalSequencerAvailableError,
14+
"super_diff/no_operational_sequencer_available_error",
15+
)
16+
autoload :EqualityMatcher, "super_diff/equality_matcher"
17+
autoload :EqualityMatchers, "super_diff/equality_matchers"
18+
autoload :Helpers, "super_diff/helpers"
19+
autoload :ObjectInspection, "super_diff/object_inspection"
20+
autoload :OperationalSequencer, "super_diff/operational_sequencer"
21+
autoload :OperationalSequencers, "super_diff/operational_sequencers"
22+
autoload :OperationSequences, "super_diff/operation_sequences"
23+
autoload :Operations, "super_diff/operations"
24+
end

lib/super_diff/csi.rb

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1-
require_relative "csi/reset_sequence"
2-
31
# Source: <https://en.wikipedia.org/wiki/ANSI_escape_code>
42
module SuperDiff
53
module Csi
4+
autoload :Color, "super_diff/csi/color"
5+
autoload :ColorizedDocument, "super_diff/csi/colorized_document"
6+
autoload :EightBitColor, "super_diff/csi/eight_bit_color"
7+
autoload :FourBitColor, "super_diff/csi/four_bit_color"
8+
autoload :ResetSequence, "super_diff/csi/reset_sequence"
9+
autoload :TwentyFourBitColor, "super_diff/csi/twenty_four_bit_color"
10+
611
def self.reset_sequence
712
ResetSequence.new
813
end
@@ -38,9 +43,3 @@ def self.inspect_colors_in(text)
3843
end
3944
end
4045
end
41-
42-
require_relative "csi/color"
43-
require_relative "csi/eight_bit_color"
44-
require_relative "csi/four_bit_color"
45-
require_relative "csi/twenty_four_bit_color"
46-
require_relative "csi/colorized_document"

lib/super_diff/csi/eight_bit_sequence.rb

Lines changed: 0 additions & 27 deletions
This file was deleted.

lib/super_diff/csi/four_bit_sequence.rb

Lines changed: 0 additions & 24 deletions
This file was deleted.

lib/super_diff/csi/sequence.rb

Lines changed: 0 additions & 22 deletions
This file was deleted.

lib/super_diff/csi/twenty_four_bit_sequence.rb

Lines changed: 0 additions & 27 deletions
This file was deleted.

lib/super_diff/diff_formatters.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
module SuperDiff
22
module DiffFormatters
3+
autoload :Array, "super_diff/diff_formatters/array"
4+
autoload :Base, "super_diff/diff_formatters/base"
5+
autoload :Collection, "super_diff/diff_formatters/collection"
6+
autoload :Hash, "super_diff/diff_formatters/hash"
7+
autoload :MultiLineString, "super_diff/diff_formatters/multi_line_string"
8+
autoload :Object, "super_diff/diff_formatters/object"
9+
310
DEFAULTS = [Array, Hash, MultiLineString].freeze
411
end
512
end

lib/super_diff/differs.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
module SuperDiff
22
module Differs
3+
autoload :Base, "super_diff/differs/base"
4+
autoload :Array, "super_diff/differs/array"
5+
autoload :Empty, "super_diff/differs/empty"
6+
autoload :Hash, "super_diff/differs/hash"
7+
autoload :MultiLineString, "super_diff/differs/multi_line_string"
8+
autoload :Object, "super_diff/differs/object"
9+
310
DEFAULTS = [Array, Hash, MultiLineString, Object, Empty].freeze
411
end
512
end

lib/super_diff/equality_matchers.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
module SuperDiff
22
module EqualityMatchers
3+
autoload :Array, "super_diff/equality_matchers/array"
4+
autoload :Base, "super_diff/equality_matchers/base"
5+
autoload :Hash, "super_diff/equality_matchers/hash"
6+
autoload :MultiLineString, "super_diff/equality_matchers/multi_line_string"
7+
autoload :Object, "super_diff/equality_matchers/object"
8+
autoload :Primitive, "super_diff/equality_matchers/primitive"
9+
autoload(
10+
:SingleLineString,
11+
"super_diff/equality_matchers/single_line_string",
12+
)
13+
314
DEFAULTS = [
415
Array,
516
Hash,
617
MultiLineString,
718
SingleLineString,
819
Object,
9-
Primitive
20+
Primitive,
1021
].freeze
1122
end
1223
end

0 commit comments

Comments
 (0)