class Guard::RSpec::Command

Constants

FAILURE_EXIT_CODE

Attributes

options[RW]
paths[RW]

Public Class Methods

new(paths, options = {}) click to toggle source
Calls superclass method
# File lib/guard/rspec/command.rb, line 13
def initialize(paths, options = {})
  @paths = paths
  @options = options
  super(_parts.join(" "))
end

Private Instance Methods

_cmd_include_formatter?() click to toggle source
# File lib/guard/rspec/command.rb, line 61
def _cmd_include_formatter?
  options[:cmd] =~ /(?:^|\s)(?:-f\s*|--format(?:=|\s+))([\w:]+)/
end
_guard_formatter() click to toggle source
# File lib/guard/rspec/command.rb, line 65
def _guard_formatter
  dir = Pathname.new(__FILE__).dirname.dirname
  "-r #{dir + 'rspec_formatter.rb'} -f Guard::RSpecFormatter"
end
_parts() click to toggle source
# File lib/guard/rspec/command.rb, line 21
def _parts
  parts = [options[:cmd]]
  parts << _visual_formatter
  parts << _guard_formatter
  parts << "--failure-exit-code #{FAILURE_EXIT_CODE}"
  parts << options[:cmd_additional_args] || ""

  parts << _paths(options).join(" ")
end
_paths(options) click to toggle source
# File lib/guard/rspec/command.rb, line 31
def _paths(options)
  chdir = options[:chdir]
  return paths unless chdir
  paths.map { |path| path.sub(File.join(chdir, "/"), "") }
end
_rspec_formatters() click to toggle source
# File lib/guard/rspec/command.rb, line 42
def _rspec_formatters
  # RSpec::Core::ConfigurationOptions#parse_options method was renamed to
  # #options in rspec-core v3.0.0.beta2 so call the first one if
  # available. Fixes #249
  config = ::RSpec::Core::ConfigurationOptions.new([])
  config.parse_options if config.respond_to?(:parse_options)
  formatters = config.options[:formatters] || nil

  # RSpec's parser returns an array in the format
  #
  # [[formatter, output], ...],
  #
  # so match their format Construct a matching command line option,
  # including output target

  return formatters unless formatters
  formatters.map { |entries| "-f #{entries.join ' -o '}" }.join(" ")
end
_visual_formatter() click to toggle source
# File lib/guard/rspec/command.rb, line 37
def _visual_formatter
  return if _cmd_include_formatter?
  _rspec_formatters || "-f progress"
end