Yelly likes to yell. To make the magic happen for simple cases just invoke him ala:
bundle exec rspec --require=yelly_the_yellingist_formatter.rb --format=YellyTheYellingistFormatter spec/models/your_file_here_spec.rb
In closing, >:O
require 'rspec/core/formatters/documentation_formatter' | |
class YellyTheYellingistFormatter < RSpec::Core::Formatters::DocumentationFormatter | |
def example_passed(example) | |
dabble_in_that_which_should_not_be_dabbled('yes!', example) | |
super(example) | |
shout!('yes!', example) | |
end | |
def example_failed(example) | |
dabble_in_that_which_should_not_be_dabbled('no!', example) | |
super(example) | |
shout!('no!', example) | |
end | |
def example_pending(example) | |
dabble_in_that_which_should_not_be_dabbled('meh', example) | |
super(example) | |
shout!('meh', example) | |
end | |
private | |
def dabble_in_that_which_should_not_be_dabbled(say_what_now, example) | |
example.metadata[:description] = "#{say_what_now.upcase} - #{example.metadata[:description]}" | |
end | |
def shout!(say_what_now, example) | |
return unless you_got_the_pipes? | |
system("say", say_what_now) | |
end | |
def you_got_the_pipes? | |
@pipes_present ||= system('which say > /dev/null') | |
end | |
end |