class SleepingKingStudios::Tasks::Ci::RSpecTask

Defines a Thor task for running the full RSpec test suite.

Public Class Methods

description() click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 10
def self.description
  'Runs the RSpec test suite.'
end
task_name() click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 14
def self.task_name
  'rspec'
end

Public Instance Methods

call(*files) click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 39
def call *files
  results = rspec_runner(files.empty?).call(:files => files)

  raw? ? results : RSpecResults.new(results)
end

Private Instance Methods

default_format() click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 47
def default_format
  SleepingKingStudios::Tasks.configuration.ci.rspec.
    fetch(:format, :documentation)
end
default_gemfile() click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 52
def default_gemfile
  File.join(Dir.pwd, 'Gemfile')
end
gemfile() click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 56
def gemfile
  return options['gemfile'] if options.key?('gemfile')

  gemfile = ENV['BUNDLE_GEMFILE']

  return gemfile if gemfile && gemfile != default_gemfile

  nil
end
rspec_runner(default_coverage = true) click to toggle source
# File lib/sleeping_king_studios/tasks/ci/rspec_task.rb, line 66
def rspec_runner default_coverage = true
  coverage = options.fetch('coverage', default_coverage)

  env = options.fetch('__env__', {})
  env[:bundle_gemfile] = gemfile if gemfile
  env[:coverage]       = false unless coverage

  format = options.fetch('format', default_format)

  opts = %w[--color --tty]
  opts << "--format=#{format}" unless quiet?

  RSpecRunner.new(:env => env, :options => opts)
end