Sha256: 15181417b92ada3878ab44917d92ff81b6c8e2dead236a7fb10540e05e41467d

Contents?: true

Size: 479 Bytes

Versions: 2

Compression:

Stored size: 479 Bytes

Contents

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gir_ffi-0.7.4 lib/gir_ffi/builder_helper.rb
gir_ffi-0.7.3 lib/gir_ffi/builder_helper.rb