class GirFFI::Builders::MappingMethodBuilder
Implements the creation mapping method for a callback or vfunc handler. This method converts arguments from C to Ruby, and the result from Ruby to C.
Public Class Methods
for_callback(info)
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 16 def self.for_callback(info) new nil, info, CallbackArgumentBuilder end
for_vfunc(receiver_info, info)
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 20 def self.for_vfunc(receiver_info, info) new receiver_info, info, VFuncArgumentBuilder end
new(receiver_info, info, builder_class)
click to toggle source
Calls superclass method
GirFFI::Builders::BaseMethodBuilder::new
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 24 def initialize(receiver_info, info, builder_class) super(info, CallbackReturnValueBuilder, receiver_info: receiver_info, argument_builder_class: builder_class) end
Public Instance Methods
invocation()
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 41 def invocation "_proc.call(#{call_argument_list})" end
method_arguments()
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 36 def method_arguments @method_arguments ||= argument_builder_collection.method_argument_names.dup.unshift("_proc") end
method_name()
click to toggle source
Methods used by MethodTemplate
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 32 def method_name "call_with_argument_mapping" end
result()
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 45 def result if (name = argument_builder_collection.return_value_name) ["return #{name}"] else [] end end
singleton_method?()
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 53 def singleton_method? true end
Private Instance Methods
call_argument_list()
click to toggle source
# File lib/gir_ffi/builders/mapping_method_builder.rb, line 59 def call_argument_list argument_builder_collection.call_argument_names.join(", ") end