Base class for all generated classes. Contains code for dealing with the generated Struct classes.
@deprecated Compatibility function. Remove in version 0.5.0.
# File lib/gir_ffi/class_base.rb, line 49 def _builder gir_ffi_builder end
@deprecated Compatibility function. Remove in version 0.5.0.
# File lib/gir_ffi/class_base.rb, line 67 def _setup_instance_method name setup_instance_method name end
@deprecated Compatibility function. Remove in version 0.5.0.
# File lib/gir_ffi/class_base.rb, line 58 def _setup_method name setup_method name end
# File lib/gir_ffi/class_base.rb, line 93 def allocate obj = _real_new obj.instance_variable_set :@struct, self::Struct.new obj end
Wrap the passed pointer in an instance of the current class. Will not do any casting to subtypes.
# File lib/gir_ffi/class_base.rb, line 86 def direct_wrap ptr return nil if ptr.nil? or ptr.null? obj = _real_new obj.instance_variable_set :@struct, self::Struct.new(ptr.to_ptr) obj end
@deprecated Compatibility function. Remove in version 0.5.0.
# File lib/gir_ffi/class_base.rb, line 40 def ffi_structure self::Struct end
Pass-through casting method. This may become a type checking method. It is overridden by GValue to implement wrapping of plain Ruby objects.
# File lib/gir_ffi/class_base.rb, line 102 def from val val end
# File lib/gir_ffi/class_base.rb, line 53 def gir_ffi_builder self.const_get :GIR_FFI_BUILDER end
# File lib/gir_ffi/class_base.rb, line 44 def gir_info self.const_get :GIR_INFO end
# File lib/gir_ffi/class_base.rb, line 25 def self.setup_and_call method, *arguments, &block result = self.ancestors.any? do |klass| klass.respond_to?(:_setup_method) && klass._setup_method(method.to_s) end unless result raise RuntimeError, "Unable to set up method #{method} in #{self}" end self.send method, *arguments, &block end
# File lib/gir_ffi/class_base.rb, line 71 def setup_instance_method name _builder.setup_instance_method name end
# File lib/gir_ffi/class_base.rb, line 62 def setup_method name _builder.setup_method name end
Wrap the passed pointer in an instance of the current class, or a descendant type if applicable.
# File lib/gir_ffi/class_base.rb, line 80 def wrap ptr direct_wrap ptr end
# File lib/gir_ffi/class_base.rb, line 12 def setup_and_call method, *arguments, &block result = self.class.ancestors.any? do |klass| klass.respond_to?(:_setup_instance_method) && klass._setup_instance_method(method.to_s) end unless result raise RuntimeError, "Unable to set up instance method #{method} in #{self}" end self.send method, *arguments, &block end