Skip to content

Commit 2a0b9e5

Browse files
committed
Add RangeObject inspection tree and builder
1 parent 28eb1c8 commit 2a0b9e5

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

lib/super_diff/basic.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ module Basic
2727
InspectionTreeBuilders::TimeLike,
2828
InspectionTreeBuilders::DateLike,
2929
InspectionTreeBuilders::DataObject,
30+
InspectionTreeBuilders::RangeObject,
3031
InspectionTreeBuilders::DefaultObject
3132
)
3233

lib/super_diff/basic/inspection_tree_builders.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,19 @@ module InspectionTreeBuilders
1010
:DataObject,
1111
"super_diff/basic/inspection_tree_builders/data_object"
1212
)
13+
autoload :DateLike, "super_diff/basic/inspection_tree_builders/date_like"
1314
autoload(
1415
:DefaultObject,
1516
"super_diff/basic/inspection_tree_builders/default_object"
1617
)
1718
autoload :Hash, "super_diff/basic/inspection_tree_builders/hash"
1819
autoload :Primitive, "super_diff/basic/inspection_tree_builders/primitive"
20+
autoload(
21+
:RangeObject,
22+
"super_diff/basic/inspection_tree_builders/range_object"
23+
)
1924
autoload :String, "super_diff/basic/inspection_tree_builders/string"
2025
autoload :TimeLike, "super_diff/basic/inspection_tree_builders/time_like"
21-
autoload :DateLike, "super_diff/basic/inspection_tree_builders/date_like"
2226
end
2327
end
2428
end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
module SuperDiff
2+
module Basic
3+
module InspectionTreeBuilders
4+
class RangeObject < Core::AbstractInspectionTreeBuilder
5+
def self.applies_to?(value)
6+
value.is_a?(Range)
7+
end
8+
9+
def call
10+
Core::InspectionTree.new do |t1|
11+
t1.as_lines_when_rendering_to_lines { |t2| t2.add_text object.to_s }
12+
end
13+
end
14+
end
15+
end
16+
end
17+
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require "spec_helper"
2+
3+
RSpec.describe SuperDiff, type: :unit do
4+
describe ".inspect_object" do
5+
context "given as_lines: false" do
6+
subject(:output) do
7+
described_class.inspect_object(object, as_lines: false)
8+
end
9+
10+
context "given a simple range" do
11+
let(:object) { 1..5 }
12+
13+
it "shows the data" do
14+
expect(output).to eq("1..5")
15+
end
16+
end
17+
end
18+
end
19+
end

0 commit comments

Comments
 (0)