Class: GirFFI::Builders::FunctionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/gir_ffi/builders/function_builder.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(info) ⇒ FunctionBuilder

Returns a new instance of FunctionBuilder.



14
15
16
# File 'lib/gir_ffi/builders/function_builder.rb', line 14

def initialize info
  @info = info
end

Instance Method Details

#generateObject



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gir_ffi/builders/function_builder.rb', line 18

def generate
  vargen = GirFFI::VariableNameGenerator.new
  @argument_builders = @info.args.map {|arg| ArgumentBuilder.new vargen, arg }
  @return_value_builder = ReturnValueBuilder.new(vargen,
                                                 ReturnValueInfo.new(@info.return_type, @info.skip_return?),
                                                 @info.constructor?)

  set_up_argument_relations
  setup_error_argument vargen

  filled_out_template
end