class RSpec::Core::RakeTask
def blank
def blank lambda {|s| s == ""} end
def bundler?
def bundler? File.exist?("./Gemfile") end
def files_to_run # :nodoc:
def files_to_run # :nodoc: FileList[ pattern ].map { |f| %["#{f}"] } end
def initialize(*args)
def initialize(*args) @name = args.shift || :spec @pattern, @rcov_path, @rcov_opts, @ruby_opts, @rspec_opts = nil, nil, nil, nil, nil @warning, @rcov = false, false @verbose, @fail_on_error = true, true yield self if block_given? @rcov_path ||= 'rcov' @pattern ||= './spec/**/*_spec.rb' desc("Run RSpec code examples") unless ::Rake.application.last_comment task name do RakeFileUtils.send(:verbose, verbose) do if files_to_run.empty? puts "No examples matching #{pattern} could be found" else begin ruby(spec_command) rescue puts failure_message if failure_message raise("ruby #{spec_command} failed") if fail_on_error end end end end end
def runner
def runner rcov ? rcov_path : 'rspec' end
def runner_options
def runner_options rcov ? [rcov_opts] : [rspec_opts] end
def spec_command
def spec_command @spec_command ||= begin cmd_parts = [ruby_opts] cmd_parts << "-w" if warning? cmd_parts << "-S" cmd_parts << "bundle exec" if bundler? cmd_parts << runner cmd_parts << runner_options cmd_parts << files_to_run cmd_parts.flatten.compact.reject(&blank).join(" ") end end
def spec_opts=(opts)
def spec_opts=(opts) RSpec.deprecate("spec_opts","rspec_opts") @rspec_opts = opts end
def warning=(true_or_false)
def warning=(true_or_false) RSpec.deprecate("warning", 'ruby_opts="-w"') @warning = true_or_false end
def warning?
def warning? warning end