class GirFFI::Builders::SignalClosureBuilder

Implements the creation of a closure class for handling a particular signal. The type will be attached to the appropriate class.

Public Instance Methods

container_class() click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 36
def container_class
  @container_class ||= Builder.build_class(container_info)
end
container_info() click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 40
def container_info
  @container_info ||= info.container
end
klass() click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 32
def klass
  @klass ||= get_or_define_class container_class, @classname, GObject::RubyClosure
end
marshaller_definition() click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 18
def marshaller_definition
  arg_infos = info.args

  container_type_info = ReceiverTypeInfo.new(container_info)
  receiver_info = ReceiverArgumentInfo.new(container_type_info)
  return_value_info = ReturnValueInfo.new(info.return_type,
                                          info.caller_owns,
                                          info.skip_return?)

  MarshallingMethodBuilder.for_signal(receiver_info,
                                      arg_infos,
                                      return_value_info).method_definition
end
setup_class() click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 9
def setup_class
  setup_constants
  klass.class_eval marshaller_definition
end
setup_method(_method) click to toggle source
# File lib/gir_ffi/builders/signal_closure_builder.rb, line 14
def setup_method(_method)
  nil
end