Sha256: 52e0a685c33b1940b4423311d7d82375c2124ad30b7d7218acd5f723b1e6901a
Contents?: true
Size: 1.9 KB
Versions: 4
Compression:
Stored size: 1.9 KB
Contents
require "rspec/core" require "pathname" require "guard/rspec" module Guard class RSpec < Plugin class Command < String FAILURE_EXIT_CODE = 2 attr_accessor :paths, :options def initialize(paths, options = {}) @paths = paths @options = options super(_parts.join(" ")) end private 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 def _paths(options) return paths unless chdir = options[:chdir] paths.map { |path| path.sub(File.join(chdir, "/"), "") } end def _visual_formatter return if _cmd_include_formatter? _rspec_formatters || "-f progress" end 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 def _cmd_include_formatter? options[:cmd] =~ /(?:^|\s)(?:-f\s*|--format(?:=|\s+))([\w:]+)/ end def _guard_formatter dir = Pathname.new(__FILE__).dirname.dirname "-r #{dir + "rspec_formatter.rb"} -f Guard::RSpecFormatter" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
guard-rspec-1.2.2 | lib/guard/rspec/command.rb.orig |
guard-rspec-4.5.0 | lib/guard/rspec/command.rb |
guard-rspec-4.4.2 | lib/guard/rspec/command.rb |
guard-rspec-4.4.1 | lib/guard/rspec/command.rb |