Class: QML::QtObjectBase::SubclassBuilder Private

Inherits:
Object
  • Object
show all
Defined in:
lib/qml/qt_object_base.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metaobj, klass) ⇒ SubclassBuilder

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of SubclassBuilder.



84
85
86
87
# File 'lib/qml/qt_object_base.rb', line 84

def initialize(metaobj, klass)
  @metaobj = metaobj
  @subclass = klass
end

Instance Attribute Details

#subclassObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



82
83
84
# File 'lib/qml/qt_object_base.rb', line 82

def subclass
  @subclass
end

Instance Method Details

#buildObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/qml/qt_object_base.rb', line 89

def build
  create unless @subclass
  return if @subclass.meta_object == @metaobj

  @metaobj.method_names.reject { |name| @metaobj.signal?(name) }.each do |name|
    define_method(name)
  end
  @metaobj.method_names.select { |name| @metaobj.signal?(name) }.each do |name|
    define_signal(name)
  end
  @metaobj.property_names.each do |name|
    define_property(name)
  end
  @metaobj.enumerators.each do |k, v|
    define_enum(k, v)
  end
  @subclass.__send__ :meta_object=, @metaobj

  self
end