Skip to content

Commit 2331305

Browse files
Merge pull request #896 from nanoc/view-inspect-methods
Add #inspect method to views
2 parents d07e34d + 8506fdf commit 2331305

15 files changed

Lines changed: 134 additions & 3 deletions

lib/nanoc/base/views/item_rep_view.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,9 @@ def raw_path(snapshot: :last)
7777
def binary?
7878
@item_rep.binary?
7979
end
80+
81+
def inspect
82+
"<#{self.class} item.identifier=#{item.identifier} name=#{name}>"
83+
end
8084
end
8185
end

lib/nanoc/base/views/mixins/document_view_mixin.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,9 @@ def reference
7676
def raw_content
7777
unwrap.content.string
7878
end
79+
80+
def inspect
81+
"<#{self.class} identifier=#{unwrap.identifier}>"
82+
end
7983
end
8084
end

lib/nanoc/base/views/view.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,9 @@ def unwrap
2323
def frozen?
2424
unwrap.frozen?
2525
end
26+
27+
def inspect
28+
"<#{self.class}>"
29+
end
2630
end
2731
end

spec/nanoc/base/views/config_view_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,9 @@
8888
expect(res).to eql([[:amount, 9000], [:animal, 'donkey']])
8989
end
9090
end
91+
92+
describe '#inspect' do
93+
subject { view.inspect }
94+
it { is_expected.to eql('<Nanoc::ConfigView>') }
95+
end
9196
end
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1+
# FIXME: fix name
12
describe Nanoc::ItemCollectionWithRepsView do
23
let(:view_class) { Nanoc::ItemWithRepsView }
34
it_behaves_like 'an identifiable collection'
5+
6+
describe '#inspect' do
7+
let(:wrapped) do
8+
Nanoc::Int::IdentifiableCollection.new(config)
9+
end
10+
11+
let(:view) { described_class.new(wrapped, view_context) }
12+
let(:view_context) { double(:view_context) }
13+
let(:config) { { string_pattern_type: 'glob' } }
14+
15+
subject { view.inspect }
16+
17+
it { is_expected.to eql('<Nanoc::ItemCollectionWithRepsView>') }
18+
end
419
end

spec/nanoc/base/views/item_rep_collection_view_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,10 @@
129129
end
130130
end
131131
end
132+
133+
describe '#inspect' do
134+
subject { view.inspect }
135+
136+
it { is_expected.to eql('<Nanoc::ItemRepCollectionView>') }
137+
end
132138
end

spec/nanoc/base/views/item_rep_view_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,4 +212,14 @@
212212
expect(subject._context).to equal(view_context)
213213
end
214214
end
215+
216+
describe '#inspect' do
217+
let(:item_rep) { Nanoc::Int::ItemRep.new(item, :jacques) }
218+
let(:item) { Nanoc::Int::Item.new('asdf', {}, '/foo/') }
219+
let(:view) { described_class.new(item_rep, view_context) }
220+
221+
subject { view.inspect }
222+
223+
it { is_expected.to eql('<Nanoc::ItemRepView item.identifier=/foo/ name=jacques>') }
224+
end
215225
end

spec/nanoc/base/views/item_view_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,4 +331,13 @@
331331
describe '#raw_filename' do
332332
# TODO: implement
333333
end
334+
335+
describe '#inspect' do
336+
let(:item) { Nanoc::Int::Item.new('content', {}, '/asdf/') }
337+
let(:view) { described_class.new(item, nil) }
338+
339+
subject { view.inspect }
340+
341+
it { is_expected.to eql('<Nanoc::ItemWithRepsView identifier=/asdf/>') }
342+
end
334343
end
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
describe Nanoc::LayoutCollectionView do
22
let(:view_class) { Nanoc::LayoutView }
33
it_behaves_like 'an identifiable collection'
4+
5+
describe '#inspect' do
6+
let(:wrapped) do
7+
Nanoc::Int::IdentifiableCollection.new(config)
8+
end
9+
10+
let(:view) { described_class.new(wrapped, view_context) }
11+
let(:view_context) { double(:view_context) }
12+
let(:config) { { string_pattern_type: 'glob' } }
13+
14+
subject { view.inspect }
15+
16+
it { is_expected.to eql('<Nanoc::LayoutCollectionView>') }
17+
end
418
end

spec/nanoc/base/views/layout_view_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,13 @@
22
let(:entity_class) { Nanoc::Int::Layout }
33
let(:other_view_class) { Nanoc::ItemWithRepsView }
44
it_behaves_like 'a document view'
5+
6+
describe '#inspect' do
7+
let(:item) { Nanoc::Int::Layout.new('content', {}, '/asdf/') }
8+
let(:view) { described_class.new(item, nil) }
9+
10+
subject { view.inspect }
11+
12+
it { is_expected.to eql('<Nanoc::LayoutView identifier=/asdf/>') }
13+
end
514
end

0 commit comments

Comments
 (0)