gir_ffi 0.15.1 → 0.15.6

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 (190) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +42 -0
  3. data/README.md +10 -10
  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/container_class_methods.rb +1 -3
  10. data/lib/ffi-glib/destroy_notify.rb +2 -2
  11. data/lib/ffi-glib/hash_table.rb +1 -2
  12. data/lib/ffi-glib/list.rb +11 -5
  13. data/lib/ffi-glib/list_methods.rb +12 -0
  14. data/lib/ffi-glib/s_list.rb +10 -4
  15. data/lib/ffi-gobject.rb +2 -5
  16. data/lib/ffi-gobject/object.rb +102 -92
  17. data/lib/ffi-gobject/object_class.rb +1 -1
  18. data/lib/ffi-gobject/ruby_closure.rb +1 -1
  19. data/lib/ffi-gobject/value.rb +108 -117
  20. data/lib/ffi-gobject_introspection/i_base_info.rb +35 -27
  21. data/lib/ffi-gobject_introspection/lib.rb +1 -1
  22. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  23. data/lib/gir_ffi/array_element_convertor.rb +2 -3
  24. data/lib/gir_ffi/boxed_base.rb +13 -11
  25. data/lib/gir_ffi/builder.rb +3 -4
  26. data/lib/gir_ffi/builder_helper.rb +10 -2
  27. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  28. data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
  29. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  30. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
  31. data/lib/gir_ffi/builders/callback_builder.rb +25 -11
  32. data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
  33. data/lib/gir_ffi/builders/enum_builder.rb +9 -5
  34. data/lib/gir_ffi/builders/field_builder.rb +2 -1
  35. data/lib/gir_ffi/builders/function_builder.rb +1 -1
  36. data/lib/gir_ffi/builders/interface_builder.rb +3 -1
  37. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  38. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
  39. data/lib/gir_ffi/builders/method_template.rb +4 -4
  40. data/lib/gir_ffi/builders/module_builder.rb +4 -2
  41. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
  42. data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
  43. data/lib/gir_ffi/builders/object_builder.rb +18 -6
  44. data/lib/gir_ffi/builders/property_builder.rb +1 -2
  45. data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
  46. data/lib/gir_ffi/builders/struct_builder.rb +34 -7
  47. data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
  48. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  49. data/lib/gir_ffi/callback_base.rb +7 -8
  50. data/lib/gir_ffi/class_base.rb +1 -0
  51. data/lib/gir_ffi/core.rb +17 -2
  52. data/lib/gir_ffi/glib_error.rb +1 -2
  53. data/lib/gir_ffi/in_pointer.rb +7 -0
  54. data/lib/gir_ffi/object_base.rb +27 -0
  55. data/lib/gir_ffi/return_value_info.rb +1 -2
  56. data/lib/gir_ffi/struct_base.rb +1 -9
  57. data/lib/gir_ffi/struct_like_base.rb +9 -5
  58. data/lib/gir_ffi/type_map.rb +1 -0
  59. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  60. data/lib/gir_ffi/union_base.rb +1 -9
  61. data/lib/gir_ffi/user_defined_object_info.rb +3 -2
  62. data/lib/gir_ffi/version.rb +1 -1
  63. data/lib/gir_ffi/vfunc_implementation.rb +1 -0
  64. metadata +106 -143
  65. data/Gemfile +0 -14
  66. data/Rakefile +0 -9
  67. data/tasks/test.rake +0 -204
  68. data/test/base_test_helper.rb +0 -70
  69. data/test/ffi-glib/array_test.rb +0 -203
  70. data/test/ffi-glib/byte_array_test.rb +0 -28
  71. data/test/ffi-glib/bytes_test.rb +0 -61
  72. data/test/ffi-glib/closure_test.rb +0 -38
  73. data/test/ffi-glib/destroy_notify_test.rb +0 -18
  74. data/test/ffi-glib/hash_table_test.rb +0 -68
  75. data/test/ffi-glib/list_test.rb +0 -86
  76. data/test/ffi-glib/main_loop_test.rb +0 -53
  77. data/test/ffi-glib/ptr_array_test.rb +0 -112
  78. data/test/ffi-glib/ruby_closure_test.rb +0 -62
  79. data/test/ffi-glib/s_list_test.rb +0 -76
  80. data/test/ffi-glib/strv_test.rb +0 -60
  81. data/test/ffi-glib/variant_test.rb +0 -12
  82. data/test/ffi-gobject/gobject_test.rb +0 -76
  83. data/test/ffi-gobject/object_class_test.rb +0 -31
  84. data/test/ffi-gobject/object_test.rb +0 -122
  85. data/test/ffi-gobject/param_spec_test.rb +0 -32
  86. data/test/ffi-gobject/value_test.rb +0 -390
  87. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
  88. data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
  89. data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
  90. data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
  91. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
  92. data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
  93. data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
  94. data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
  95. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
  96. data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
  97. data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
  98. data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
  99. data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
  100. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
  101. data/test/ffi-gobject_introspection/lib_test.rb +0 -13
  102. data/test/ffi-gobject_introspection/strv_test.rb +0 -46
  103. data/test/ffi-gobject_test.rb +0 -151
  104. data/test/gir_ffi/allocation_helper_test.rb +0 -36
  105. data/test/gir_ffi/arg_helper_test.rb +0 -139
  106. data/test/gir_ffi/boolean_test.rb +0 -43
  107. data/test/gir_ffi/boxed_base_test.rb +0 -65
  108. data/test/gir_ffi/builder_test.rb +0 -322
  109. data/test/gir_ffi/builders/argument_builder_test.rb +0 -651
  110. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
  111. data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -126
  112. data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
  113. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -81
  114. data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
  115. data/test/gir_ffi/builders/constructor_builder_test.rb +0 -37
  116. data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
  117. data/test/gir_ffi/builders/field_builder_test.rb +0 -134
  118. data/test/gir_ffi/builders/function_builder_test.rb +0 -550
  119. data/test/gir_ffi/builders/initializer_builder_test.rb +0 -54
  120. data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
  121. data/test/gir_ffi/builders/module_builder_test.rb +0 -43
  122. data/test/gir_ffi/builders/object_builder_test.rb +0 -98
  123. data/test/gir_ffi/builders/property_builder_test.rb +0 -158
  124. data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
  125. data/test/gir_ffi/builders/return_value_builder_test.rb +0 -433
  126. data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -197
  127. data/test/gir_ffi/builders/struct_builder_test.rb +0 -93
  128. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
  129. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
  130. data/test/gir_ffi/builders/union_builder_test.rb +0 -28
  131. data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -524
  132. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -101
  133. data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -241
  134. data/test/gir_ffi/callback_base_test.rb +0 -22
  135. data/test/gir_ffi/class_base_test.rb +0 -166
  136. data/test/gir_ffi/core_test.rb +0 -98
  137. data/test/gir_ffi/enum_base_test.rb +0 -43
  138. data/test/gir_ffi/error_type_info_test.rb +0 -50
  139. data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -20
  140. data/test/gir_ffi/g_type_test.rb +0 -31
  141. data/test/gir_ffi/in_pointer_test.rb +0 -203
  142. data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
  143. data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -21
  144. data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
  145. data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
  146. data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
  147. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -711
  148. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
  149. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
  150. data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
  151. data/test/gir_ffi/interface_base_test.rb +0 -20
  152. data/test/gir_ffi/method_stubber_test.rb +0 -65
  153. data/test/gir_ffi/object_base_test.rb +0 -64
  154. data/test/gir_ffi/object_store_test.rb +0 -41
  155. data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
  156. data/test/gir_ffi/sized_array_test.rb +0 -206
  157. data/test/gir_ffi/struct_base_test.rb +0 -23
  158. data/test/gir_ffi/struct_like_base_test.rb +0 -167
  159. data/test/gir_ffi/type_map_test.rb +0 -17
  160. data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
  161. data/test/gir_ffi/union_base_test.rb +0 -23
  162. data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
  163. data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
  164. data/test/gir_ffi/variable_name_generator_test.rb +0 -18
  165. data/test/gir_ffi/version_test.rb +0 -9
  166. data/test/gir_ffi/zero_terminated_test.rb +0 -108
  167. data/test/gir_ffi_test_helper.rb +0 -84
  168. data/test/integration/callback_exceptions_test.rb +0 -59
  169. data/test/integration/derived_classes_test.rb +0 -53
  170. data/test/integration/generated_everything_test.rb +0 -452
  171. data/test/integration/generated_gimarshallingtests_test.rb +0 -3096
  172. data/test/integration/generated_gio_test.rb +0 -116
  173. data/test/integration/generated_glib_test.rb +0 -10
  174. data/test/integration/generated_gobject_test.rb +0 -124
  175. data/test/integration/generated_gst_test.rb +0 -38
  176. data/test/integration/generated_gtk_source_test.rb +0 -32
  177. data/test/integration/generated_gtop_test.rb +0 -22
  178. data/test/integration/generated_pango_ft2_test.rb +0 -17
  179. data/test/integration/generated_pango_test.rb +0 -24
  180. data/test/integration/generated_regress_test.rb +0 -4038
  181. data/test/integration/generated_secret_test.rb +0 -14
  182. data/test/integration/generated_utility_test.rb +0 -174
  183. data/test/integration/generated_warnlib_test.rb +0 -43
  184. data/test/integration/method_lookup_test.rb +0 -34
  185. data/test/introspection_test_helper.rb +0 -93
  186. data/test/lib/Makefile.am +0 -110
  187. data/test/lib/autogen.sh +0 -4
  188. data/test/lib/configure.ac +0 -34
  189. data/test/lib/m4/jhflags.m4 +0 -21
  190. data/test/minitest/stats_plugin.rb +0 -30
@@ -12,6 +12,7 @@ module GirFFI
12
12
  end
13
13
 
14
14
  def setup_class
15
+ check_ancestry
15
16
  setup_layout
16
17
  register_type
17
18
  setup_constants
@@ -26,6 +27,12 @@ module GirFFI
26
27
 
27
28
  private
28
29
 
30
+ def check_ancestry
31
+ unless klass < GirFFI::ObjectBase
32
+ raise ArgumentError, "#{klass} is not a GObject class"
33
+ end
34
+ end
35
+
29
36
  def register_type
30
37
  @gtype = GObject.type_register_static(parent_gtype.to_i,
31
38
  info.g_name,
@@ -98,7 +105,7 @@ module GirFFI
98
105
  end
99
106
 
100
107
  def class_size
101
- parent_gtype.class_size + interface_gtypes.map(&:class_size).inject(0, :+)
108
+ parent_gtype.class_size + interface_gtypes.sum(&:class_size)
102
109
  end
103
110
 
104
111
  def setup_properties(object_class_ptr)
@@ -9,7 +9,7 @@ module GirFFI
9
9
  class VFuncArgumentBuilder < CallbackArgumentBuilder
10
10
  def pre_conversion
11
11
  if ingoing_ref_needed?
12
- super + ["#{pre_converted_name}.ref"]
12
+ super + ["#{pre_converted_name}&.ref"]
13
13
  else
14
14
  super
15
15
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "gir_ffi/type_base"
4
+ require "set"
4
5
 
5
6
  module GirFFI
6
7
  # Base module for callbacks and vfuncs.
@@ -35,14 +36,14 @@ module GirFFI
35
36
  from_native ptr, nil
36
37
  end
37
38
 
38
- CALLBACKS = {}
39
+ CALLBACKS = Set.new
39
40
 
40
41
  def self.store_callback(prc)
41
- CALLBACKS[prc.object_id] = prc
42
+ CALLBACKS.add prc
42
43
  end
43
44
 
44
45
  def self.drop_callback(prc)
45
- CALLBACKS.delete prc.object_id
46
+ CALLBACKS.delete prc
46
47
  end
47
48
 
48
49
  # Create Callback from a Proc. Makes sure arguments are properly wrapped,
@@ -57,11 +58,9 @@ module GirFFI
57
58
  return unless prc
58
59
 
59
60
  new do |*args|
60
- begin
61
- call_with_argument_mapping(prc, *args)
62
- rescue StandardError => e
63
- GLib::MainLoop.handle_exception e
64
- end
61
+ call_with_argument_mapping(prc, *args)
62
+ rescue StandardError => e
63
+ GLib::MainLoop.handle_exception e
65
64
  end
66
65
  end
67
66
 
@@ -18,6 +18,7 @@ module GirFFI
18
18
  GIR_FFI_BUILDER = Builders::NullClassBuilder.new
19
19
 
20
20
  attr_reader :struct
21
+
21
22
  def_delegators :@struct, :to_ptr
22
23
 
23
24
  def setup_and_call(method, arguments, &block)
@@ -28,8 +28,23 @@ module GirFFI
28
28
  Builder.build_module namespace, version
29
29
  end
30
30
 
31
- def define_type(klass, &block)
32
- info = UserDefinedObjectInfo.new(klass, &block)
31
+ def define_type(klass)
32
+ unless klass < GirFFI::ObjectBase
33
+ raise ArgumentError, "#{klass} is not a GObject class"
34
+ end
35
+
36
+ klass.prepare_user_defined_class
37
+ info = klass.gir_info
38
+
39
+ unless info.is_a? UserDefinedObjectInfo
40
+ raise ArgumentError, "#{klass} is not a user-defined class"
41
+ end
42
+
43
+ if block_given?
44
+ warn "Using define_type with a block is deprecated." \
45
+ " Call the relevant functions inside the class definition instead."
46
+ yield info
47
+ end
33
48
  Builders::UserDefinedBuilder.new(info).build_class
34
49
 
35
50
  klass.gtype
@@ -4,8 +4,7 @@ module GirFFI
4
4
  # Exception class to be raised whenever an error is signaled through
5
5
  # GLib::Error.
6
6
  class GLibError < RuntimeError
7
- attr_reader :domain_quark
8
- attr_reader :code
7
+ attr_reader :domain_quark, :code
9
8
 
10
9
  def initialize(g_error)
11
10
  @domain_quark = g_error.domain
@@ -67,6 +67,8 @@ module GirFFI
67
67
  from_utf8_array ary
68
68
  when :gboolean
69
69
  from_boolean_array ary
70
+ when :guint8
71
+ from_char_array ary
70
72
  else
71
73
  from_basic_type_array type, ary
72
74
  end
@@ -92,6 +94,11 @@ module GirFFI
92
94
  from_basic_type_array :int, ary.map { |val| val ? 1 : 0 }
93
95
  end
94
96
 
97
+ def from_char_array(ary)
98
+ ary = ary.bytes if ary.is_a? String
99
+ from_basic_type_array :int8, ary
100
+ end
101
+
95
102
  def from_pointer_array(type, ary)
96
103
  from_basic_type_array :pointer, ary.map { |elem| from type, elem }
97
104
  end
@@ -81,5 +81,32 @@ module GirFFI
81
81
  it < GirFFI::ObjectBase || it.singleton_class.include?(InterfaceBase)
82
82
  end
83
83
  end
84
+
85
+ def self.prepare_user_defined_class
86
+ return if const_defined? :GIR_INFO, false
87
+
88
+ info = UserDefinedObjectInfo.new(self)
89
+ const_set :GIR_INFO, info
90
+ end
91
+
92
+ def self.install_property(param_spec)
93
+ if const_defined? :GIR_FFI_BUILDER, false
94
+ raise "Installing a property in a class that is already set up is not supported"
95
+ end
96
+
97
+ prepare_user_defined_class
98
+
99
+ gir_info.install_property(param_spec)
100
+ end
101
+
102
+ def self.install_vfunc_implementation(name, implementation = nil)
103
+ if const_defined? :GIR_FFI_BUILDER, false
104
+ raise "Installing a property in a class that is already set up is not supported"
105
+ end
106
+
107
+ prepare_user_defined_class
108
+
109
+ gir_info.install_vfunc_implementation(name, implementation)
110
+ end
84
111
  end
85
112
  end
@@ -3,8 +3,7 @@
3
3
  module GirFFI
4
4
  # Represents a return value with the same interface as IArgInfo
5
5
  class ReturnValueInfo
6
- attr_reader :argument_type
7
- attr_reader :ownership_transfer
6
+ attr_reader :argument_type, :ownership_transfer
8
7
 
9
8
  def initialize(type, ownership_transfer, skip)
10
9
  @argument_type = type
@@ -4,14 +4,6 @@ require "gir_ffi/struct_like_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base class for generated classes representing GLib structs.
7
- class StructBase < 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 StructBase < StructLikeBase
16
8
  end
17
9
  end
@@ -1,15 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GirFFI
4
- # Base module providing class methods for generated classes representing GLib
4
+ # Base class providing methods for generated classes representing GLib
5
5
  # structs, unions and boxed types.
6
- module StructLikeBase
7
- def self.included(base)
8
- base.extend ClassMethods
6
+ class StructLikeBase < ClassBase
7
+ extend FFI::DataConverter
8
+
9
+ def initialize
10
+ store_pointer(nil)
11
+ struct.owned = true
12
+ struct.to_ptr.autorelease = false
9
13
  end
10
14
 
11
15
  # Class methods for struct-like classes.
12
- module ClassMethods
16
+ class << self
13
17
  def native_type
14
18
  FFI::Type::Struct.new(self::Struct)
15
19
  end
@@ -22,6 +22,7 @@ module GirFFI
22
22
  array: :pointer,
23
23
  c: GirFFI::SizedArray,
24
24
  utf8: :pointer,
25
+ filename: :pointer,
25
26
  GType: gsize_type,
26
27
  gboolean: GirFFI::Boolean,
27
28
  gunichar: :uint32,
@@ -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.1"
5
+ VERSION = "0.15.6"
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.1
4
+ version: 0.15.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-20 00:00:00.000000000 Z
11
+ date: 2021-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.14.1
47
+ version: 1.0.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.14.1
54
+ version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,34 @@ 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.2.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.2.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rexml
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rspec-mocks
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -94,25 +122,81 @@ dependencies:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
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.8.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.8.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.9.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.9.0
97
181
  - !ruby/object:Gem::Dependency
98
182
  name: simplecov
99
183
  requirement: !ruby/object:Gem::Requirement
100
184
  requirements:
101
185
  - - "~>"
102
186
  - !ruby/object:Gem::Version
103
- version: 0.17.0
187
+ version: 0.21.0
104
188
  type: :development
105
189
  prerelease: false
106
190
  version_requirements: !ruby/object:Gem::Requirement
107
191
  requirements:
108
192
  - - "~>"
109
193
  - !ruby/object:Gem::Version
110
- version: 0.17.0
111
- description: |2
112
- GirFFI creates bindings for GObject-based libraries at runtime based on introspection
113
- data provided by the GObject Introspection Repository (GIR) system. Bindings are created
114
- at runtime and use FFI to interface with the C libraries. In cases where the GIR does not
115
- provide enough or correct information to create sane bindings, overrides may be created.
194
+ version: 0.21.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.
116
200
  email:
117
201
  - matijs@matijs.net
118
202
  executables: []
@@ -126,10 +210,10 @@ files:
126
210
  - COPYING.LIB
127
211
  - Changelog.md
128
212
  - DESIGN.md
129
- - Gemfile
130
213
  - README.md
131
- - Rakefile
132
214
  - TODO.md
215
+ - docs/Documentation.md
216
+ - docs/Subclassing.md
133
217
  - examples/clutter.rb
134
218
  - examples/main_loop.rb
135
219
  - lib/ffi-glib.rb
@@ -305,135 +389,14 @@ files:
305
389
  - lib/gir_ffi/version.rb
306
390
  - lib/gir_ffi/vfunc_implementation.rb
307
391
  - lib/gir_ffi/zero_terminated.rb
308
- - tasks/test.rake
309
- - test/base_test_helper.rb
310
- - test/ffi-glib/array_test.rb
311
- - test/ffi-glib/byte_array_test.rb
312
- - test/ffi-glib/bytes_test.rb
313
- - test/ffi-glib/closure_test.rb
314
- - test/ffi-glib/destroy_notify_test.rb
315
- - test/ffi-glib/hash_table_test.rb
316
- - test/ffi-glib/list_test.rb
317
- - test/ffi-glib/main_loop_test.rb
318
- - test/ffi-glib/ptr_array_test.rb
319
- - test/ffi-glib/ruby_closure_test.rb
320
- - test/ffi-glib/s_list_test.rb
321
- - test/ffi-glib/strv_test.rb
322
- - test/ffi-glib/variant_test.rb
323
- - test/ffi-gobject/gobject_test.rb
324
- - test/ffi-gobject/object_class_test.rb
325
- - test/ffi-gobject/object_test.rb
326
- - test/ffi-gobject/param_spec_test.rb
327
- - test/ffi-gobject/value_test.rb
328
- - test/ffi-gobject_introspection/gobject_type_init_test.rb
329
- - test/ffi-gobject_introspection/i_base_info_test.rb
330
- - test/ffi-gobject_introspection/i_constant_info_test.rb
331
- - test/ffi-gobject_introspection/i_enum_info_test.rb
332
- - test/ffi-gobject_introspection/i_function_info_test.rb
333
- - test/ffi-gobject_introspection/i_interface_info_test.rb
334
- - test/ffi-gobject_introspection/i_object_info_test.rb
335
- - test/ffi-gobject_introspection/i_property_info_test.rb
336
- - test/ffi-gobject_introspection/i_registered_type_info_test.rb
337
- - test/ffi-gobject_introspection/i_repository_test.rb
338
- - test/ffi-gobject_introspection/i_struct_info_test.rb
339
- - test/ffi-gobject_introspection/i_type_info_test.rb
340
- - test/ffi-gobject_introspection/i_union_info_test.rb
341
- - test/ffi-gobject_introspection/i_vfunc_info_test.rb
342
- - test/ffi-gobject_introspection/lib_test.rb
343
- - test/ffi-gobject_introspection/strv_test.rb
344
- - test/ffi-gobject_test.rb
345
- - test/gir_ffi/allocation_helper_test.rb
346
- - test/gir_ffi/arg_helper_test.rb
347
- - test/gir_ffi/boolean_test.rb
348
- - test/gir_ffi/boxed_base_test.rb
349
- - test/gir_ffi/builder_test.rb
350
- - test/gir_ffi/builders/argument_builder_test.rb
351
- - test/gir_ffi/builders/base_argument_builder_test.rb
352
- - test/gir_ffi/builders/callback_argument_builder_test.rb
353
- - test/gir_ffi/builders/callback_builder_test.rb
354
- - test/gir_ffi/builders/callback_return_value_builder_test.rb
355
- - test/gir_ffi/builders/constant_builder_test.rb
356
- - test/gir_ffi/builders/constructor_builder_test.rb
357
- - test/gir_ffi/builders/enum_builder_test.rb
358
- - test/gir_ffi/builders/field_builder_test.rb
359
- - test/gir_ffi/builders/function_builder_test.rb
360
- - test/gir_ffi/builders/initializer_builder_test.rb
361
- - test/gir_ffi/builders/interface_builder_test.rb
362
- - test/gir_ffi/builders/module_builder_test.rb
363
- - test/gir_ffi/builders/object_builder_test.rb
364
- - test/gir_ffi/builders/property_builder_test.rb
365
- - test/gir_ffi/builders/registered_type_builder_test.rb
366
- - test/gir_ffi/builders/return_value_builder_test.rb
367
- - test/gir_ffi/builders/signal_closure_builder_test.rb
368
- - test/gir_ffi/builders/struct_builder_test.rb
369
- - test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb
370
- - test/gir_ffi/builders/unintrospectable_builder_test.rb
371
- - test/gir_ffi/builders/union_builder_test.rb
372
- - test/gir_ffi/builders/user_defined_builder_test.rb
373
- - test/gir_ffi/builders/vfunc_argument_builder_test.rb
374
- - test/gir_ffi/builders/vfunc_builder_test.rb
375
- - test/gir_ffi/callback_base_test.rb
376
- - test/gir_ffi/class_base_test.rb
377
- - test/gir_ffi/core_test.rb
378
- - test/gir_ffi/enum_base_test.rb
379
- - test/gir_ffi/error_type_info_test.rb
380
- - test/gir_ffi/ffi_ext/pointer_test.rb
381
- - test/gir_ffi/g_type_test.rb
382
- - test/gir_ffi/in_pointer_test.rb
383
- - test/gir_ffi/info_ext/i_callable_info_test.rb
384
- - test/gir_ffi/info_ext/i_callback_info_test.rb
385
- - test/gir_ffi/info_ext/i_field_info_test.rb
386
- - test/gir_ffi/info_ext/i_function_info_test.rb
387
- - test/gir_ffi/info_ext/i_signal_info_test.rb
388
- - test/gir_ffi/info_ext/i_type_info_test.rb
389
- - test/gir_ffi/info_ext/i_unresolved_info_test.rb
390
- - test/gir_ffi/info_ext/safe_constant_name_test.rb
391
- - test/gir_ffi/info_ext/safe_function_name_test.rb
392
- - test/gir_ffi/interface_base_test.rb
393
- - test/gir_ffi/method_stubber_test.rb
394
- - test/gir_ffi/object_base_test.rb
395
- - test/gir_ffi/object_store_test.rb
396
- - test/gir_ffi/receiver_argument_info_test.rb
397
- - test/gir_ffi/sized_array_test.rb
398
- - test/gir_ffi/struct_base_test.rb
399
- - test/gir_ffi/struct_like_base_test.rb
400
- - test/gir_ffi/type_map_test.rb
401
- - test/gir_ffi/unintrospectable_type_info_test.rb
402
- - test/gir_ffi/union_base_test.rb
403
- - test/gir_ffi/user_defined_object_info_test.rb
404
- - test/gir_ffi/user_defined_property_info_test.rb
405
- - test/gir_ffi/variable_name_generator_test.rb
406
- - test/gir_ffi/version_test.rb
407
- - test/gir_ffi/zero_terminated_test.rb
408
- - test/gir_ffi_test_helper.rb
409
- - test/integration/callback_exceptions_test.rb
410
- - test/integration/derived_classes_test.rb
411
- - test/integration/generated_everything_test.rb
412
- - test/integration/generated_gimarshallingtests_test.rb
413
- - test/integration/generated_gio_test.rb
414
- - test/integration/generated_glib_test.rb
415
- - test/integration/generated_gobject_test.rb
416
- - test/integration/generated_gst_test.rb
417
- - test/integration/generated_gtk_source_test.rb
418
- - test/integration/generated_gtop_test.rb
419
- - test/integration/generated_pango_ft2_test.rb
420
- - test/integration/generated_pango_test.rb
421
- - test/integration/generated_regress_test.rb
422
- - test/integration/generated_secret_test.rb
423
- - test/integration/generated_utility_test.rb
424
- - test/integration/generated_warnlib_test.rb
425
- - test/integration/method_lookup_test.rb
426
- - test/introspection_test_helper.rb
427
- - test/lib/Makefile.am
428
- - test/lib/autogen.sh
429
- - test/lib/configure.ac
430
- - test/lib/m4/jhflags.m4
431
- - test/minitest/stats_plugin.rb
432
392
  homepage: http://www.github.com/mvz/ruby-gir-ffi
433
393
  licenses:
434
394
  - LGPL-2.1+
435
- metadata: {}
436
- post_install_message:
395
+ metadata:
396
+ homepage_uri: http://www.github.com/mvz/ruby-gir-ffi
397
+ source_code_uri: https://github.com/mvz/gir_ffi
398
+ changelog_uri: https://github.com/mvz/gir_ffi/blob/master/Changelog.md
399
+ post_install_message:
437
400
  rdoc_options:
438
401
  - "--main"
439
402
  - README.md
@@ -443,15 +406,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
443
406
  requirements:
444
407
  - - ">="
445
408
  - !ruby/object:Gem::Version
446
- version: 2.4.0
409
+ version: 2.5.0
447
410
  required_rubygems_version: !ruby/object:Gem::Requirement
448
411
  requirements:
449
412
  - - ">="
450
413
  - !ruby/object:Gem::Version
451
414
  version: '0'
452
415
  requirements: []
453
- rubygems_version: 3.0.6
454
- signing_key:
416
+ rubygems_version: 3.2.3
417
+ signing_key:
455
418
  specification_version: 4
456
419
  summary: FFI-based GObject binding using the GObject Introspection Repository
457
420
  test_files: []