Skip to content

Instantly share code, notes, and snippets.

@spicycode
Created June 21, 2011 01:59
Show Gist options
  • Select an option

  • Save spicycode/1037079 to your computer and use it in GitHub Desktop.

Select an option

Save spicycode/1037079 to your computer and use it in GitHub Desktop.

Revisions

  1. spicycode created this gist Jun 21, 2011.
    8 changes: 8 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    YELLY!!!!! THE YELLINGIST FORMATTER EVER!!!!!
    =============================================

    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
    38 changes: 38 additions & 0 deletions yelly_the_yellingist_formatter.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    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