Project

deep_try

0.0
No commit activity in last 3 years
No release in over 3 years
Use deep_try with any objects like try, but with an arbitrary long list of methods, example: object(:class, :name, :to_s)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

DeepTry

Welcome to deep_try.

I will add a new method to any object, that works like try(:my_method), but with an arbitrary long list of methods.

Installation

Add this line to your application's Gemfile:

gem 'deep_try'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install deep_try

Usage

With any object use deep_try as follows

    object.deep_try(:class, :name, :to_s) # replace object with your object

This is identical to calling

    object.class.name.to_s

but without failing. If any of the methods return nil or don't exist, then nil is returned as if

    object&.class&.name&.to_s

would have been called.

If you have an array of methods in correct order, let's say

    methods = ["method_1", "method_2", "method_3"]

then use deep_try

    object.deep_try(*methods)

which has the same effect like

    object.method_1&.method_2&.method_3

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/HugoHasenbein/deep_try. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

Code of Conduct

Everyone interacting in the DeepTry project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.