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
# File lib/gir_ffi/builders/function_builder.rb, line 9
def initialize(info)
  @info = info
  @return_value_builder = ReturnValueBuilder.new(vargen,
                                                 return_value_info)
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
  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

receiver_call_argument() click to toggle source
# File lib/gir_ffi/builders/function_builder.rb, line 39
def receiver_call_argument
  if @info.instance_ownership_transfer == :everything
    'self.ref'
  else
    'self'
  end
end