Skip to content

Commit eae92f8

Browse files
Merge pull request #898 from nanoc/better-modified-reps-method
Add #modified_reps and deprecate #modified
2 parents 2331305 + f785a7d commit eae92f8

2 files changed

Lines changed: 42 additions & 1 deletion

File tree

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
module Nanoc
22
class PostCompileItemView < Nanoc::ItemWithRepsView
3+
# @deprecated Use {#modified_reps} instead
34
def modified
4-
reps.select { |rep| rep.unwrap.modified }
5+
modified_reps
6+
end
7+
8+
def modified_reps
9+
reps.select { |rep| rep.unwrap.modified? }
510
end
611
end
712
end
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
it 'returns only modified items' do
18+
expect(subject.size).to eq(1)
19+
expect(subject.map(&:name)).to eq(%i(modded))
20+
end
21+
22+
it 'returns an array' do
23+
expect(subject.class).to eql(Array)
24+
end
25+
end
26+
27+
describe '#modified_reps' do
28+
subject { view.modified_reps }
29+
it_behaves_like 'a method that returns modified reps only'
30+
end
31+
32+
describe '#modified' do
33+
subject { view.modified }
34+
it_behaves_like 'a method that returns modified reps only'
35+
end
36+
end

0 commit comments

Comments
 (0)