Skip to content

Commit 1cb5673

Browse files
committed
Add #modified_reps and deprecate #modified
1 parent 2331305 commit 1cb5673

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

lib/nanoc/base/views/post_compile_item_view.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
module Nanoc
22
class PostCompileItemView < Nanoc::ItemWithRepsView
3+
# @deprecated Use {#modified_reps} instead
34
def modified
5+
modified_reps
6+
end
7+
8+
def modified_reps
49
reps.select { |rep| rep.unwrap.modified }
510
end
611
end
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
describe Nanoc::PostCompileItemView do
2+
shared_examples 'a method that returns modified reps only' do
3+
let(:item) { Nanoc::Int::Item.new('blah', {}, '/foo.md') }
4+
let(:rep_a) { Nanoc::Int::ItemRep.new(item, :no_mod) }
5+
let(:rep_b) { Nanoc::Int::ItemRep.new(item, :modded).tap { |r| r.modified = true } }
6+
7+
let(:reps) do
8+
Nanoc::Int::ItemRepRepo.new.tap do |reps|
9+
reps << rep_a
10+
reps << rep_b
11+
end
12+
end
13+
14+
let(:view_context) { double(:view_context, reps: reps) }
15+
let(:view) { described_class.new(item, view_context) }
16+
17+
# subject { view.modified_reps }
18+
19+
it 'returns only modified items' do
20+
expect(subject.size).to eq(1)
21+
expect(subject.map { |r| r.name }).to eq(%i(modded))
22+
end
23+
24+
it 'returns an array' do
25+
expect(subject.class).to eql(Array)
26+
end
27+
end
28+
29+
describe '#modified_reps' do
30+
subject { view.modified_reps }
31+
it_behaves_like 'a method that returns modified reps only'
32+
end
33+
34+
describe '#modified' do
35+
subject { view.modified }
36+
it_behaves_like 'a method that returns modified reps only'
37+
end
38+
end

0 commit comments

Comments
 (0)