class Kamaze::Project::Tools::Rspec
Provide wrapper based on top of “RSpec::Core::Runner“
Sample of use:
“`ruby tools.fetch(:rspec).tap do |rspec|
rspec.tags = args[:tags].to_s.split(',').map(&:strip)
end.run “`
@see www.relishapp.com/rspec/rspec-core/docs/command-line/rake-task @see github.com/rspec/rspec-core/blob/master/lib/rspec/core/runner.rb @see relishapp.com/rspec/rspec-core/v/2-4/docs/command-line/tag-option
Attributes
defaults[RW]
Default arguments used by “RSpec::Core::Runner“
@type [Array|Arguments] @return [Arguments]
stderr[RW]
stdout[RW]
Public Instance Methods
arguments()
click to toggle source
Arguments used by “CLI“ (during execution/“run“)
@return [Arguments]
# File lib/kamaze/project/tools/rspec.rb, line 61 def arguments @arguments = @defaults if @arguments.to_a.size.zero? tags.to_a.each do |tag| next if @arguments.slice_before('--tag').to_a.include?(['--tag', tag]) @arguments += ['--tag', tag] end # @formatter:off { true => @arguments, false => @arguments.clone.concat(options_arguments).map(&:to_s).freeze }.fetch(caller_locations(1..1).first&.path == __FILE__) # @formatter:on end
mutable_attributes()
click to toggle source
# File lib/kamaze/project/tools/rspec.rb, line 41 def mutable_attributes [:defaults, :stdout, :stderr] end
run()
click to toggle source
@raise [SystemExit] @return [self]
# File lib/kamaze/project/tools/rspec.rb, line 47 def run with_exit_on_failure do options = arguments.concat(options_arguments).map(&:to_s) self.retcode = core.run(options, stderr, stdout).to_i reset end self end
Protected Instance Methods
core()
click to toggle source
@return [RSpec::Core::Runner]
# File lib/kamaze/project/tools/rspec.rb, line 100 def core require 'rspec/core' RSpec::Core::Runner end
options_arguments()
click to toggle source
@return [Array<String>]
# File lib/kamaze/project/tools/rspec.rb, line 107 def options_arguments options_files = Pathname.new(Dir.pwd).join('.rspec') defaults = [] if options_files.file? and options_files.readable? defaults += ['-O', '.rspec'] end defaults end
reset()
click to toggle source
Reset arguments + retcode
@return [self]
# File lib/kamaze/project/tools/rspec.rb, line 83 def reset @arguments = nil self.retcode = nil if retcode.to_i.zero? self end
setup()
click to toggle source
# File lib/kamaze/project/tools/rspec.rb, line 90 def setup reset @tags = [] @stdout ||= $stdout @stderr ||= $stderr @defaults ||= [] end