gir_ffi 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. data/History.txt +11 -0
  2. data/README.rdoc +28 -14
  3. data/Rakefile +1 -1
  4. data/TODO.rdoc +3 -24
  5. data/examples/05_notification.rb +35 -0
  6. data/lib/gir_ffi/arg_helper.rb +15 -279
  7. data/lib/gir_ffi/builder/argument/base.rb +110 -0
  8. data/lib/gir_ffi/builder/argument/hash_table_base.rb +20 -0
  9. data/lib/gir_ffi/builder/argument/in_base.rb +19 -0
  10. data/lib/gir_ffi/builder/argument/in_out_base.rb +25 -0
  11. data/lib/gir_ffi/builder/argument/list_base.rb +16 -0
  12. data/lib/gir_ffi/builder/argument/out_base.rb +27 -0
  13. data/lib/gir_ffi/builder/argument.rb +167 -357
  14. data/lib/gir_ffi/builder/function.rb +2 -0
  15. data/lib/gir_ffi/builder/module.rb +2 -2
  16. data/lib/gir_ffi/builder/type/base.rb +7 -0
  17. data/lib/gir_ffi/builder/type/callback.rb +1 -8
  18. data/lib/gir_ffi/builder/type/constant.rb +1 -6
  19. data/lib/gir_ffi/builder/type/enum.rb +2 -7
  20. data/lib/gir_ffi/builder/type/interface.rb +12 -14
  21. data/lib/gir_ffi/builder/type/object.rb +32 -13
  22. data/lib/gir_ffi/builder/type/registered_type.rb +1 -78
  23. data/lib/gir_ffi/builder/type/struct.rb +2 -0
  24. data/lib/gir_ffi/builder/type/struct_based.rb +9 -24
  25. data/lib/gir_ffi/builder/type/unintrospectable.rb +63 -0
  26. data/lib/gir_ffi/builder/type/union.rb +8 -7
  27. data/lib/gir_ffi/builder/type/with_layout.rb +43 -0
  28. data/lib/gir_ffi/builder/type/with_methods.rb +61 -0
  29. data/lib/gir_ffi/builder.rb +39 -0
  30. data/lib/gir_ffi/callback_helper.rb +58 -0
  31. data/lib/gir_ffi/class_base.rb +17 -5
  32. data/lib/gir_ffi/i_repository.rb +0 -4
  33. data/lib/gir_ffi/in_out_pointer.rb +76 -0
  34. data/lib/gir_ffi/in_pointer.rb +46 -0
  35. data/lib/gir_ffi/interface_base.rb +12 -0
  36. data/lib/gir_ffi/module_base.rb +7 -3
  37. data/lib/gir_ffi/overrides/glib.rb +14 -3
  38. data/lib/gir_ffi/overrides/gobject.rb +37 -15
  39. data/lib/gir_ffi/overrides/gtk.rb +1 -1
  40. data/lib/gir_ffi/version.rb +1 -1
  41. data/lib/gir_ffi.rb +3 -0
  42. data/tasks/rdoc.rake +6 -0
  43. data/tasks/test.rake +22 -3
  44. data/tasks/yardoc.rake +6 -0
  45. data/test/arg_helper_test.rb +2 -72
  46. data/test/builder_test.rb +15 -19
  47. data/test/function_definition_builder_test.rb +30 -37
  48. data/test/g_object_overrides_test.rb +29 -1
  49. data/test/glib_overrides_test.rb +4 -0
  50. data/test/gtk_overrides_test.rb +21 -15
  51. data/test/i_repository_test.rb +2 -1
  52. data/test/{generated_gimarshallingtests_test.rb → integration/generated_gimarshallingtests_test.rb} +1 -1
  53. data/test/integration/generated_gio_test.rb +98 -0
  54. data/test/integration/generated_gobject_test.rb +30 -0
  55. data/test/{generated_gtk_test.rb → integration/generated_gtk_test.rb} +5 -5
  56. data/test/{generated_regress_test.rb → integration/generated_regress_test.rb} +19 -5
  57. data/test/interface_type_builder_test.rb +1 -1
  58. data/test/module_builder_test.rb +3 -3
  59. data/test/test_helper.rb +4 -9
  60. data/test/type_builder_test.rb +5 -5
  61. data/test/{dynamic_type_builder_test.rb → unintrospectable_type_builder_test.rb} +12 -8
  62. data/test/unit/builder_test.rb +31 -0
  63. data/test/unit/callback_helper_test.rb +19 -0
  64. data/test/unit/constant_builder_test.rb +5 -0
  65. data/test/unit/i_constant_info_test.rb +17 -0
  66. data/test/unit/in_out_pointer_test.rb +118 -0
  67. data/test/unit/in_pointer_test.rb +69 -0
  68. data/test/unit/object_type_builder_test.rb +20 -0
  69. metadata +47 -19
  70. data/lib/gir_ffi/builder/dynamic_type.rb +0 -41
  71. data/test/generated_gio_test.rb +0 -39
  72. data/test/generated_gobject_test.rb +0 -15
  73. data/test/object_type_builder_test.rb +0 -34
data/test/test_helper.rb CHANGED
@@ -15,10 +15,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
15
15
 
16
16
  require 'gir_ffi'
17
17
 
18
- # Since the tests will call Gtk+ functions, Gtk+ must be initialized.
19
- GirFFI.setup :Gtk, '2.0'
20
- Gtk.init
21
-
22
18
  GirFFI::IRepository.prepend_search_path File.join(File.dirname(__FILE__), 'lib')
23
19
  module GirFFI
24
20
  class IRepository
@@ -48,17 +44,16 @@ class MiniTest::Unit::TestCase
48
44
  code.gsub(/(^\s*|\s*$)/, "")
49
45
  end
50
46
 
51
- # FIXME: Rename. It can also get object, interface, etc., data.
52
- def get_function_introspection_data namespace, function
47
+ def get_introspection_data namespace, name
53
48
  gir = GirFFI::IRepository.default
54
49
  gir.require namespace, nil
55
- gir.find_by_name namespace, function
50
+ gir.find_by_name namespace, name
56
51
  end
57
52
 
58
- def get_method_introspection_data namespace, klass, function
53
+ def get_method_introspection_data namespace, klass, name
59
54
  gir = GirFFI::IRepository.default
60
55
  gir.require namespace, nil
61
- gir.find_by_name(namespace, klass).find_method function
56
+ gir.find_by_name(namespace, klass).find_method name
62
57
  end
63
58
 
64
59
  SAVED_MODULES = {}
@@ -20,7 +20,7 @@ class TypeBuilderTest < MiniTest::Spec
20
20
 
21
21
  context "for Gtk::Widget" do
22
22
  setup do
23
- @cbuilder = GirFFI::Builder::Type::Object.new get_function_introspection_data('Gtk', 'Widget')
23
+ @cbuilder = GirFFI::Builder::Type::Object.new get_introspection_data('Gtk', 'Widget')
24
24
  end
25
25
 
26
26
  context "looking at Gtk::Widget#show" do
@@ -39,19 +39,19 @@ class TypeBuilderTest < MiniTest::Spec
39
39
 
40
40
  context 'the find_signal method' do
41
41
  should 'find the signal "test" for TestObj' do
42
- builder = GirFFI::Builder::Type::Object.new get_function_introspection_data('Regress', 'TestObj')
42
+ builder = GirFFI::Builder::Type::Object.new get_introspection_data('Regress', 'TestObj')
43
43
  sig = builder.find_signal 'test'
44
44
  assert_equal 'test', sig.name
45
45
  end
46
46
 
47
47
  should 'find the signal "test" for TestSubObj' do
48
- builder = GirFFI::Builder::Type::Object.new get_function_introspection_data('Regress', 'TestSubObj')
48
+ builder = GirFFI::Builder::Type::Object.new get_introspection_data('Regress', 'TestSubObj')
49
49
  sig = builder.find_signal 'test'
50
50
  assert_equal 'test', sig.name
51
51
  end
52
52
 
53
53
  should 'find the signal "changed" for Gtk::Entry' do
54
- builder = GirFFI::Builder::Type::Object.new get_function_introspection_data('Gtk', 'Entry')
54
+ builder = GirFFI::Builder::Type::Object.new get_introspection_data('Gtk', 'Entry')
55
55
  sig = builder.find_signal 'changed'
56
56
  assert_equal 'changed', sig.name
57
57
  end
@@ -59,7 +59,7 @@ class TypeBuilderTest < MiniTest::Spec
59
59
 
60
60
  context "for GObject::TypeCValue (a union)" do
61
61
  setup do
62
- @cbuilder = GirFFI::Builder::Type::Union.new get_function_introspection_data('GObject', 'TypeCValue')
62
+ @cbuilder = GirFFI::Builder::Type::Union.new get_introspection_data('GObject', 'TypeCValue')
63
63
  end
64
64
 
65
65
  should "returns false looking for a method that doesn't exist" do
@@ -1,21 +1,19 @@
1
1
  require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- require 'gir_ffi/builder/dynamic_type'
4
-
5
- describe "GirFFI::Builder::DynamicType" do
3
+ describe GirFFI::Builder::Type::Unintrospectable do
6
4
  describe "building the GLocalFile type" do
7
5
  before do
8
6
  # Ensure existence of GLocalFile type
9
7
  GirFFI.setup :Gio
10
8
  unless Gio::Lib.respond_to? :g_file_new_for_path
11
- Gio.gir_ffi_builder.setup_function "file_new_for_path"
9
+ Gio._setup_method "file_new_for_path"
12
10
  end
13
- ptr = GirFFI::ArgHelper.utf8_to_inptr '/'
11
+ ptr = GirFFI::InPointer.from :utf8, '/'
14
12
  Gio::Lib.g_file_new_for_path(ptr)
15
13
 
16
14
  @gtype = GObject.type_from_name 'GLocalFile'
17
- bldr = GirFFI::Builder::DynamicType.new(@gtype)
18
- @klass = bldr.build_class
15
+ @bldr = GirFFI::Builder::Type::Unintrospectable.new(@gtype)
16
+ @klass = @bldr.build_class
19
17
  end
20
18
 
21
19
  it "builds a class" do
@@ -31,10 +29,16 @@ describe "GirFFI::Builder::DynamicType" do
31
29
  end
32
30
 
33
31
  it "returns the same class when built again" do
34
- other_bldr = GirFFI::Builder::DynamicType.new(@gtype)
32
+ other_bldr = GirFFI::Builder::Type::Unintrospectable.new(@gtype)
35
33
  other_klass = other_bldr.build_class
36
34
 
37
35
  assert_equal @klass, other_klass
38
36
  end
37
+
38
+ describe "its #find_signal method" do
39
+ it "works for a signal that doesn't exist" do
40
+ assert_nil @bldr.find_signal "foo"
41
+ end
42
+ end
39
43
  end
40
44
  end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder do
4
+ describe ".itypeinfo_to_callback_ffitype" do
5
+ describe "for an :interface argument" do
6
+ setup do
7
+ @iface = Object.new
8
+ stub(@info = Object.new).interface { @iface }
9
+ stub(@info).tag { :interface }
10
+ stub(@info).pointer? { false }
11
+ end
12
+
13
+ it "correctly maps a :union argument to :pointer" do
14
+ stub(@iface).info_type { :union }
15
+
16
+ result = GirFFI::Builder.itypeinfo_to_callback_ffitype @info
17
+
18
+ assert_equal :pointer, result
19
+ end
20
+
21
+ it "correctly maps a :flags argument to :int32" do
22
+ stub(@iface).info_type { :flags }
23
+
24
+ result = GirFFI::Builder.itypeinfo_to_callback_ffitype @info
25
+
26
+ assert_equal :int32, result
27
+ end
28
+ end
29
+ end
30
+ end
31
+
@@ -0,0 +1,19 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::CallbackHelper do
4
+ describe ".map_single_callback_arg" do
5
+ it "correctly maps a :struct type" do
6
+ GirFFI.setup :GObject
7
+
8
+ cl = GObject::Closure.new_simple GObject::Closure::Struct.size, nil
9
+
10
+ cinfo = GirFFI::IRepository.default.find_by_name 'GObject', 'ClosureMarshal'
11
+ ainfo = cinfo.args[0]
12
+
13
+ r = GirFFI::CallbackHelper.map_single_callback_arg cl.to_ptr, ainfo
14
+
15
+ assert_instance_of GObject::Closure, r
16
+ assert_equal r.to_ptr, cl.to_ptr
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Constant do
4
+ end
5
+
@@ -0,0 +1,17 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::IConstantInfo do
4
+ describe "for GLib::ALLOCATOR_LIST, a constant of type :gint32" do
5
+ before do
6
+ @info = get_introspection_data 'GLib', 'ALLOCATOR_LIST'
7
+ end
8
+
9
+ it "returns :gint32 as its type" do
10
+ assert_equal :gint32, @info.constant_type.tag
11
+ end
12
+
13
+ it "returns a value union with member :v_int32 with value 1" do
14
+ assert_equal 1, @info.value[:v_int32]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,118 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'gir_ffi/in_out_pointer'
4
+
5
+ describe GirFFI::InOutPointer do
6
+ describe "an instance created with .from" do
7
+ setup do
8
+ @result = GirFFI::InOutPointer.from :gint32, 23
9
+ end
10
+
11
+ it "holds a pointer to the given value" do
12
+ assert_equal 23, @result.read_int32
13
+ end
14
+
15
+ it "is an instance of GirFFI::InOutPointer" do
16
+ assert_instance_of GirFFI::InOutPointer, @result
17
+ end
18
+ end
19
+
20
+ describe ".from" do
21
+ it "handles :gboolean" do
22
+ GirFFI::InOutPointer.from :gboolean, false
23
+ end
24
+
25
+ it "handles :utf8" do
26
+ GirFFI::InOutPointer.from :utf8, "Hello"
27
+ end
28
+ end
29
+
30
+ describe "an instance created with .from_array" do
31
+ setup do
32
+ @result = GirFFI::InOutPointer.from_array :gint32, [24, 13]
33
+ end
34
+
35
+ it "holds a pointer to a non-null pointer" do
36
+ ptr = @result.read_pointer
37
+ refute ptr.null?
38
+ end
39
+
40
+ it "holds a pointer to a pointer to the correct input values" do
41
+ ptr = @result.read_pointer
42
+ assert_equal [24, 13], [ptr.get_int(0), ptr.get_int(4)]
43
+ end
44
+
45
+ it "is an instance of GirFFI::InPointer" do
46
+ assert_instance_of GirFFI::InOutPointer, @result
47
+ end
48
+ end
49
+
50
+ describe ".from_array" do
51
+ it "returns nil when passed nil" do
52
+ result = GirFFI::InOutPointer.from_array :gint32, nil
53
+ assert_nil result
54
+ end
55
+ end
56
+
57
+ describe "an instance created with .from_array :utf8" do
58
+ before do
59
+ @result = GirFFI::InOutPointer.from_array :utf8, ["foo", "bar", "baz"]
60
+ end
61
+
62
+ it "returns a pointer to an array of pointers to strings" do
63
+ ptr = @result.read_pointer
64
+ ary = ptr.read_array_of_pointer(3)
65
+ assert_equal ["foo", "bar", "baz"], ary.map {|p| p.read_string}
66
+ end
67
+ end
68
+
69
+ describe "in instance created with .for" do
70
+ setup do
71
+ @result = GirFFI::InOutPointer.for :gint32
72
+ end
73
+
74
+ it "holds a pointer to a null value" do
75
+ assert_equal 0, @result.read_int32
76
+ end
77
+
78
+ it "is an instance of GirFFI::InOutPointer" do
79
+ assert_instance_of GirFFI::InOutPointer, @result
80
+ end
81
+ end
82
+
83
+ describe ".for" do
84
+ it "handles :gboolean" do
85
+ GirFFI::InOutPointer.for :gboolean
86
+ end
87
+
88
+ it "handles :utf8" do
89
+ GirFFI::InOutPointer.for :utf8
90
+ end
91
+ end
92
+
93
+ describe "#to_value" do
94
+ it "returns the held value" do
95
+ ptr = GirFFI::InOutPointer.from :gint32, 123
96
+ assert_equal 123, ptr.to_value
97
+ end
98
+
99
+ describe "for :gboolean values" do
100
+ it "works when the value is false" do
101
+ ptr = GirFFI::InOutPointer.from :gboolean, false
102
+ assert_equal false, ptr.to_value
103
+ end
104
+
105
+ it "works when the value is true" do
106
+ ptr = GirFFI::InOutPointer.from :gboolean, true
107
+ assert_equal true, ptr.to_value
108
+ end
109
+ end
110
+
111
+ describe "for :utf8 values" do
112
+ it "returns the held value" do
113
+ ptr = GirFFI::InOutPointer.from :utf8, "Some value"
114
+ assert_equal "Some value", ptr.to_value
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,69 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'gir_ffi/in_pointer'
4
+
5
+ describe GirFFI::InPointer do
6
+ describe ".from_array" do
7
+ it "returns nil when passed nil" do
8
+ result = GirFFI::InPointer.from_array :gint32, nil
9
+ assert_nil result
10
+ end
11
+
12
+ it "handles type tag :gtype" do
13
+ GirFFI::InPointer.from_array :gtype, [2]
14
+ end
15
+
16
+ it "handles type tag :interface_pointer" do
17
+ GirFFI::InPointer.from_array :interface_pointer, []
18
+ end
19
+ end
20
+
21
+ describe "an instance created with .from_array" do
22
+ setup do
23
+ @result = GirFFI::InPointer.from_array :gint32, [24, 13]
24
+ end
25
+
26
+ it "holds a pointer to the correct input values" do
27
+ assert_equal 24, @result.get_int(0)
28
+ assert_equal 13, @result.get_int(4)
29
+ end
30
+
31
+ it "is an instance of GirFFI::InPointer" do
32
+ assert_instance_of GirFFI::InPointer, @result
33
+ end
34
+ end
35
+
36
+ describe "an instance created with .from_array :utf8" do
37
+ before do
38
+ @result = GirFFI::InPointer.from_array :utf8, ["foo", "bar", "baz"]
39
+ end
40
+
41
+ it "returns an array of pointers to strings" do
42
+ ary = @result.read_array_of_pointer(3)
43
+ assert_equal ["foo", "bar", "baz"], ary.map {|p| p.read_string}
44
+ end
45
+ end
46
+
47
+ describe "an instance created with .from :utf8" do
48
+ before do
49
+ @result = GirFFI::InPointer.from :utf8, "foo"
50
+ end
51
+
52
+ it "returns an pointers to the given string" do
53
+ ary = @result.read_array_of_pointer(3)
54
+ assert_equal "foo", @result.read_string
55
+ end
56
+
57
+ it "is an instance of GirFFI::InPointer" do
58
+ assert_instance_of GirFFI::InPointer, @result
59
+ end
60
+ end
61
+
62
+ describe ".from" do
63
+ it "returns nil when passed nil" do
64
+ result = GirFFI::InPointer.from :foo, nil
65
+ assert_nil result
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Object do
4
+ before do
5
+ GirFFI.setup :Regress
6
+ end
7
+
8
+ describe "#setup_method" do
9
+ it "sets up singleton methods defined in a class's parent" do
10
+ info = get_introspection_data 'Regress', 'TestSubObj'
11
+ assert_nil info.find_method "static_method"
12
+ parent = info.parent
13
+ assert_not_nil parent.find_method "static_method"
14
+
15
+ b = GirFFI::Builder::Type::Object.new(info)
16
+ b.setup_method "static_method"
17
+ pass
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gir_ffi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 10
10
- version: 0.0.10
9
+ - 11
10
+ version: 0.0.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matijs van Zuijlen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-18 00:00:00 Z
18
+ date: 2011-08-22 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: ffi
@@ -86,9 +86,16 @@ files:
86
86
  - lib/gir_ffi/g_error.rb
87
87
  - lib/gir_ffi/i_object_info.rb
88
88
  - lib/gir_ffi/builder.rb
89
- - lib/gir_ffi/builder/dynamic_type.rb
89
+ - lib/gir_ffi/in_out_pointer.rb
90
+ - lib/gir_ffi/builder/argument/list_base.rb
91
+ - lib/gir_ffi/builder/argument/base.rb
92
+ - lib/gir_ffi/builder/argument/in_base.rb
93
+ - lib/gir_ffi/builder/argument/hash_table_base.rb
94
+ - lib/gir_ffi/builder/argument/out_base.rb
95
+ - lib/gir_ffi/builder/argument/in_out_base.rb
90
96
  - lib/gir_ffi/builder/module.rb
91
97
  - lib/gir_ffi/builder/function.rb
98
+ - lib/gir_ffi/builder/type/with_methods.rb
92
99
  - lib/gir_ffi/builder/type/base.rb
93
100
  - lib/gir_ffi/builder/type/constant.rb
94
101
  - lib/gir_ffi/builder/type/interface.rb
@@ -97,12 +104,15 @@ files:
97
104
  - lib/gir_ffi/builder/type/enum.rb
98
105
  - lib/gir_ffi/builder/type/registered_type.rb
99
106
  - lib/gir_ffi/builder/type/callback.rb
107
+ - lib/gir_ffi/builder/type/unintrospectable.rb
108
+ - lib/gir_ffi/builder/type/with_layout.rb
100
109
  - lib/gir_ffi/builder/type/union.rb
101
110
  - lib/gir_ffi/builder/type/object.rb
102
111
  - lib/gir_ffi/builder/type.rb
103
112
  - lib/gir_ffi/builder/argument.rb
104
113
  - lib/gir_ffi/i_enum_info.rb
105
114
  - lib/gir_ffi/i_value_info.rb
115
+ - lib/gir_ffi/interface_base.rb
106
116
  - lib/gir_ffi/module_base.rb
107
117
  - lib/gir_ffi/i_signal_info.rb
108
118
  - lib/gir_ffi/i_callback_info.rb
@@ -113,7 +123,9 @@ files:
113
123
  - lib/gir_ffi/i_vfunc_info.rb
114
124
  - lib/gir_ffi/i_constant_info.rb
115
125
  - lib/gir_ffi/class_base.rb
126
+ - lib/gir_ffi/callback_helper.rb
116
127
  - lib/gir_ffi/i_struct_info.rb
128
+ - lib/gir_ffi/in_pointer.rb
117
129
  - lib/gir_ffi/i_callable_info.rb
118
130
  - lib/gir_ffi/i_function_info.rb
119
131
  - lib/gir_ffi/i_error_domain_info.rb
@@ -130,7 +142,7 @@ files:
130
142
  - lib/gir_ffi/i_arg_info.rb
131
143
  - lib/gir_ffi/i_type_info.rb
132
144
  - test/i_repository_test.rb
133
- - test/generated_regress_test.rb
145
+ - test/unintrospectable_type_builder_test.rb
134
146
  - test/function_definition_builder_test.rb
135
147
  - test/g_object_test.rb
136
148
  - test/arg_helper_test.rb
@@ -138,7 +150,6 @@ files:
138
150
  - test/lib/autogen.sh
139
151
  - test/lib/configure.ac
140
152
  - test/lib/m4/jhflags.m4
141
- - test/dynamic_type_builder_test.rb
142
153
  - test/class_base_test.rb
143
154
  - test/test_helper.rb
144
155
  - test/girffi_test.rb
@@ -146,18 +157,28 @@ files:
146
157
  - test/module_builder_test.rb
147
158
  - test/i_object_info_test.rb
148
159
  - test/g_object_overrides_test.rb
149
- - test/generated_gtk_test.rb
160
+ - test/unit/constant_builder_test.rb
161
+ - test/unit/in_out_pointer_test.rb
162
+ - test/unit/callback_helper_test.rb
163
+ - test/unit/builder_test.rb
164
+ - test/unit/in_pointer_test.rb
165
+ - test/unit/object_type_builder_test.rb
166
+ - test/unit/i_constant_info_test.rb
150
167
  - test/type_builder_test.rb
151
168
  - test/builder_test.rb
152
169
  - test/glib_overrides_test.rb
153
170
  - test/gtk_overrides_test.rb
154
- - test/object_type_builder_test.rb
155
- - test/generated_gobject_test.rb
156
- - test/generated_gio_test.rb
157
- - test/generated_gimarshallingtests_test.rb
171
+ - test/integration/generated_regress_test.rb
172
+ - test/integration/generated_gtk_test.rb
173
+ - test/integration/generated_gobject_test.rb
174
+ - test/integration/generated_gio_test.rb
175
+ - test/integration/generated_gimarshallingtests_test.rb
176
+ - tasks/yardoc.rake
177
+ - tasks/rdoc.rake
158
178
  - tasks/test.rake
159
179
  - tasks/setup.rb
160
180
  - tasks/notes.rake
181
+ - examples/05_notification.rb
161
182
  - examples/demo_ffi_safe_inherited_layout.rb
162
183
  - examples/04_webkit.rb
163
184
  - examples/demo_ffi_nested_struct.rb
@@ -209,26 +230,33 @@ test_files:
209
230
  - test/arg_helper_test.rb
210
231
  - test/builder_test.rb
211
232
  - test/class_base_test.rb
212
- - test/dynamic_type_builder_test.rb
213
233
  - test/function_definition_builder_test.rb
214
234
  - test/g_object_overrides_test.rb
215
235
  - test/g_object_test.rb
216
- - test/generated_gimarshallingtests_test.rb
217
- - test/generated_gio_test.rb
218
- - test/generated_gobject_test.rb
219
- - test/generated_gtk_test.rb
220
- - test/generated_regress_test.rb
221
236
  - test/girffi_test.rb
222
237
  - test/glib_overrides_test.rb
223
238
  - test/gtk_overrides_test.rb
224
239
  - test/i_object_info_test.rb
225
240
  - test/i_repository_test.rb
241
+ - test/integration/generated_gimarshallingtests_test.rb
242
+ - test/integration/generated_gio_test.rb
243
+ - test/integration/generated_gobject_test.rb
244
+ - test/integration/generated_gtk_test.rb
245
+ - test/integration/generated_regress_test.rb
226
246
  - test/interface_type_builder_test.rb
227
247
  - test/lib/Makefile.am
228
248
  - test/lib/autogen.sh
229
249
  - test/lib/configure.ac
230
250
  - test/lib/m4/jhflags.m4
231
251
  - test/module_builder_test.rb
232
- - test/object_type_builder_test.rb
233
252
  - test/test_helper.rb
234
253
  - test/type_builder_test.rb
254
+ - test/unintrospectable_type_builder_test.rb
255
+ - test/unit/builder_test.rb
256
+ - test/unit/callback_helper_test.rb
257
+ - test/unit/constant_builder_test.rb
258
+ - test/unit/i_constant_info_test.rb
259
+ - test/unit/in_out_pointer_test.rb
260
+ - test/unit/in_pointer_test.rb
261
+ - test/unit/object_type_builder_test.rb
262
+ has_rdoc:
@@ -1,41 +0,0 @@
1
- module GirFFI
2
- module Builder
3
- class DynamicType
4
- CACHE = {}
5
-
6
- def initialize gtype
7
- @gtype = gtype
8
- end
9
-
10
- def build_class
11
- CACHE[@gtype] ||= Class.new(parent).tap do |klass|
12
- interfaces.each do |iface|
13
- klass.class_eval do
14
- include iface
15
- end
16
- end
17
- end
18
- end
19
-
20
- private
21
-
22
- def parent
23
- parent_type = ::GObject.type_parent @gtype
24
- info = gir.find_by_gtype(parent_type)
25
- GirFFI::Builder.build_class info
26
- end
27
-
28
- def interfaces
29
- iface_types = ::GObject.type_interfaces @gtype
30
- iface_types.map do |gtype|
31
- info = gir.find_by_gtype gtype
32
- GirFFI::Builder.build_class info
33
- end
34
- end
35
-
36
- def gir
37
- @gir ||= GirFFI::IRepository.default
38
- end
39
- end
40
- end
41
- end
@@ -1,39 +0,0 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
-
3
- # Tests generated methods and functions in the Gio namespace.
4
- class GeneratedGioTest < MiniTest::Spec
5
- context "In the generated Gio module" do
6
- setup do
7
- GirFFI.setup :Gio
8
- end
9
-
10
- describe "#file_new_from_path, a method returning an interface," do
11
- it "does not throw an error when generated" do
12
- assert_nothing_raised {
13
- Gio.file_new_for_path('/')
14
- }
15
- end
16
-
17
- it "returns an object of a more specific class" do
18
- file = Gio.file_new_for_path('/')
19
- refute_instance_of Gio::File, file
20
- assert_includes file.class.ancestors, Gio::File
21
- end
22
- end
23
-
24
- context "the FileInfo class" do
25
- context "an instance" do
26
- setup do
27
- file = Gio.file_new_for_path('/')
28
- @fileinfo = file.query_info "*", :none, nil
29
- end
30
-
31
- should "hava a working #get_attribute_type method" do
32
- type = @fileinfo.get_attribute_type "standard::display-name"
33
- assert_equal :string, type
34
- end
35
- end
36
- end
37
- end
38
- end
39
-
@@ -1,15 +0,0 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
-
3
- describe "The generated GObject module" do
4
- before do
5
- GirFFI.setup :GObject
6
- end
7
-
8
- describe "#type_interfaces" do
9
- it "works, showing that returning an array of GType works" do
10
- tp = GObject.type_from_name 'GTypeModule'
11
- ifcs = GObject.type_interfaces tp
12
- assert_equal 1, ifcs.size
13
- end
14
- end
15
- end