Sha256: b93b15e8d65f73691751991de15d79a0f5b94e219e0882256fbd2b3319a77c3b

Contents?: true

Size: 561 Bytes

Versions: 12

Compression:

Stored size: 561 Bytes

Contents

# frozen_string_literal: true

module GirFFI
  # Set of helper methods used in the builders.
  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

12 entries across 12 versions & 1 rubygems

Version Path
gir_ffi-0.15.2 lib/gir_ffi/builder_helper.rb
gir_ffi-0.15.1 lib/gir_ffi/builder_helper.rb
gir_ffi-0.15.0 lib/gir_ffi/builder_helper.rb
gir_ffi-0.14.1 lib/gir_ffi/builder_helper.rb
gir_ffi-0.14.0 lib/gir_ffi/builder_helper.rb
gir_ffi-0.13.1 lib/gir_ffi/builder_helper.rb
gir_ffi-0.13.0 lib/gir_ffi/builder_helper.rb
gir_ffi-0.12.1 lib/gir_ffi/builder_helper.rb
gir_ffi-0.12.0 lib/gir_ffi/builder_helper.rb
gir_ffi-0.11.4 lib/gir_ffi/builder_helper.rb
gir_ffi-0.11.3 lib/gir_ffi/builder_helper.rb
gir_ffi-0.11.2 lib/gir_ffi/builder_helper.rb