From 0e7c0b06e952d5133bd7f9f055d680cb704e213e Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Sat, 13 Sep 2014 23:27:25 -0700 Subject: Handle both Array/Enumerable and String values for excludes parameter Thanks to @revhazroot for identifying the problem that excludes with a string or single-element array fails on Ruby >= 1.9. --- lib/puppet/provider/vcsrepo/git.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/puppet/provider/vcsrepo/git.rb b/lib/puppet/provider/vcsrepo/git.rb index 0a142bb..48bbe7d 100644 --- a/lib/puppet/provider/vcsrepo/git.rb +++ b/lib/puppet/provider/vcsrepo/git.rb @@ -281,7 +281,16 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo) # @!visibility private def set_excludes - at_path { open('.git/info/exclude', 'w') { |f| @resource.value(:excludes).each { |ex| f.write(ex + "\n") }}} + # Excludes may be an Array or a String. + at_path do + open('.git/info/exclude', 'w') do |f| + if @resource.value(:excludes).respond_to?(:each) + @resource.value(:excludes).each { |ex| f.puts ex } + else + f.puts @resource.value(:excludes) + end + end + end end # Finds the latest revision or sha of the current branch if on a branch, or -- cgit v1.2.3