Class: GirFFI::Builders::RubyToCConvertor

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

Overview

Builder that generates code to convert values from Ruby to C. Used by argument builders.

Instance Method Summary collapse

Constructor Details

#initialize(type_info, argument_name, ownership_transfer: nil) ⇒ RubyToCConvertor

Returns a new instance of RubyToCConvertor.



7
8
9
10
11
# File 'lib/gir_ffi/builders/ruby_to_c_convertor.rb', line 7

def initialize(type_info, argument_name, ownership_transfer: nil)
  @type_info = type_info
  @argument_name = argument_name
  @ownership_transfer = ownership_transfer
end

Instance Method Details

#conversionObject



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

def conversion
  args = conversion_arguments @argument_name
  "#{@type_info.argument_class_name}.#{conversion_method}(#{args})"
end

#conversion_arguments(name) ⇒ Object



18
19
20
# File 'lib/gir_ffi/builders/ruby_to_c_convertor.rb', line 18

def conversion_arguments(name)
  @type_info.extra_conversion_arguments.map(&:inspect).push(name).join(', ')
end