lib/caricature/clr/messenger.rb in caricature-0.7.5 vs lib/caricature/clr/messenger.rb in caricature-0.7.6

- old
+ new

@@ -1,50 +1,52 @@ -module Caricature - - # Encapsulates sending messages to CLR class or instance isolations - class ClrClassMessenger < Messenger - - protected - - # deliver the message to the receiving isolation - def internal_deliver(mode, method_name, return_type, *args, &b) - exp = expectations.find(method_name, mode, *args) - bl = record_call(method_name, mode, exp, *args, &b) - is_value_type = return_type && return_type != System::Void.to_clr_type && return_type.is_value_type - res = nil - if exp - block = exp.block || b - res = instance.__send__(method_name, *args, &block) if exp.super_before? - exp.event_recorder do |ev_nm, ev_ar, ev_h| - recorder.record_event_raise ev_nm, mode, *ev_ar, &ev_h if ev_nm - end if recorder && exp - res = exp.execute *args, &bl - res = instance.__send__(method_name, *args, &block) if !exp.super_before? and exp.call_super? - end - res ||= System::Activator.create_instance(return_type) if is_value_type - res - end - - end - - # Encapsulates sending messages to CLR interface isolations - class ClrInterfaceMessenger < Messenger - - protected - - # deliver the message to the receiving isolation - def internal_deliver(mode, method_name, return_type, *args, &b) - res = nil - is_value_type = return_type && return_type != System::Void.to_clr_type && return_type.is_value_type - exp = expectations.find(method_name, mode, *args) - exp.event_recorder do |ev_nm, ev_ar, ev_h| - recorder.record_event_raise ev_nm, mode, *ev_ar, &ev_h if ev_nm - end if recorder && exp - bl = record_call(method_name, mode, exp, *args, &b) - res = exp.execute *args, &bl if exp - res ||= System::Activator.create_instance(return_type) if is_value_type - res - end - - end - +module Caricature + + # Encapsulates sending messages to CLR class or instance isolations + class ClrClassMessenger < Messenger + + protected + + # deliver the message to the receiving isolation + def internal_deliver(mode, method_name, return_type, *args, &b) + exp = expectations.find(method_name, mode, *args) +# exp = expectations.find(method_name.underscore, mode, *args) unless exp + bl = record_call(method_name, mode, exp, *args, &b) + is_value_type = return_type && return_type != System::Void.to_clr_type && return_type.is_value_type + res = nil + if exp + block = exp.block || b + res = instance.__send__(method_name, *args, &block) if exp.super_before? + exp.event_recorder do |ev_nm, ev_ar, ev_h| + recorder.record_event_raise ev_nm, mode, *ev_ar, &ev_h if ev_nm + end if recorder && exp + res = exp.execute *args, &bl + res = instance.__send__(method_name, *args, &block) if !exp.super_before? and exp.call_super? + end + res ||= System::Activator.create_instance(return_type) if is_value_type + res + end + + end + + # Encapsulates sending messages to CLR interface isolations + class ClrInterfaceMessenger < Messenger + + protected + + # deliver the message to the receiving isolation + def internal_deliver(mode, method_name, return_type, *args, &b) + res = nil + is_value_type = return_type && return_type != System::Void.to_clr_type && return_type.is_value_type + exp = expectations.find(method_name, mode, *args) +# exp = expectations.find(method_name.underscore, mode, *args) unless exp + exp.event_recorder do |ev_nm, ev_ar, ev_h| + recorder.record_event_raise ev_nm, mode, *ev_ar, &ev_h if ev_nm + end if recorder && exp + bl = record_call(method_name, mode, exp, *args, &b) + res = exp.execute *args, &bl if exp + res ||= System::Activator.create_instance(return_type) if is_value_type + res + end + + end + end \ No newline at end of file