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 |