Class: QML::ClassBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metaobj, klass) ⇒ ClassBuilder

Returns a new instance of ClassBuilder.



54
55
56
57
# File 'lib/qml/class_builder.rb', line 54

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

Instance Attribute Details

#klassObject (readonly)

Returns the value of attribute klass.



52
53
54
# File 'lib/qml/class_builder.rb', line 52

def klass
  @klass
end

#metaobjObject (readonly)

Returns the value of attribute metaobj.



52
53
54
# File 'lib/qml/class_builder.rb', line 52

def metaobj
  @metaobj
end

Instance Method Details

#buildObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/qml/class_builder.rb', line 59

def build
  create unless @klass
  return if @klass.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
  @klass.__send__ :meta_object=, @metaobj

  self
end