module GirFFI module BuilderHelper def optionally_define_constant parent, name if parent.const_defined? name, false parent.const_get name else parent.const_set name, yield end end def get_or_define_class namespace, name, parent optionally_define_constant(namespace, name) { Class.new parent } end def get_or_define_module parent, name optionally_define_constant(parent, name) { Module.new } end end end