class GirFFI::Builders::FunctionBuilder
Implements the creation of a Ruby function definition out of a GIR IFunctionInfo.
Public Class Methods
new(info)
click to toggle source
Calls superclass method
GirFFI::Builders::BaseMethodBuilder::new
# File lib/gir_ffi/builders/function_builder.rb, line 11 def initialize(info) super(info, ReturnValueBuilder) end
Public Instance Methods
function_call_arguments()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 31 def function_call_arguments ca = argument_builder_collection.call_argument_names.dup ca.unshift receiver_call_argument if @info.method? ca end
method_name()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 15 def method_name @info.safe_name end
result()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 19 def result if argument_builder_collection.has_return_values? ["return #{argument_builder_collection.return_value_names.join(', ')}"] else [] end end
singleton_method?()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 27 def singleton_method? !@info.method? end
Private Instance Methods
container_info()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 49 def container_info @container_info ||= @info.container end
receiver_call_argument()
click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 39 def receiver_call_argument container_type_info = ReceiverTypeInfo.new(container_info) if @info.instance_ownership_transfer == :everything && container_type_info.flattened_tag == :object "self.ref" else "self" end end