gir_ffi 0.7.7 → 0.7.8

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +9 -0
  3. data/lib/ffi-glib/array.rb +1 -1
  4. data/lib/ffi-glib/error.rb +1 -2
  5. data/lib/ffi-glib/hash_table.rb +2 -2
  6. data/lib/ffi-glib/variant.rb +1 -1
  7. data/lib/ffi-gobject/base.rb +23 -23
  8. data/lib/ffi-gobject/object.rb +7 -3
  9. data/lib/ffi-gobject/value.rb +6 -1
  10. data/lib/ffi-gobject.rb +9 -6
  11. data/lib/ffi-gobject_introspection/i_base_info.rb +3 -3
  12. data/lib/ffi-gobject_introspection/i_constant_info.rb +1 -1
  13. data/lib/ffi-gobject_introspection/i_repository.rb +4 -1
  14. data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
  15. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +7 -0
  16. data/lib/ffi-gobject_introspection/lib.rb +1 -1
  17. data/lib/gir_ffi/builders/argument_builder.rb +1 -1
  18. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +37 -29
  19. data/lib/gir_ffi/builders/callback_argument_builder.rb +57 -27
  20. data/lib/gir_ffi/builders/closure_convertor.rb +12 -8
  21. data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +12 -8
  22. data/lib/gir_ffi/builders/constructor_result_convertor.rb +11 -7
  23. data/lib/gir_ffi/builders/field_builder.rb +1 -1
  24. data/lib/gir_ffi/builders/function_builder.rb +1 -1
  25. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  26. data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
  27. data/lib/gir_ffi/builders/method_template.rb +1 -1
  28. data/lib/gir_ffi/builders/null_convertor.rb +11 -7
  29. data/lib/gir_ffi/builders/property_builder.rb +1 -1
  30. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +17 -13
  31. data/lib/gir_ffi/error_argument_info.rb +1 -1
  32. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  33. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +12 -0
  34. data/lib/gir_ffi/info_ext/safe_constant_name.rb +2 -2
  35. data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -1
  36. data/lib/gir_ffi/info_ext.rb +1 -0
  37. data/lib/gir_ffi/module_base.rb +1 -1
  38. data/lib/gir_ffi/receiver_argument_info.rb +15 -12
  39. data/lib/gir_ffi/user_data_argument_info.rb +17 -15
  40. data/lib/gir_ffi/user_data_type_info.rb +14 -12
  41. data/lib/gir_ffi/version.rb +1 -1
  42. data/lib/gir_ffi-base/gobject/lib.rb +1 -1
  43. data/test/base_test_helper.rb +15 -15
  44. data/test/ffi-glib/array_test.rb +38 -38
  45. data/test/ffi-glib/byte_array_test.rb +6 -7
  46. data/test/ffi-glib/bytes_test.rb +9 -9
  47. data/test/ffi-glib/hash_table_test.rb +26 -23
  48. data/test/ffi-glib/iconv_test.rb +5 -5
  49. data/test/ffi-glib/list_test.rb +16 -16
  50. data/test/ffi-glib/main_loop_test.rb +6 -6
  51. data/test/ffi-glib/ptr_array_test.rb +45 -45
  52. data/test/ffi-glib/ruby_closure_test.rb +6 -6
  53. data/test/ffi-glib/s_list_test.rb +15 -15
  54. data/test/ffi-glib/strv_test.rb +21 -21
  55. data/test/ffi-glib/variant_test.rb +4 -4
  56. data/test/ffi-gobject/gobject_test.rb +35 -35
  57. data/test/ffi-gobject/object_class_test.rb +1 -1
  58. data/test/ffi-gobject/object_test.rb +29 -6
  59. data/test/ffi-gobject/value_test.rb +66 -52
  60. data/test/ffi-gobject_introspection/i_base_info_test.rb +10 -11
  61. data/test/ffi-gobject_introspection/i_constant_info_test.rb +6 -6
  62. data/test/ffi-gobject_introspection/i_enum_info_test.rb +4 -5
  63. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -2
  64. data/test/ffi-gobject_introspection/i_object_info_test.rb +5 -5
  65. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +9 -8
  66. data/test/ffi-gobject_introspection/i_repository_test.rb +16 -16
  67. data/test/ffi-gobject_introspection/i_type_info_test.rb +16 -2
  68. data/test/ffi-gobject_introspection/lib_test.rb +2 -2
  69. data/test/ffi-gobject_test.rb +50 -40
  70. data/test/gir_ffi/arg_helper_test.rb +5 -5
  71. data/test/gir_ffi/builder_test.rb +41 -41
  72. data/test/gir_ffi/builders/argument_builder_test.rb +240 -207
  73. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -1
  74. data/test/gir_ffi/builders/callback_argument_builder_test.rb +81 -15
  75. data/test/gir_ffi/builders/callback_builder_test.rb +39 -14
  76. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +41 -33
  77. data/test/gir_ffi/builders/enum_builder_test.rb +3 -3
  78. data/test/gir_ffi/builders/field_builder_test.rb +17 -17
  79. data/test/gir_ffi/builders/function_builder_test.rb +16 -16
  80. data/test/gir_ffi/builders/interface_builder_test.rb +9 -7
  81. data/test/gir_ffi/builders/module_builder_test.rb +5 -6
  82. data/test/gir_ffi/builders/object_builder_test.rb +24 -19
  83. data/test/gir_ffi/builders/property_builder_test.rb +25 -23
  84. data/test/gir_ffi/builders/registered_type_builder_test.rb +11 -11
  85. data/test/gir_ffi/builders/return_value_builder_test.rb +237 -197
  86. data/test/gir_ffi/builders/signal_closure_builder_test.rb +29 -22
  87. data/test/gir_ffi/builders/struct_builder_test.rb +10 -10
  88. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +8 -8
  89. data/test/gir_ffi/builders/union_builder_test.rb +5 -6
  90. data/test/gir_ffi/builders/user_defined_builder_test.rb +42 -33
  91. data/test/gir_ffi/builders/vfunc_builder_test.rb +37 -30
  92. data/test/gir_ffi/callback_base_test.rb +4 -5
  93. data/test/gir_ffi/class_base_test.rb +35 -28
  94. data/test/gir_ffi/error_type_info_test.rb +14 -14
  95. data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
  96. data/test/gir_ffi/g_type_test.rb +6 -6
  97. data/test/gir_ffi/in_out_pointer_test.rb +27 -27
  98. data/test/gir_ffi/in_pointer_test.rb +54 -50
  99. data/test/gir_ffi/info_ext/i_callable_info_test.rb +8 -7
  100. data/test/gir_ffi/info_ext/i_callback_info_test.rb +7 -7
  101. data/test/gir_ffi/info_ext/i_field_info_test.rb +10 -8
  102. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -15
  103. data/test/gir_ffi/info_ext/i_signal_info_test.rb +10 -8
  104. data/test/gir_ffi/info_ext/i_type_info_test.rb +158 -155
  105. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +17 -0
  106. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +12 -10
  107. data/test/gir_ffi/info_ext/safe_function_name_test.rb +12 -10
  108. data/test/gir_ffi/interface_base_test.rb +6 -6
  109. data/test/gir_ffi/method_stubber_test.rb +16 -13
  110. data/test/gir_ffi/object_base_test.rb +6 -6
  111. data/test/gir_ffi/sized_array_test.rb +23 -23
  112. data/test/gir_ffi/type_map_test.rb +3 -3
  113. data/test/gir_ffi/unintrospectable_type_info_test.rb +18 -18
  114. data/test/gir_ffi/user_defined_property_info_test.rb +4 -4
  115. data/test/gir_ffi/user_defined_type_info_test.rb +16 -16
  116. data/test/gir_ffi/variable_name_generator_test.rb +6 -6
  117. data/test/gir_ffi/version_test.rb +1 -1
  118. data/test/gir_ffi/zero_terminated_test.rb +16 -17
  119. data/test/gir_ffi-base/glib/boolean_test.rb +13 -13
  120. data/test/gir_ffi-base/glib/strv_test.rb +11 -11
  121. data/test/gir_ffi_test.rb +18 -18
  122. data/test/gir_ffi_test_helper.rb +13 -18
  123. data/test/integration/derived_classes_test.rb +8 -8
  124. data/test/integration/generated_gimarshallingtests_test.rb +794 -792
  125. data/test/integration/generated_gio_test.rb +25 -26
  126. data/test/integration/generated_glib_test.rb +8 -2
  127. data/test/integration/generated_gobject_test.rb +16 -9
  128. data/test/integration/generated_pango_ft2_test.rb +1 -2
  129. data/test/integration/generated_pango_test.rb +2 -2
  130. data/test/integration/generated_regress_test.rb +785 -705
  131. data/test/integration/generated_secret_test.rb +5 -5
  132. data/test/integration/method_lookup_test.rb +5 -5
  133. data/test/introspection_test_helper.rb +3 -1
  134. data/test/minitest/stats_plugin.rb +3 -3
  135. metadata +6 -3
@@ -1,10 +1,14 @@
1
1
  require 'gir_ffi_test_helper'
2
2
 
3
3
  describe GirFFI::Builders::ObjectBuilder do
4
- let(:obj_builder) { GirFFI::Builders::ObjectBuilder.new(
5
- get_introspection_data('Regress', 'TestObj')) }
6
- let(:sub_obj_builder) { GirFFI::Builders::ObjectBuilder.new(
7
- get_introspection_data('Regress', 'TestSubObj')) }
4
+ let(:obj_builder) {
5
+ GirFFI::Builders::ObjectBuilder.new(
6
+ get_introspection_data('Regress', 'TestObj'))
7
+ }
8
+ let(:sub_obj_builder) {
9
+ GirFFI::Builders::ObjectBuilder.new(
10
+ get_introspection_data('Regress', 'TestSubObj'))
11
+ }
8
12
 
9
13
  describe '#find_signal' do
10
14
  it 'finds the signal "test" for TestObj' do
@@ -34,37 +38,38 @@ describe GirFFI::Builders::ObjectBuilder do
34
38
  end
35
39
  end
36
40
 
37
- describe "#find_property" do
38
- it "finds a property specified on the class itself" do
39
- prop = obj_builder.find_property("int")
40
- prop.name.must_equal "int"
41
+ describe '#find_property' do
42
+ it 'finds a property specified on the class itself' do
43
+ prop = obj_builder.find_property('int')
44
+ prop.name.must_equal 'int'
41
45
  end
42
46
 
43
- it "finds a property specified on the parent class" do
44
- prop = sub_obj_builder.find_property("int")
45
- prop.name.must_equal "int"
47
+ it 'finds a property specified on the parent class' do
48
+ prop = sub_obj_builder.find_property('int')
49
+ prop.name.must_equal 'int'
46
50
  end
47
51
 
48
- it "raises an error if the property is not found" do
52
+ it 'raises an error if the property is not found' do
49
53
  proc {
50
- sub_obj_builder.find_property("this-property-does-not-exist")
51
- }.must_raise RuntimeError
54
+ sub_obj_builder.find_property('this-property-does-not-exist')
55
+ }.must_raise RuntimeError
52
56
  end
53
57
  end
54
58
 
55
- describe "#function_definition" do
59
+ describe '#function_definition' do
56
60
  let(:method_info) {
57
- get_method_introspection_data 'Regress', 'TestObj', 'instance_method' }
61
+ get_method_introspection_data 'Regress', 'TestObj', 'instance_method'
62
+ }
58
63
 
59
- it "delegates definition to FunctionBuilder" do
64
+ it 'delegates definition to FunctionBuilder' do
60
65
  code = obj_builder.send :function_definition, method_info
61
66
  expected = GirFFI::Builders::FunctionBuilder.new(method_info).generate
62
67
  code.must_equal expected
63
68
  end
64
69
  end
65
70
 
66
- describe "#object_class_struct" do
67
- it "returns the class struct type" do
71
+ describe '#object_class_struct' do
72
+ it 'returns the class struct type' do
68
73
  obj_builder.object_class_struct.must_equal Regress::TestObjClass
69
74
  end
70
75
  end
@@ -3,9 +3,9 @@ require 'gir_ffi_test_helper'
3
3
  describe GirFFI::Builders::PropertyBuilder do
4
4
  let(:builder) { GirFFI::Builders::PropertyBuilder.new property_info }
5
5
 
6
- describe "for a property of type :glist" do
7
- let(:property_info) { get_property_introspection_data("Regress", "TestObj", "list") }
8
- it "generates the correct getter definition" do
6
+ describe 'for a property of type :glist' do
7
+ let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'list') }
8
+ it 'generates the correct getter definition' do
9
9
  expected = <<-CODE.reset_indentation
10
10
  def list
11
11
  _v1 = get_property("list").get_value_plain
@@ -17,7 +17,7 @@ describe GirFFI::Builders::PropertyBuilder do
17
17
  builder.getter_def.must_equal expected
18
18
  end
19
19
 
20
- it "generates the correct setter definition" do
20
+ it 'generates the correct setter definition' do
21
21
  expected = <<-CODE.reset_indentation
22
22
  def list= value
23
23
  _v1 = GLib::List.from(:utf8, value)
@@ -29,9 +29,9 @@ describe GirFFI::Builders::PropertyBuilder do
29
29
  end
30
30
  end
31
31
 
32
- describe "for a property of type :ghash" do
33
- let(:property_info) { get_property_introspection_data("Regress", "TestObj", "hash-table") }
34
- it "generates the correct getter definition" do
32
+ describe 'for a property of type :ghash' do
33
+ let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'hash-table') }
34
+ it 'generates the correct getter definition' do
35
35
  expected = <<-CODE.reset_indentation
36
36
  def hash_table
37
37
  _v1 = get_property("hash-table").get_value_plain
@@ -43,7 +43,7 @@ describe GirFFI::Builders::PropertyBuilder do
43
43
  builder.getter_def.must_equal expected
44
44
  end
45
45
 
46
- it "generates the correct setter definition" do
46
+ it 'generates the correct setter definition' do
47
47
  expected = <<-CODE.reset_indentation
48
48
  def hash_table= value
49
49
  _v1 = GLib::HashTable.from([:utf8, :gint8], value)
@@ -55,15 +55,17 @@ describe GirFFI::Builders::PropertyBuilder do
55
55
  end
56
56
  end
57
57
 
58
- describe "for a property of type :strv" do
59
- let(:property_info) { get_property_introspection_data("GIMarshallingTests",
60
- "PropertiesObject",
61
- "some-strv") }
58
+ describe 'for a property of type :strv' do
59
+ let(:property_info) {
60
+ get_property_introspection_data('GIMarshallingTests',
61
+ 'PropertiesObject',
62
+ 'some-strv')
63
+ }
62
64
  before do
63
65
  skip unless property_info
64
66
  end
65
67
 
66
- it "generates the correct getter definition" do
68
+ it 'generates the correct getter definition' do
67
69
  expected = <<-CODE.reset_indentation
68
70
  def some_strv
69
71
  get_property("some-strv").get_value
@@ -73,7 +75,7 @@ describe GirFFI::Builders::PropertyBuilder do
73
75
  builder.getter_def.must_equal expected
74
76
  end
75
77
 
76
- it "generates the correct setter definition" do
78
+ it 'generates the correct setter definition' do
77
79
  expected = <<-CODE.reset_indentation
78
80
  def some_strv= value
79
81
  _v1 = GLib::Strv.from(value)
@@ -85,9 +87,9 @@ describe GirFFI::Builders::PropertyBuilder do
85
87
  end
86
88
  end
87
89
 
88
- describe "for a property of type :utf8" do
89
- let(:property_info) { get_property_introspection_data("Regress", "TestObj", "string") }
90
- it "generates the correct getter definition" do
90
+ describe 'for a property of type :utf8' do
91
+ let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'string') }
92
+ it 'generates the correct getter definition' do
91
93
  expected = <<-CODE.reset_indentation
92
94
  def string
93
95
  get_property("string").get_value
@@ -97,7 +99,7 @@ describe GirFFI::Builders::PropertyBuilder do
97
99
  builder.getter_def.must_equal expected
98
100
  end
99
101
 
100
- it "generates the correct setter definition" do
102
+ it 'generates the correct setter definition' do
101
103
  expected = <<-CODE.reset_indentation
102
104
  def string= value
103
105
  set_property("string", value)
@@ -108,17 +110,17 @@ describe GirFFI::Builders::PropertyBuilder do
108
110
  end
109
111
  end
110
112
 
111
- describe "#container_defines_getter_method?" do
112
- let(:property_info) { Object.new.tap {|o| o.extend GirFFI::InfoExt::IPropertyInfo } }
113
+ describe '#container_defines_getter_method?' do
114
+ let(:property_info) { Object.new.tap { |o| o.extend GirFFI::InfoExt::IPropertyInfo } }
113
115
  let(:container_info) { Object.new }
114
116
 
115
117
  before do
116
118
  stub(property_info).container { container_info }
117
- stub(property_info).name { "foo-bar" }
118
- stub(container_info).find_instance_method("foo_bar") { true }
119
+ stub(property_info).name { 'foo-bar' }
120
+ stub(container_info).find_instance_method('foo_bar') { true }
119
121
  end
120
122
 
121
- it "finds methods with underscores for properties with dashes" do
123
+ it 'finds methods with underscores for properties with dashes' do
122
124
  builder.container_defines_getter_method?.must_equal true
123
125
  end
124
126
  end
@@ -3,28 +3,28 @@ require 'gir_ffi_test_helper'
3
3
  GirFFI.setup :Regress
4
4
 
5
5
  describe GirFFI::Builders::RegisteredTypeBuilder do
6
- describe "#setup_instance_method" do
7
- it "restores a method that was removed" do
8
- Regress::TestObj.class_eval { remove_method "instance_method" }
6
+ describe '#setup_instance_method' do
7
+ it 'restores a method that was removed' do
8
+ Regress::TestObj.class_eval { remove_method 'instance_method' }
9
9
 
10
10
  builder = Regress::TestObj.gir_ffi_builder
11
11
 
12
- builder.setup_instance_method "instance_method"
12
+ builder.setup_instance_method 'instance_method'
13
13
 
14
14
  obj = Regress::TestObj.constructor
15
- obj.must_respond_to "instance_method"
15
+ obj.must_respond_to 'instance_method'
16
16
  end
17
17
 
18
- it "returns the name of the generated method" do
18
+ it 'returns the name of the generated method' do
19
19
  builder = Regress::TestObj.gir_ffi_builder
20
- result = builder.setup_instance_method "instance_method"
21
- result.must_equal "instance_method"
20
+ result = builder.setup_instance_method 'instance_method'
21
+ result.must_equal 'instance_method'
22
22
  end
23
23
 
24
- it "returns the name of the generated method if different from the info name" do
24
+ it 'returns the name of the generated method if different from the info name' do
25
25
  builder = GLib::IConv.gir_ffi_builder
26
- result = builder.setup_instance_method ""
27
- result.must_equal "_"
26
+ result = builder.setup_instance_method ''
27
+ result.must_equal '_'
28
28
  end
29
29
  end
30
30
  end