diff --git a/README.md b/README.md index 1b628e4..0f87653 100644 --- a/README.md +++ b/README.md @@ -242,6 +242,7 @@ _336 TILs and counting..._ - [Editing Code In Pry](ruby/editing-code-in-pry.md) - [Evaluating One-Off Commands](ruby/evaluating-one-off-commands.md) - [FactoryGirl Sequences](ruby/factory-girl-sequences.md) +- [Fail](ruby/fail.md) - [Finding The Source of Ruby Methods](ruby/finding-the-source-of-ruby-methods.md) - [Identify Outdated Gems](ruby/identify-outdated-gems.md) - [If You Detect None](ruby/if-you-detect-none.md) diff --git a/ruby/fail.md b/ruby/fail.md new file mode 100644 index 0000000..6de2bc2 --- /dev/null +++ b/ruby/fail.md @@ -0,0 +1,22 @@ +# Fail + +The `fail` method is synonymous with `raise` in Ruby. Consider the following +code snippet: + +```ruby +def is_odd?(num) + num.odd? +rescue + fail StandardError, 'you cannot use odd on this' +end + +> is_odd?(1) +#=> true +> is_odd?('hello') +#=> StandardError: you cannot use odd on this +``` + +Nevertheless, I believe the `raise` method is preferred to the `fail` +method. + +[source](http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-fail)