Skip to content

Commit

Permalink
Replace Snapshot#add_path with Snapshot#update
Browse files Browse the repository at this point in the history
  • Loading branch information
denisdefreyne committed Feb 17, 2017
1 parent da0c958 commit be6cae3
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
6 changes: 3 additions & 3 deletions lib/nanoc/base/entities/processing_actions/snapshot.rb
Expand Up @@ -21,9 +21,9 @@ def serialize

NONE = Object.new

contract String => self
def add_path(path)
self.class.new(@snapshot_names, @paths + [path])
contract C::KeywordArgs[snapshot_names: C::Optional[C::IterOf[Symbol]], paths: C::Optional[C::IterOf[String]]] => self
def update(snapshot_names: [], paths: [])
self.class.new(@snapshot_names + snapshot_names, @paths + paths)
end

contract C::None => String
Expand Down
2 changes: 1 addition & 1 deletion lib/nanoc/rule_dsl/rule_memory_calculator.rb
Expand Up @@ -136,7 +136,7 @@ def copy_path_from_routing_rule(action, rep:)

path_from_rules = paths_from_rules.find(&:itself)
if path_from_rules
action.add_path(path_from_rules.to_s)
action.update(paths: [path_from_rules.to_s])
else
action
end
Expand Down
22 changes: 18 additions & 4 deletions spec/nanoc/base/entities/processing_actions/snapshot_spec.rb
Expand Up @@ -16,9 +16,23 @@
it { is_expected.to eql('<Nanoc::Int::ProcessingActions::Snapshot [:before_layout], true, ["/foo.md"]>') }
end

describe '#add_path' do
subject { action.add_path('/donkey.md') }
its(:snapshot_names) { is_expected.to eql([:before_layout]) }
its(:paths) { is_expected.to eql(['/foo.md', '/donkey.md']) }
describe '#update' do
context 'with nothing' do
subject { action.update }
its(:snapshot_names) { is_expected.to eql([:before_layout]) }
its(:paths) { is_expected.to eql(['/foo.md']) }
end

context 'with snapshot name' do
subject { action.update(snapshot_names: [:zebra]) }
its(:snapshot_names) { is_expected.to eql([:before_layout, :zebra]) }
its(:paths) { is_expected.to eql(['/foo.md']) }
end

context 'with paths' do
subject { action.update(paths: ['/donkey.md', '/giraffe.md']) }
its(:snapshot_names) { is_expected.to eql([:before_layout]) }
its(:paths) { is_expected.to eql(['/foo.md', '/donkey.md', '/giraffe.md']) }
end
end
end

0 comments on commit be6cae3

Please sign in to comment.