Method: Chef::Cookbook::SyntaxCheck#validate_ruby_file

Defined in:
lib/chef/cookbook/syntax_check.rb

#validate_ruby_file(ruby_file) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
# File 'lib/chef/cookbook/syntax_check.rb', line 122

def validate_ruby_file(ruby_file)
  Chef::Log.debug("Testing #{ruby_file} for syntax errors...")
  result = shell_out("ruby -c #{ruby_file}")
  result.error!
  true
rescue Chef::Exceptions::ShellCommandFailed
  file_relative_path = ruby_file[/^#{Regexp.escape(cookbook_path+File::Separator)}(.*)/, 1]
  Chef::Log.fatal("Cookbook file #{file_relative_path} has a ruby syntax error:")
  result.stderr.each_line { |l| Chef::Log.fatal(l.chomp) }
  false
end