gir_ffi 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/DESIGN.rdoc +9 -0
- data/History.txt +11 -0
- data/TODO.rdoc +6 -9
- data/examples/01_empty_window.rb +1 -1
- data/examples/02_hello_world.rb +4 -4
- data/examples/03_upgraded_hello_world.rb +7 -8
- data/lib/gir_ffi.rb +0 -4
- data/lib/gir_ffi/arg_helper.rb +27 -2
- data/lib/gir_ffi/builder.rb +13 -86
- data/lib/gir_ffi/builder_helper.rb +2 -15
- data/lib/gir_ffi/class_base.rb +51 -0
- data/lib/gir_ffi/class_builder.rb +178 -52
- data/lib/gir_ffi/function_definition_builder.rb +46 -9
- data/lib/gir_ffi/g_object.rb +37 -0
- data/lib/gir_ffi/i_arg_info.rb +27 -9
- data/lib/gir_ffi/i_base_info.rb +12 -4
- data/lib/gir_ffi/i_callable_info.rb +15 -5
- data/lib/gir_ffi/i_enum_info.rb +9 -3
- data/lib/gir_ffi/i_field_info.rb +12 -4
- data/lib/gir_ffi/i_function_info.rb +24 -8
- data/lib/gir_ffi/i_object_info.rb +63 -21
- data/lib/gir_ffi/i_registered_type_info.rb +11 -0
- data/lib/gir_ffi/i_repository.rb +2 -2
- data/lib/gir_ffi/i_signal_info.rb +1 -1
- data/lib/gir_ffi/i_struct_info.rb +24 -8
- data/lib/gir_ffi/i_type_info.rb +24 -8
- data/lib/gir_ffi/i_union_info.rb +15 -0
- data/lib/gir_ffi/i_value_info.rb +3 -1
- data/lib/gir_ffi/i_vfunc_info.rb +12 -1
- data/lib/gir_ffi/lib.rb +23 -1
- data/lib/gir_ffi/lib_c.rb +1 -1
- data/lib/gir_ffi/module_base.rb +19 -0
- data/lib/gir_ffi/module_builder.rb +67 -20
- data/lib/gir_ffi/overrides/gobject.rb +174 -0
- data/lib/gir_ffi/overrides/gtk.rb +26 -9
- data/test/builder_test.rb +57 -37
- data/test/{base_test.rb → class_base_test.rb} +3 -3
- data/test/class_builder_test.rb +48 -6
- data/test/everything_test.rb +285 -36
- data/test/function_definition_builder_test.rb +11 -9
- data/test/g_object_test.rb +22 -0
- data/test/gobject_overrides_test.rb +216 -0
- data/test/i_object_info_test.rb +21 -0
- data/test/module_builder_test.rb +54 -0
- data/test/test_helper.rb +6 -4
- metadata +18 -14
- data/lib/gir_ffi/base.rb +0 -25
- data/lib/gir_ffi/constructor_definition_builder.rb +0 -20
- data/lib/gir_ffi/g_type.rb +0 -14
- data/lib/gir_ffi/method_missing_definition_builder.rb +0 -59
- data/test/constructor_definition_builder_test.rb +0 -19
- data/test/g_type_test.rb +0 -22
@@ -1,20 +0,0 @@
|
|
1
|
-
module GirFFI
|
2
|
-
# Implements the creation of a Ruby constructor definition out of a GIR
|
3
|
-
# IFunctionInfo, if it represents a constructor.
|
4
|
-
class ConstructorDefinitionBuilder < FunctionDefinitionBuilder
|
5
|
-
private
|
6
|
-
|
7
|
-
def process_return_value
|
8
|
-
end
|
9
|
-
|
10
|
-
def filled_out_template
|
11
|
-
return <<-CODE
|
12
|
-
def #{@info.name} #{@inargs.join(', ')}
|
13
|
-
#{@pre.join("\n")}
|
14
|
-
_real_new #{@libmodule}.#{@info.symbol}(#{@callargs.join(', ')})
|
15
|
-
end
|
16
|
-
CODE
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
data/lib/gir_ffi/g_type.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
module GirFFI
|
2
|
-
# Base class for builders of #method_missing definitions.
|
3
|
-
class MethodMissingDefinitionBuilder
|
4
|
-
def initialize lib, namespace
|
5
|
-
@lib = lib
|
6
|
-
@namespace = namespace
|
7
|
-
end
|
8
|
-
|
9
|
-
def generate
|
10
|
-
args = arguments.map {|arg| "\"#{arg}\""}
|
11
|
-
|
12
|
-
return <<-CODE
|
13
|
-
def #{slf}method_missing method, *arguments, &block
|
14
|
-
result = GirFFI::Builder.#{fn} #{args.join ', '}, method.to_s
|
15
|
-
return super unless result
|
16
|
-
self.send method, *arguments, &block
|
17
|
-
end
|
18
|
-
CODE
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# Builds a #method_missing for a module. This method_missing will be
|
23
|
-
# called for missing module methods; these modules are not meant for
|
24
|
-
# #include'ing.
|
25
|
-
class ModuleMethodMissingDefinitionBuilder < MethodMissingDefinitionBuilder
|
26
|
-
private
|
27
|
-
|
28
|
-
def slf; "self."; end
|
29
|
-
def fn; "setup_function"; end
|
30
|
-
def arguments; [@namespace]; end
|
31
|
-
def libs; [@lib]; end
|
32
|
-
end
|
33
|
-
|
34
|
-
# Builds a #method_missing for missing instance methods.
|
35
|
-
class InstanceMethodMissingDefinitionBuilder < MethodMissingDefinitionBuilder
|
36
|
-
def initialize lib, modul, namespace, classname
|
37
|
-
super lib, namespace
|
38
|
-
@classname = classname
|
39
|
-
@module = modul
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
def slf; ""; end
|
45
|
-
def fn; "setup_instance_method"; end
|
46
|
-
def arguments; [@namespace, @classname]; end
|
47
|
-
def libs; [@lib, @module]; end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Builds a #method_missing for missing class methods.
|
51
|
-
class ClassMethodMissingDefinitionBuilder < InstanceMethodMissingDefinitionBuilder
|
52
|
-
private
|
53
|
-
|
54
|
-
def slf; "self."; end
|
55
|
-
def fn; "setup_method"; end
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi'
|
3
|
-
|
4
|
-
class ConstructorDefinitionBuilderTest < Test::Unit::TestCase
|
5
|
-
context "The ConstructorDefinitionBuilder" do
|
6
|
-
should "build correct definition of Gtk::Window#new" do
|
7
|
-
go = get_method_introspection_data 'Gtk', 'Window', 'new'
|
8
|
-
cbuilder = GirFFI::ConstructorDefinitionBuilder.new go, Lib
|
9
|
-
code = cbuilder.generate
|
10
|
-
|
11
|
-
expected =
|
12
|
-
"def new type
|
13
|
-
_real_new Lib.gtk_window_new(type)
|
14
|
-
end"
|
15
|
-
|
16
|
-
assert_equal cws(expected), cws(code)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/test/g_type_test.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi/g_type'
|
3
|
-
|
4
|
-
class HelperGTypeTest < Test::Unit::TestCase
|
5
|
-
context "The GType module" do
|
6
|
-
should "have init as a public method" do
|
7
|
-
assert GirFFI::GType.respond_to?('init')
|
8
|
-
end
|
9
|
-
|
10
|
-
should "not have g_type_init as a public method" do
|
11
|
-
assert GirFFI::GType.respond_to?('g_type_init') == false
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
context "the init method" do
|
16
|
-
should "not raise an error" do
|
17
|
-
assert_nothing_raised do
|
18
|
-
GirFFI::GType.init
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|