Class: RSpec::Core::DRbOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/core/drb.rb

Constant Summary collapse

CONDITIONAL_FILTERS =
[:if, :unless]

Instance Method Summary collapse

Constructor Details

#initialize(submitted_options, filter_manager) ⇒ DRbOptions

Returns a new instance of DRbOptions.


36
37
38
39
# File 'lib/rspec/core/drb.rb', line 36

def initialize(, filter_manager)
  @submitted_options = 
  @filter_manager = filter_manager
end

Instance Method Details

#add_failure_exit_code(argv) ⇒ Object


64
65
66
67
68
# File 'lib/rspec/core/drb.rb', line 64

def add_failure_exit_code(argv)
  return unless @submitted_options[:failure_exit_code]

  argv << "--failure-exit-code" << @submitted_options[:failure_exit_code].to_s
end

#add_filter(argv, name, hash) ⇒ Object


84
85
86
87
88
89
90
91
# File 'lib/rspec/core/drb.rb', line 84

def add_filter(argv, name, hash)
  hash.each_pair do |k, v|
    next if CONDITIONAL_FILTERS.include?(k)
    tag = name == :inclusion ? k.to_s : "~#{k}".dup
    tag << ":#{v}" if v.is_a?(String)
    argv << "--tag" << tag
  end unless hash.empty?
end

#add_formatters(argv) ⇒ Object


93
94
95
96
97
98
# File 'lib/rspec/core/drb.rb', line 93

def add_formatters(argv)
  @submitted_options[:formatters].each do |pair|
    argv << "--format" << pair[0]
    argv << "--out" << pair[1] if pair[1]
  end if @submitted_options[:formatters]
end

#add_full_description(argv) ⇒ Object


70
71
72
73
74
75
76
77
78
79
80
# File 'lib/rspec/core/drb.rb', line 70

def add_full_description(argv)
  return unless @submitted_options[:full_description]

  # The argument to --example is regexp-escaped before being stuffed
  # into a regexp when received for the first time (see OptionParser).
  # Hence, merely grabbing the source of this regexp will retain the
  # backslashes, so we must remove them.
  @submitted_options[:full_description].each do |description|
    argv << "--example" << description.source.delete('\\')
  end
end

#add_libs(argv) ⇒ Object


100
101
102
103
104
# File 'lib/rspec/core/drb.rb', line 100

def add_libs(argv)
  @submitted_options[:libs].each do |path|
    argv << "-I" << path
  end if @submitted_options[:libs]
end

#add_requires(argv) ⇒ Object


106
107
108
109
110
# File 'lib/rspec/core/drb.rb', line 106

def add_requires(argv)
  @submitted_options[:requires].each do |path|
    argv << "--require" << path
  end if @submitted_options[:requires]
end

#optionsObject


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/rspec/core/drb.rb', line 41

def options
  argv = []
  argv << "--color"        if @submitted_options[:color]
  argv << "--force-color"  if @submitted_options[:color_mode] == :on
  argv << "--no-color"     if @submitted_options[:color_mode] == :off
  argv << "--profile"      if @submitted_options[:profile_examples]
  argv << "--backtrace"    if @submitted_options[:full_backtrace]
  argv << "--tty"          if @submitted_options[:tty]
  argv << "--fail-fast"    if @submitted_options[:fail_fast]
  argv << "--options"      << @submitted_options[:custom_options_file] if @submitted_options[:custom_options_file]
  argv << "--order"        << @submitted_options[:order]               if @submitted_options[:order]

  add_failure_exit_code(argv)
  add_full_description(argv)
  add_filter(argv, :inclusion, @filter_manager.inclusions)
  add_filter(argv, :exclusion, @filter_manager.exclusions)
  add_formatters(argv)
  add_libs(argv)
  add_requires(argv)

  argv + @submitted_options[:files_or_directories_to_run]
end