Class: GirFFI::Builders::ModuleBuilder
- Inherits:
-
Object
- Object
- GirFFI::Builders::ModuleBuilder
show all
- Includes:
- GirFFI::BuilderHelper
- Defined in:
- lib/gir_ffi/builders/module_builder.rb
Overview
Builds a module based on information found in the introspection repository.
Instance Method Summary
collapse
#get_or_define_class, #get_or_define_module, #optionally_define_constant
Constructor Details
#initialize(module_name, namespace: module_name, version: nil) ⇒ ModuleBuilder
Returns a new instance of ModuleBuilder.
15
16
17
18
19
|
# File 'lib/gir_ffi/builders/module_builder.rb', line 15
def initialize(module_name, namespace: module_name, version: nil)
@namespace = namespace
@version = version
@safe_namespace = module_name
end
|
Instance Method Details
#build_namespaced_class(classname) ⇒ Object
39
40
41
42
|
# File 'lib/gir_ffi/builders/module_builder.rb', line 39
def build_namespaced_class(classname)
info = find_namespaced_class_info(classname)
Builder.build_class info
end
|
#find_namespaced_class_info(classname) ⇒ Object
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/gir_ffi/builders/module_builder.rb', line 44
def find_namespaced_class_info(classname)
name = classname.to_s
info = gir.find_by_name(@namespace, name) ||
gir.find_by_name(@namespace, name.sub(/^./, &:downcase))
unless info
raise NameError,
"Class #{classname} not found in namespace #{@namespace}"
end
info
end
|
#generate ⇒ Object
21
22
23
|
# File 'lib/gir_ffi/builders/module_builder.rb', line 21
def generate
modul
end
|
#method_available?(method) ⇒ Boolean
35
36
37
|
# File 'lib/gir_ffi/builders/module_builder.rb', line 35
def method_available?(method)
function_introspection_data(method.to_s) and true
end
|
#setup_method(method) ⇒ Object