# Shortcut for "if options.key?(:full)"?

**URL:** <https://www.ruby-forum.com/t/shortcut-for-if-options-key-full/149309>\
**Category:** Ruby\
**Created:** [September 23, 2008, 1:45pm UTC](https://www.ruby-forum.com/t/shortcut-for-if-options-key-full/149309 "2008-09-23T13:45:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mrpete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ac91a4/32.png) [@mrpete](https://www.ruby-forum.com/u/mrpete)\
**Post date:** [September 23, 2008, 1:45pm UTC](https://www.ruby-forum.com/t/shortcut-for-if-options-key-full/149309/1 "2008-09-23T13:45:40Z")

</div>

If I pass an options hash into a def, how do I easily check to see if an  
option is set? This is how I’m doing it now:

if options.key?(:some\_option)  
…  
end

Knowing Ruby, there’s got to be a cleaner/better way!

Pete

---

<div class="post-metadata">

**Author:** ![mrpete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ac91a4/32.png) [@mrpete](https://www.ruby-forum.com/u/mrpete)\
**Post date:** [September 23, 2008, 2:45pm UTC](https://www.ruby-forum.com/t/shortcut-for-if-options-key-full/149309/2 "2008-09-23T14:45:56Z")

</div>

2008/9/23 Peter A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> If I pass an options hash into a def, how do I easily check to see if an  
> option is set? This is how I’m doing it now:
> 
> if options.key?(:some\_option)  
> …  
> end
> 
> Knowing Ruby, there’s got to be a cleaner/better way!

If nil is not used as valid option value you can usually do

if options[:some\_option]

I don’t see how it can become much shorter - unless you rename  
“options” and options.

Cheers

robert

---

<div class="post-metadata">

**Author:** ![mrpete](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ac91a4/32.png) [@mrpete](https://www.ruby-forum.com/u/mrpete)\
**Post date:** [September 23, 2008, 6:25pm UTC](https://www.ruby-forum.com/t/shortcut-for-if-options-key-full/149309/3 "2008-09-23T18:25:45Z")

</div>

> if options.key?(:some\_option)  
> …  
> end
> 
> Knowing Ruby, there’s got to be a cleaner/better way!

You can generally use options.fetch(:some\_option, default) to pass a  
default  
thru without any ‘if’ statements…
