Class: BindingDumper::Dumpers::ProcDumper
- Defined in:
- lib/binding_dumper/dumpers/proc_dumper.rb
Overview
Class responsible for converting procs and methods to marshalable hash
It uses a gem called ‘method_source’ which may inspect the source of proc/method
Instance Attribute Summary
Attributes inherited from Abstract
Instance Method Summary collapse
-
#can_convert? ⇒ true, false
Returns true if ProcDumper can convert passed
abstract_object. -
#can_deconvert? ⇒ true, false
Returns true if ProcDumper can deconvert pased
abstract_object. -
#convert ⇒ Hash
Converts passed
abstract_objectto marshalable hash. -
#deconvert ⇒ Object
Deconverts passed
abstract_objectback to the original state.
Methods inherited from Abstract
Constructor Details
This class inherits a constructor from BindingDumper::Dumpers::Abstract
Instance Method Details
#can_convert? ⇒ true, false
Returns true if ProcDumper can convert passed abstract_object
13 14 15 |
# File 'lib/binding_dumper/dumpers/proc_dumper.rb', line 13 def can_convert? _proc.is_a?(Proc) || _proc.is_a?(Method) end |
#can_deconvert? ⇒ true, false
Returns true if ProcDumper can deconvert pased abstract_object
21 22 23 |
# File 'lib/binding_dumper/dumpers/proc_dumper.rb', line 21 def can_deconvert? abstract_object.is_a?(Hash) && abstract_object.has_key?(:_source) end |
#convert ⇒ Hash
Converts passed abstract_object to marshalable hash
29 30 31 32 33 34 |
# File 'lib/binding_dumper/dumpers/proc_dumper.rb', line 29 def convert return unless should_convert? source = (_proc.to_proc.source rescue 'proc {}').strip { _source: source } end |
#deconvert ⇒ Object
Deconverts passed abstract_object back to the original state
40 41 42 |
# File 'lib/binding_dumper/dumpers/proc_dumper.rb', line 40 def deconvert eval(_proc[:_source]) rescue proc {} end |