class Object
Public Instance Methods
dependencies_for(method_call)
click to toggle source
# File lib/data_constructors.rb, line 40 def dependencies_for(method_call) returns_that_pass_to(method_call).map do |method_return| { output: method_return[:output], from: method_return[:name], to: method_call[:name] } end end
new_method_call(from:)
click to toggle source
# File lib/data_constructors.rb, line 17 def new_method_call(from:) parameters = from.binding.eval "method(__method__).parameters.map { |p| eval p.last.to_s }" { name: from.method_id, input_reference: parameters.map(&:object_id), input: parameters.map { |parameter| sanitize parameter } } end
new_method_return(from:)
click to toggle source
# File lib/data_constructors.rb, line 26 def new_method_return(from:) { name: from.method_id, output_reference: from.return_value.object_id, output: sanitize(from.return_value) } end
returns_that_pass_to(current)
click to toggle source
# File lib/data_constructors.rb, line 34 def returns_that_pass_to(current) @returns.select do |previous| current[:input_reference].detect { |given_input| given_input.equal? previous[:output_reference] } end end
safe_clone(object)
click to toggle source
# File lib/data_constructors.rb, line 1 def safe_clone(object) begin object.clone rescue TypeError => e object end end
sanitize(object)
click to toggle source
# File lib/data_constructors.rb, line 9 def sanitize(object) if object.is_a? Proc object.to_s else safe_clone object end end