Class: ConvenientService::Utils::Object::SafeSend
- Inherits:
-
Support::Command
- Object
- Support::Command
- ConvenientService::Utils::Object::SafeSend
- Defined in:
- lib/convenient_service/utils/object/safe_send.rb
Overview
ArgumentError is StandardError descendant, so it is also rescued. It is up to the client code to ensure that valid arguments are passed.
Returns nil when object does NOT respond to method.
Otherwise it calls method on object and returns its value.
If calling method on object raises an exception, it is rescued and nil is returned.
Only StandardError exceptions are rescued.
Uses __send__ under the hood.
Instance Attribute Summary collapse
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#block ⇒ Object
readonly
Returns the value of attribute block.
-
#kwargs ⇒ Object
readonly
Returns the value of attribute kwargs.
-
#method ⇒ Object
readonly
Returns the value of attribute method.
-
#object ⇒ Object
readonly
Returns the value of attribute object.
Instance Method Summary collapse
-
#call ⇒ Object
Can be any type.
-
#initialize(object, method, *args, **kwargs, &block) ⇒ SafeSend
constructor
A new instance of SafeSend.
Methods inherited from Support::Command
Constructor Details
#initialize(object, method, *args, **kwargs, &block) ⇒ SafeSend
Returns a new instance of SafeSend.
62 63 64 65 66 67 68 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 62 def initialize(object, method, *args, **kwargs, &block) @object = object @method = method @args = args @kwargs = kwargs @block = block end |
Instance Attribute Details
#args ⇒ Object (readonly)
Returns the value of attribute args.
41 42 43 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 41 def args @args end |
#block ⇒ Object (readonly)
Returns the value of attribute block.
53 54 55 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 53 def block @block end |
#kwargs ⇒ Object (readonly)
Returns the value of attribute kwargs.
47 48 49 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 47 def kwargs @kwargs end |
#method ⇒ Object (readonly)
Returns the value of attribute method.
35 36 37 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 35 def method @method end |
#object ⇒ Object (readonly)
Returns the value of attribute object.
29 30 31 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 29 def object @object end |
Instance Method Details
#call ⇒ Object
Returns Can be any type.
77 78 79 80 81 82 83 84 85 |
# File 'lib/convenient_service/utils/object/safe_send.rb', line 77 def call return unless object.respond_to?(method, true) begin object.__send__(method, *args, **kwargs, &block) rescue nil end end |