gir_ffi 0.15.3 → 0.15.4

Sign up to get free protection for your applications and to get access to all the features.
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'