class GirFFI::Builder::Function

Implements the creation of a Ruby function definition out of a GIR IFunctionInfo.

Public Class Methods

new(info, libmodule) click to toggle source
# File lib/gir_ffi/builder/function.rb, line 8
def initialize info, libmodule
  @info = info
  @libmodule = libmodule
end

Public Instance Methods

generate() click to toggle source
# File lib/gir_ffi/builder/function.rb, line 13
def generate
  vargen = GirFFI::VariableNameGenerator.new
  @data = @info.args.map {|arg| Argument.build vargen, arg, @libmodule}
  @rvdata = ReturnValueFactory.build vargen, @info

  alldata = @data.dup << @rvdata

  alldata.each {|data|
    idx = data.type_info.array_length
    if idx > -1
      data.length_arg = @data[idx] 
      @data[idx].array_arg = data
    end
  }

  setup_error_argument vargen
  return filled_out_template
end
pretty_print() click to toggle source
# File lib/gir_ffi/builder/function.rb, line 32
def pretty_print
  generate
end