gir_ffi 0.15.3 → 0.15.4

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 (183) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +15 -0
  3. data/README.md +5 -6
  4. data/TODO.md +14 -35
  5. data/docs/Documentation.md +6 -0
  6. data/docs/Subclassing.md +38 -0
  7. data/lib/ffi-glib.rb +8 -3
  8. data/lib/ffi-glib/byte_array.rb +2 -1
  9. data/lib/ffi-glib/destroy_notify.rb +2 -2
  10. data/lib/ffi-glib/hash_table.rb +1 -2
  11. data/lib/ffi-glib/list.rb +11 -5
  12. data/lib/ffi-glib/list_methods.rb +12 -0
  13. data/lib/ffi-glib/s_list.rb +10 -4
  14. data/lib/ffi-gobject.rb +0 -3
  15. data/lib/ffi-gobject/object.rb +77 -73
  16. data/lib/ffi-gobject/object_class.rb +1 -1
  17. data/lib/ffi-gobject/value.rb +107 -108
  18. data/lib/ffi-gobject_introspection/i_base_info.rb +20 -19
  19. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  20. data/lib/gir_ffi/array_element_convertor.rb +1 -2
  21. data/lib/gir_ffi/boxed_base.rb +1 -5
  22. data/lib/gir_ffi/builder.rb +1 -1
  23. data/lib/gir_ffi/builder_helper.rb +7 -4
  24. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  25. data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
  26. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  27. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
  28. data/lib/gir_ffi/builders/callback_builder.rb +14 -12
  29. data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
  30. data/lib/gir_ffi/builders/class_struct_builder.rb +24 -0
  31. data/lib/gir_ffi/builders/enum_builder.rb +3 -3
  32. data/lib/gir_ffi/builders/interface_builder.rb +3 -1
  33. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  34. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
  35. data/lib/gir_ffi/builders/method_template.rb +4 -4
  36. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
  37. data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
  38. data/lib/gir_ffi/builders/object_builder.rb +16 -6
  39. data/lib/gir_ffi/builders/property_builder.rb +1 -2
  40. data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
  41. data/lib/gir_ffi/builders/struct_builder.rb +5 -5
  42. data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
  43. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  44. data/lib/gir_ffi/callback_base.rb +3 -3
  45. data/lib/gir_ffi/core.rb +17 -2
  46. data/lib/gir_ffi/glib_error.rb +1 -2
  47. data/lib/gir_ffi/in_pointer.rb +7 -0
  48. data/lib/gir_ffi/object_base.rb +27 -0
  49. data/lib/gir_ffi/return_value_info.rb +1 -2
  50. data/lib/gir_ffi/struct_base.rb +1 -9
  51. data/lib/gir_ffi/struct_like_base.rb +9 -5
  52. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  53. data/lib/gir_ffi/union_base.rb +1 -9
  54. data/lib/gir_ffi/user_defined_object_info.rb +3 -2
  55. data/lib/gir_ffi/version.rb +1 -1
  56. data/lib/gir_ffi/vfunc_implementation.rb +1 -0
  57. metadata +86 -136
  58. data/Gemfile +0 -14
  59. data/Rakefile +0 -9
  60. data/tasks/test.rake +0 -204
  61. data/test/base_test_helper.rb +0 -70
  62. data/test/ffi-glib/array_test.rb +0 -203
  63. data/test/ffi-glib/byte_array_test.rb +0 -28
  64. data/test/ffi-glib/bytes_test.rb +0 -61
  65. data/test/ffi-glib/closure_test.rb +0 -38
  66. data/test/ffi-glib/destroy_notify_test.rb +0 -18
  67. data/test/ffi-glib/hash_table_test.rb +0 -68
  68. data/test/ffi-glib/list_test.rb +0 -86
  69. data/test/ffi-glib/main_loop_test.rb +0 -53
  70. data/test/ffi-glib/ptr_array_test.rb +0 -112
  71. data/test/ffi-glib/ruby_closure_test.rb +0 -62
  72. data/test/ffi-glib/s_list_test.rb +0 -76
  73. data/test/ffi-glib/strv_test.rb +0 -60
  74. data/test/ffi-glib/variant_test.rb +0 -12
  75. data/test/ffi-gobject/gobject_test.rb +0 -76
  76. data/test/ffi-gobject/object_class_test.rb +0 -31
  77. data/test/ffi-gobject/object_test.rb +0 -123
  78. data/test/ffi-gobject/param_spec_test.rb +0 -32
  79. data/test/ffi-gobject/value_test.rb +0 -390
  80. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
  81. data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
  82. data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
  83. data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
  84. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
  85. data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
  86. data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
  87. data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
  88. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
  89. data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
  90. data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
  91. data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
  92. data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
  93. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
  94. data/test/ffi-gobject_introspection/lib_test.rb +0 -13
  95. data/test/ffi-gobject_introspection/strv_test.rb +0 -46
  96. data/test/ffi-gobject_test.rb +0 -153
  97. data/test/gir_ffi/allocation_helper_test.rb +0 -36
  98. data/test/gir_ffi/arg_helper_test.rb +0 -146
  99. data/test/gir_ffi/boolean_test.rb +0 -43
  100. data/test/gir_ffi/boxed_base_test.rb +0 -65
  101. data/test/gir_ffi/builder_test.rb +0 -168
  102. data/test/gir_ffi/builders/argument_builder_test.rb +0 -691
  103. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
  104. data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -130
  105. data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
  106. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -84
  107. data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
  108. data/test/gir_ffi/builders/constructor_builder_test.rb +0 -39
  109. data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
  110. data/test/gir_ffi/builders/field_builder_test.rb +0 -140
  111. data/test/gir_ffi/builders/function_builder_test.rb +0 -570
  112. data/test/gir_ffi/builders/initializer_builder_test.rb +0 -56
  113. data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
  114. data/test/gir_ffi/builders/module_builder_test.rb +0 -43
  115. data/test/gir_ffi/builders/object_builder_test.rb +0 -98
  116. data/test/gir_ffi/builders/property_builder_test.rb +0 -161
  117. data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
  118. data/test/gir_ffi/builders/return_value_builder_test.rb +0 -444
  119. data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -199
  120. data/test/gir_ffi/builders/struct_builder_test.rb +0 -96
  121. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
  122. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
  123. data/test/gir_ffi/builders/union_builder_test.rb +0 -28
  124. data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -528
  125. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -107
  126. data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -245
  127. data/test/gir_ffi/callback_base_test.rb +0 -22
  128. data/test/gir_ffi/class_base_test.rb +0 -171
  129. data/test/gir_ffi/core_test.rb +0 -99
  130. data/test/gir_ffi/enum_base_test.rb +0 -43
  131. data/test/gir_ffi/error_type_info_test.rb +0 -50
  132. data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -22
  133. data/test/gir_ffi/g_type_test.rb +0 -31
  134. data/test/gir_ffi/in_pointer_test.rb +0 -203
  135. data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
  136. data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -22
  137. data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
  138. data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
  139. data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
  140. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -712
  141. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
  142. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
  143. data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
  144. data/test/gir_ffi/interface_base_test.rb +0 -20
  145. data/test/gir_ffi/method_stubber_test.rb +0 -67
  146. data/test/gir_ffi/object_base_test.rb +0 -64
  147. data/test/gir_ffi/object_store_test.rb +0 -41
  148. data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
  149. data/test/gir_ffi/sized_array_test.rb +0 -206
  150. data/test/gir_ffi/struct_base_test.rb +0 -23
  151. data/test/gir_ffi/struct_like_base_test.rb +0 -167
  152. data/test/gir_ffi/type_map_test.rb +0 -17
  153. data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
  154. data/test/gir_ffi/union_base_test.rb +0 -23
  155. data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
  156. data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
  157. data/test/gir_ffi/variable_name_generator_test.rb +0 -18
  158. data/test/gir_ffi/version_test.rb +0 -9
  159. data/test/gir_ffi/zero_terminated_test.rb +0 -108
  160. data/test/gir_ffi_test_helper.rb +0 -84
  161. data/test/integration/callback_exceptions_test.rb +0 -59
  162. data/test/integration/derived_classes_test.rb +0 -54
  163. data/test/integration/generated_everything_test.rb +0 -453
  164. data/test/integration/generated_gimarshallingtests_test.rb +0 -3109
  165. data/test/integration/generated_gio_test.rb +0 -116
  166. data/test/integration/generated_glib_test.rb +0 -10
  167. data/test/integration/generated_gobject_test.rb +0 -124
  168. data/test/integration/generated_gst_test.rb +0 -38
  169. data/test/integration/generated_gtk_source_test.rb +0 -21
  170. data/test/integration/generated_gtop_test.rb +0 -22
  171. data/test/integration/generated_pango_ft2_test.rb +0 -17
  172. data/test/integration/generated_pango_test.rb +0 -24
  173. data/test/integration/generated_regress_test.rb +0 -4076
  174. data/test/integration/generated_secret_test.rb +0 -14
  175. data/test/integration/generated_utility_test.rb +0 -174
  176. data/test/integration/generated_warnlib_test.rb +0 -45
  177. data/test/integration/method_lookup_test.rb +0 -34
  178. data/test/introspection_test_helper.rb +0 -94
  179. data/test/lib/Makefile.am +0 -110
  180. data/test/lib/autogen.sh +0 -4
  181. data/test/lib/configure.ac +0 -34
  182. data/test/lib/m4/jhflags.m4 +0 -21
  183. data/test/minitest/stats_plugin.rb +0 -30
@@ -56,7 +56,7 @@ module GirFFI
56
56
 
57
57
  # TODO: Create custom class that includes the interfaces instead
58
58
  def class_struct
59
- parent.class_struct
59
+ nil
60
60
  end
61
61
  end
62
62
  end
@@ -4,14 +4,6 @@ require "gir_ffi/boxed_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base class for generated classes representing GLib unions.
7
- class UnionBase < ClassBase
8
- extend FFI::DataConverter
9
- include GirFFI::StructLikeBase
10
-
11
- def initialize
12
- @struct = self.class::Struct.new
13
- @struct.owned = true
14
- @struct.to_ptr.autorelease = false
15
- end
7
+ class UnionBase < StructLikeBase
16
8
  end
17
9
  end
@@ -13,6 +13,8 @@ module GirFFI
13
13
  @klass = klass
14
14
  @properties = []
15
15
  @vfunc_implementations = []
16
+
17
+ # FIXME: Limit access to only install_property and install_vfunc_implementation.
16
18
  yield self if block_given?
17
19
  end
18
20
 
@@ -25,7 +27,6 @@ module GirFFI
25
27
  end
26
28
 
27
29
  def install_vfunc_implementation(name, implementation = nil)
28
- implementation ||= ->(obj, *args) { obj.public_send name, *args }
29
30
  @vfunc_implementations << VFuncImplementation.new(name, implementation)
30
31
  end
31
32
 
@@ -51,7 +52,7 @@ module GirFFI
51
52
 
52
53
  # TODO: Create custom class that includes the interfaces instead
53
54
  def class_struct
54
- parent.class_struct
55
+ nil
55
56
  end
56
57
 
57
58
  def interfaces
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Current GirFFI version
4
4
  module GirFFI
5
- VERSION = "0.15.3"
5
+ VERSION = "0.15.4"
6
6
  end
@@ -6,6 +6,7 @@ module GirFFI
6
6
  attr_reader :name, :implementation
7
7
 
8
8
  def initialize(name, implementation)
9
+ implementation ||= ->(obj, *args) { obj.public_send name, *args }
9
10
  @name = name
10
11
  @implementation = implementation
11
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gir_ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.3
4
+ version: 0.15.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-14 00:00:00.000000000 Z
11
+ date: 2020-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '13.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake-manifest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.1.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rexml
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -108,25 +122,81 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: '3.5'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.1.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.1.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-minitest
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.10.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.10.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: rubocop-packaging
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.5.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.5.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop-performance
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 1.8.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.8.0
111
181
  - !ruby/object:Gem::Dependency
112
182
  name: simplecov
113
183
  requirement: !ruby/object:Gem::Requirement
114
184
  requirements:
115
185
  - - "~>"
116
186
  - !ruby/object:Gem::Version
117
- version: 0.18.0
187
+ version: 0.19.0
118
188
  type: :development
119
189
  prerelease: false
120
190
  version_requirements: !ruby/object:Gem::Requirement
121
191
  requirements:
122
192
  - - "~>"
123
193
  - !ruby/object:Gem::Version
124
- version: 0.18.0
125
- description: |2
126
- GirFFI creates bindings for GObject-based libraries at runtime based on introspection
127
- data provided by the GObject Introspection Repository (GIR) system. Bindings are created
128
- at runtime and use FFI to interface with the C libraries. In cases where the GIR does not
129
- provide enough or correct information to create sane bindings, overrides may be created.
194
+ version: 0.19.0
195
+ description: |
196
+ GirFFI creates bindings for GObject-based libraries at runtime based on introspection
197
+ data provided by the GObject Introspection Repository (GIR) system. Bindings are created
198
+ at runtime and use FFI to interface with the C libraries. In cases where the GIR does not
199
+ provide enough or correct information to create sane bindings, overrides may be created.
130
200
  email:
131
201
  - matijs@matijs.net
132
202
  executables: []
@@ -140,10 +210,10 @@ files:
140
210
  - COPYING.LIB
141
211
  - Changelog.md
142
212
  - DESIGN.md
143
- - Gemfile
144
213
  - README.md
145
- - Rakefile
146
214
  - TODO.md
215
+ - docs/Documentation.md
216
+ - docs/Subclassing.md
147
217
  - examples/clutter.rb
148
218
  - examples/main_loop.rb
149
219
  - lib/ffi-glib.rb
@@ -216,6 +286,7 @@ files:
216
286
  - lib/gir_ffi/builders/callback_argument_builder.rb
217
287
  - lib/gir_ffi/builders/callback_builder.rb
218
288
  - lib/gir_ffi/builders/callback_return_value_builder.rb
289
+ - lib/gir_ffi/builders/class_struct_builder.rb
219
290
  - lib/gir_ffi/builders/closure_argument_builder.rb
220
291
  - lib/gir_ffi/builders/closure_convertor.rb
221
292
  - lib/gir_ffi/builders/closure_return_value_builder.rb
@@ -319,134 +390,13 @@ files:
319
390
  - lib/gir_ffi/version.rb
320
391
  - lib/gir_ffi/vfunc_implementation.rb
321
392
  - lib/gir_ffi/zero_terminated.rb
322
- - tasks/test.rake
323
- - test/base_test_helper.rb
324
- - test/ffi-glib/array_test.rb
325
- - test/ffi-glib/byte_array_test.rb
326
- - test/ffi-glib/bytes_test.rb
327
- - test/ffi-glib/closure_test.rb
328
- - test/ffi-glib/destroy_notify_test.rb
329
- - test/ffi-glib/hash_table_test.rb
330
- - test/ffi-glib/list_test.rb
331
- - test/ffi-glib/main_loop_test.rb
332
- - test/ffi-glib/ptr_array_test.rb
333
- - test/ffi-glib/ruby_closure_test.rb
334
- - test/ffi-glib/s_list_test.rb
335
- - test/ffi-glib/strv_test.rb
336
- - test/ffi-glib/variant_test.rb
337
- - test/ffi-gobject/gobject_test.rb
338
- - test/ffi-gobject/object_class_test.rb
339
- - test/ffi-gobject/object_test.rb
340
- - test/ffi-gobject/param_spec_test.rb
341
- - test/ffi-gobject/value_test.rb
342
- - test/ffi-gobject_introspection/gobject_type_init_test.rb
343
- - test/ffi-gobject_introspection/i_base_info_test.rb
344
- - test/ffi-gobject_introspection/i_constant_info_test.rb
345
- - test/ffi-gobject_introspection/i_enum_info_test.rb
346
- - test/ffi-gobject_introspection/i_function_info_test.rb
347
- - test/ffi-gobject_introspection/i_interface_info_test.rb
348
- - test/ffi-gobject_introspection/i_object_info_test.rb
349
- - test/ffi-gobject_introspection/i_property_info_test.rb
350
- - test/ffi-gobject_introspection/i_registered_type_info_test.rb
351
- - test/ffi-gobject_introspection/i_repository_test.rb
352
- - test/ffi-gobject_introspection/i_struct_info_test.rb
353
- - test/ffi-gobject_introspection/i_type_info_test.rb
354
- - test/ffi-gobject_introspection/i_union_info_test.rb
355
- - test/ffi-gobject_introspection/i_vfunc_info_test.rb
356
- - test/ffi-gobject_introspection/lib_test.rb
357
- - test/ffi-gobject_introspection/strv_test.rb
358
- - test/ffi-gobject_test.rb
359
- - test/gir_ffi/allocation_helper_test.rb
360
- - test/gir_ffi/arg_helper_test.rb
361
- - test/gir_ffi/boolean_test.rb
362
- - test/gir_ffi/boxed_base_test.rb
363
- - test/gir_ffi/builder_test.rb
364
- - test/gir_ffi/builders/argument_builder_test.rb
365
- - test/gir_ffi/builders/base_argument_builder_test.rb
366
- - test/gir_ffi/builders/callback_argument_builder_test.rb
367
- - test/gir_ffi/builders/callback_builder_test.rb
368
- - test/gir_ffi/builders/callback_return_value_builder_test.rb
369
- - test/gir_ffi/builders/constant_builder_test.rb
370
- - test/gir_ffi/builders/constructor_builder_test.rb
371
- - test/gir_ffi/builders/enum_builder_test.rb
372
- - test/gir_ffi/builders/field_builder_test.rb
373
- - test/gir_ffi/builders/function_builder_test.rb
374
- - test/gir_ffi/builders/initializer_builder_test.rb
375
- - test/gir_ffi/builders/interface_builder_test.rb
376
- - test/gir_ffi/builders/module_builder_test.rb
377
- - test/gir_ffi/builders/object_builder_test.rb
378
- - test/gir_ffi/builders/property_builder_test.rb
379
- - test/gir_ffi/builders/registered_type_builder_test.rb
380
- - test/gir_ffi/builders/return_value_builder_test.rb
381
- - test/gir_ffi/builders/signal_closure_builder_test.rb
382
- - test/gir_ffi/builders/struct_builder_test.rb
383
- - test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb
384
- - test/gir_ffi/builders/unintrospectable_builder_test.rb
385
- - test/gir_ffi/builders/union_builder_test.rb
386
- - test/gir_ffi/builders/user_defined_builder_test.rb
387
- - test/gir_ffi/builders/vfunc_argument_builder_test.rb
388
- - test/gir_ffi/builders/vfunc_builder_test.rb
389
- - test/gir_ffi/callback_base_test.rb
390
- - test/gir_ffi/class_base_test.rb
391
- - test/gir_ffi/core_test.rb
392
- - test/gir_ffi/enum_base_test.rb
393
- - test/gir_ffi/error_type_info_test.rb
394
- - test/gir_ffi/ffi_ext/pointer_test.rb
395
- - test/gir_ffi/g_type_test.rb
396
- - test/gir_ffi/in_pointer_test.rb
397
- - test/gir_ffi/info_ext/i_callable_info_test.rb
398
- - test/gir_ffi/info_ext/i_callback_info_test.rb
399
- - test/gir_ffi/info_ext/i_field_info_test.rb
400
- - test/gir_ffi/info_ext/i_function_info_test.rb
401
- - test/gir_ffi/info_ext/i_signal_info_test.rb
402
- - test/gir_ffi/info_ext/i_type_info_test.rb
403
- - test/gir_ffi/info_ext/i_unresolved_info_test.rb
404
- - test/gir_ffi/info_ext/safe_constant_name_test.rb
405
- - test/gir_ffi/info_ext/safe_function_name_test.rb
406
- - test/gir_ffi/interface_base_test.rb
407
- - test/gir_ffi/method_stubber_test.rb
408
- - test/gir_ffi/object_base_test.rb
409
- - test/gir_ffi/object_store_test.rb
410
- - test/gir_ffi/receiver_argument_info_test.rb
411
- - test/gir_ffi/sized_array_test.rb
412
- - test/gir_ffi/struct_base_test.rb
413
- - test/gir_ffi/struct_like_base_test.rb
414
- - test/gir_ffi/type_map_test.rb
415
- - test/gir_ffi/unintrospectable_type_info_test.rb
416
- - test/gir_ffi/union_base_test.rb
417
- - test/gir_ffi/user_defined_object_info_test.rb
418
- - test/gir_ffi/user_defined_property_info_test.rb
419
- - test/gir_ffi/variable_name_generator_test.rb
420
- - test/gir_ffi/version_test.rb
421
- - test/gir_ffi/zero_terminated_test.rb
422
- - test/gir_ffi_test_helper.rb
423
- - test/integration/callback_exceptions_test.rb
424
- - test/integration/derived_classes_test.rb
425
- - test/integration/generated_everything_test.rb
426
- - test/integration/generated_gimarshallingtests_test.rb
427
- - test/integration/generated_gio_test.rb
428
- - test/integration/generated_glib_test.rb
429
- - test/integration/generated_gobject_test.rb
430
- - test/integration/generated_gst_test.rb
431
- - test/integration/generated_gtk_source_test.rb
432
- - test/integration/generated_gtop_test.rb
433
- - test/integration/generated_pango_ft2_test.rb
434
- - test/integration/generated_pango_test.rb
435
- - test/integration/generated_regress_test.rb
436
- - test/integration/generated_secret_test.rb
437
- - test/integration/generated_utility_test.rb
438
- - test/integration/generated_warnlib_test.rb
439
- - test/integration/method_lookup_test.rb
440
- - test/introspection_test_helper.rb
441
- - test/lib/Makefile.am
442
- - test/lib/autogen.sh
443
- - test/lib/configure.ac
444
- - test/lib/m4/jhflags.m4
445
- - test/minitest/stats_plugin.rb
446
393
  homepage: http://www.github.com/mvz/ruby-gir-ffi
447
394
  licenses:
448
395
  - LGPL-2.1+
449
- metadata: {}
396
+ metadata:
397
+ homepage_uri: http://www.github.com/mvz/ruby-gir-ffi
398
+ source_code_uri: https://github.com/mvz/gir_ffi
399
+ changelog_uri: https://github.com/mvz/gir_ffi/blob/master/Changelog.md
450
400
  post_install_message:
451
401
  rdoc_options:
452
402
  - "--main"
data/Gemfile DELETED
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # The gem's dependencies are specified in gir_ffi.gemspec
6
- gemspec
7
-
8
- gem "pry", "~> 0.13.0"
9
- gem "ruby-prof", platform: :mri
10
- gem "test-prof", platform: :mri
11
-
12
- if ENV["CI"]
13
- gem "coveralls", group: :development if ENV["TRAVIS_RUBY_VERSION"] == "2.4"
14
- end
data/Rakefile DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rake/clean"
4
- require "bundler/gem_tasks"
5
-
6
- load "tasks/test.rake"
7
-
8
- task default: "test:all"
9
- task default: "test:features"
@@ -1,204 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rake/testtask'
4
- require 'cucumber/rake/task'
5
-
6
- require 'rexml/document'
7
- require 'rexml/streamlistener'
8
-
9
- # Listener class used to process GIR xml data, for creating test stubs.
10
- class Listener
11
- include REXML::StreamListener
12
-
13
- def initialize
14
- @inside_class = false
15
- @stack = []
16
- @skip_state = []
17
- end
18
-
19
- attr_accessor :result
20
- attr_accessor :namespace
21
-
22
- def tag_start(name, attrs)
23
- @stack.push [name, attrs]
24
- if @skip_state.last || skippable?(attrs)
25
- @skip_state.push true
26
- return
27
- else
28
- @skip_state.push false
29
- end
30
-
31
- obj_name = attrs['name']
32
- case name
33
- when 'constant'
34
- result.puts " it 'has the constant #{obj_name}' do"
35
- when 'record', 'class', 'enumeration', 'bitfield', 'interface', 'union'
36
- result.puts " describe '#{namespace}::#{obj_name}' do"
37
- @inside_class = name
38
- when 'constructor'
39
- result.puts " it 'creates an instance using ##{obj_name}' do"
40
- when 'field'
41
- if @inside_class != 'class'
42
- if attrs['private'] == '1'
43
- result.puts " it 'has a private field #{obj_name}' do"
44
- elsif attrs['writable'] == '1'
45
- result.puts " it 'has a writable field #{obj_name}' do"
46
- else
47
- result.puts " it 'has a read-only field #{obj_name}' do"
48
- end
49
- end
50
- when 'function', 'method'
51
- spaces = @inside_class ? ' ' : ''
52
- result.puts " #{spaces}it 'has a working #{name} ##{obj_name}' do"
53
- when 'member'
54
- result.puts " it 'has the member :#{obj_name}' do"
55
- when 'namespace'
56
- result.puts "describe #{obj_name} do"
57
- when 'property'
58
- accessor_name = obj_name.tr('-', '_')
59
- result.puts " describe \"its '#{obj_name}' property\" do"
60
- result.puts " it 'can be retrieved with #get_property' do"
61
- result.puts ' end'
62
- result.puts " it 'can be retrieved with ##{accessor_name}' do"
63
- result.puts ' end'
64
- if attrs['writable'] == '1'
65
- result.puts " it 'can be set with #set_property' do"
66
- result.puts ' end'
67
- result.puts " it 'can be set with ##{accessor_name}=' do"
68
- result.puts ' end'
69
- end
70
- when 'glib:signal'
71
- result.puts " it \"handles the '#{obj_name}' signal\" do"
72
- when 'type', 'alias', 'return-value', 'parameters',
73
- 'instance-parameter', 'parameter', 'doc', 'array',
74
- 'repository', 'include', 'package', 'source-position'
75
- # Not printed"
76
- else
77
- puts "Skipping #{name}: #{attrs}"
78
- end
79
- end
80
-
81
- def tag_end(name)
82
- org_name, = *@stack.pop
83
- skipping = @skip_state.pop
84
- raise "Expected #{org_name}, got #{name}" if org_name != name
85
- return if skipping
86
-
87
- case name
88
- when 'constant'
89
- result.puts ' end'
90
- when 'record', 'class', 'enumeration', 'bitfield',
91
- 'interface', 'union'
92
- result.puts ' end'
93
- @inside_class = false
94
- when 'function', 'method'
95
- if @inside_class
96
- result.puts ' end'
97
- else
98
- result.puts ' end'
99
- end
100
- when 'constructor', 'member', 'property', 'glib:signal'
101
- result.puts ' end'
102
- when 'field'
103
- result.puts ' end' if @inside_class != 'class'
104
- when 'namespace'
105
- result.puts 'end'
106
- end
107
- end
108
-
109
- def skippable?(attrs)
110
- return true if attrs['disguised'] == '1'
111
- return true if attrs['introspectable'] == '0'
112
- return true if attrs['glib:is-gtype-struct-for']
113
-
114
- false
115
- end
116
- end
117
-
118
- namespace :test do
119
- def define_test_task(name)
120
- Rake::TestTask.new(name) do |t|
121
- t.libs = ['lib']
122
- t.ruby_opts += ['-w -Itest']
123
- yield t
124
- end
125
- end
126
-
127
- define_test_task(:base) do |t|
128
- t.test_files = FileList['test/gir_ffi-base/**/*_test.rb']
129
- end
130
-
131
- define_test_task(:introspection) do |t|
132
- t.test_files = FileList['test/ffi-gobject_introspection/**/*_test.rb']
133
- end
134
-
135
- define_test_task(:main) do |t|
136
- t.test_files = FileList['test/gir_ffi/**/*_test.rb']
137
- end
138
-
139
- define_test_task(:overrides) do |t|
140
- t.test_files = FileList['test/ffi-gobject_test.rb',
141
- 'test/ffi-glib/**/*_test.rb',
142
- 'test/ffi-gobject/**/*_test.rb']
143
- end
144
-
145
- define_test_task(:integration) do |t|
146
- t.test_files = FileList['test/integration/**/*_test.rb']
147
- end
148
-
149
- desc 'Build test libraries and typelibs'
150
- task lib: 'test/lib/Makefile' do
151
- sh %(cd test/lib && make)
152
- end
153
-
154
- task introspection: :lib
155
- task main: :lib
156
- task overrides: :lib
157
- task integration: :lib
158
-
159
- desc 'Run the entire test suite as one with simplecov activated'
160
- define_test_task(:all) do |t|
161
- t.test_files = FileList['test/**/*_test.rb']
162
- t.ruby_opts += ['-rbundler/setup -rsimplecov -w -Itest']
163
- end
164
-
165
- task all: :lib
166
-
167
- desc 'Run all individual test suites separately'
168
- task suites: [:base,
169
- :introspection,
170
- :main,
171
- :overrides,
172
- :integration]
173
-
174
- def make_stub_file(libname)
175
- file = File.new "test/lib/#{libname}-1.0.gir"
176
- listener = Listener.new
177
- listener.result = File.open("tmp/#{libname.downcase}_lines.rb", 'w')
178
- listener.namespace = libname
179
- REXML::Document.parse_stream file, listener
180
- end
181
-
182
- desc 'Create stubs for integration tests'
183
- task stub: :lib do
184
- make_stub_file 'Everything'
185
- make_stub_file 'GIMarshallingTests'
186
- make_stub_file 'Regress'
187
- make_stub_file 'Utility'
188
- make_stub_file 'WarnLib'
189
- end
190
-
191
- Cucumber::Rake::Task.new(:features) do |t|
192
- t.cucumber_opts = 'features --format pretty'
193
- end
194
- end
195
-
196
- file 'test/lib/Makefile' => 'test/lib/configure' do
197
- sh %(cd test/lib && ./configure --enable-maintainer-mode)
198
- end
199
-
200
- file 'test/lib/configure' => ['test/lib/autogen.sh', 'test/lib/configure.ac'] do
201
- sh %(cd test/lib && ./autogen.sh)
202
- end
203
-
204
- task test: 'test:all'