def self.safe_create_rakefile
content = "require 'rake'\nrequire 'rspec/core/rake_task'\n\ndesc \"Run all RSpec code examples\"\nRSpec::Core::RakeTask.new(:rspec) do |t|\nFile.exist?('spec/spec.opts') ? opts = File.read(\"spec/spec.opts\").chomp : opts = \"\"\nt.rspec_opts = opts\nend\n\nSPEC_SUITES = (Dir.entries('spec') - ['.', '..','fixtures']).select {|e| File.directory? \"spec/\#{e}\" }\nnamespace :rspec do\nSPEC_SUITES.each do |suite|\ndesc \"Run \#{suite} RSpec code examples\"\nRSpec::Core::RakeTask.new(suite) do |t|\nt.pattern = \"spec/\#{suite}/**/*_spec.rb\"\nFile.exist?('spec/spec.opts') ? opts = File.read(\"spec/spec.opts\").chomp : opts = \"\"\nt.rspec_opts = opts\nend\nend\nend\ntask :default => :rspec\n\nbegin\nif Gem::Specification::find_by_name('puppet-lint')\nrequire 'puppet-lint/tasks/puppet-lint'\nPuppetLint.configuration.ignore_paths = [\"spec/**/*.pp\", \"vendor/**/*.pp\"]\ntask :default => [:rspec, :lint]\nend\nrescue Gem::LoadError\nend\n"
safe_create_file('Rakefile', content)
end