X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/7b9ec4b60ee39614d1d083d7220e76b07d2b275f..524c502faac9e74d67fe79ce450c2d3292407ad9:/cookbooks/chef/libraries/subversion.rb diff --git a/cookbooks/chef/libraries/subversion.rb b/cookbooks/chef/libraries/subversion.rb index 952037f3f..4f2b1cd00 100644 --- a/cookbooks/chef/libraries/subversion.rb +++ b/cookbooks/chef/libraries/subversion.rb @@ -13,24 +13,22 @@ class Chef end def current_repository - @current_repository ||= repo_attrs['URL'] + @current_repository ||= repo_attrs["URL"] end def current_repository_matches_target_repository? - (!current_repository.nil?) && (@new_resource.repository == current_repository) + !current_repository.nil? && (@new_resource.repository == current_repository) end def repo_attrs return {} unless ::File.exist?(::File.join(@new_resource.destination, ".svn")) - @repo_attrs ||= svn_info.lines.inject({}) do |attrs, line| - if line =~ SVN_INFO_PATTERN - property, value = $1, $2 - attrs[property] = value - else - raise "Could not parse `svn info` data: #{line}" - end - attrs + @repo_attrs ||= svn_info.lines.each_with_object({}) do |line, attrs| + raise "Could not parse `svn info` data: #{line}" unless line =~ SVN_INFO_PATTERN + + property = Regexp.last_match[1] + value = Regexp.last_match[2] + attrs[property] = value end end @@ -38,7 +36,7 @@ class Chef command = scm(:info) status, svn_info, error_message = output_of_command(command, run_options(:cwd => cwd)) - unless [0,1].include?(status.exitstatus) + unless [0, 1].include?(status.exitstatus) handle_command_failures(status, "STDOUT: #{svn_info}\nSTDERR: #{error_message}") end