gir_ffi 0.15.9 → 0.16.0

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +31 -18
  3. data/README.md +1 -1
  4. data/lib/ffi-glib/bytes.rb +0 -12
  5. data/lib/ffi-glib/main_loop.rb +1 -1
  6. data/lib/ffi-glib/ptr_array.rb +24 -15
  7. data/lib/ffi-glib/variant.rb +4 -6
  8. data/lib/ffi-gobject/object.rb +1 -11
  9. data/lib/ffi-gobject/object_class.rb +2 -10
  10. data/lib/ffi-gobject/value.rb +26 -26
  11. data/lib/ffi-gobject.rb +3 -17
  12. data/lib/ffi-gobject_introspection/i_constant_info.rb +10 -10
  13. data/lib/ffi-gobject_introspection/lib.rb +11 -11
  14. data/lib/ffi-gobject_introspection.rb +19 -19
  15. data/lib/gir_ffi/builder.rb +1 -1
  16. data/lib/gir_ffi/builders/argument_builder_collection.rb +5 -5
  17. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  18. data/lib/gir_ffi/builders/base_method_builder.rb +23 -23
  19. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  20. data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
  21. data/lib/gir_ffi/builders/object_builder.rb +10 -12
  22. data/lib/gir_ffi/builders/type_builder.rb +9 -9
  23. data/lib/gir_ffi/builders/user_defined_builder.rb +24 -26
  24. data/lib/gir_ffi/class_base.rb +1 -3
  25. data/lib/gir_ffi/core.rb +0 -5
  26. data/lib/gir_ffi/in_pointer.rb +6 -6
  27. data/lib/gir_ffi/info_ext/i_signal_info.rb +8 -6
  28. data/lib/gir_ffi/info_ext/i_type_info.rb +18 -24
  29. data/lib/gir_ffi/instance_method_setup.rb +3 -1
  30. data/lib/gir_ffi/object_base.rb +5 -5
  31. data/lib/gir_ffi/struct_like_base.rb +0 -1
  32. data/lib/gir_ffi/type_map.rb +30 -30
  33. data/lib/gir_ffi/unintrospectable_type_info.rb +2 -2
  34. data/lib/gir_ffi/user_defined_object_info.rb +0 -3
  35. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  36. data/lib/gir_ffi/version.rb +1 -1
  37. data/lib/gir_ffi/zero_terminated.rb +1 -1
  38. data/lib/gir_ffi-base/gobject.rb +1 -1
  39. metadata +18 -12
@@ -23,7 +23,7 @@ module GirFFI
23
23
 
24
24
  def initialize(receiver_info, info, builder_class)
25
25
  super(info, CallbackReturnValueBuilder,
26
- receiver_info: receiver_info,
26
+ receiver_info: receiver_info,
27
27
  argument_builder_class: builder_class)
28
28
  end
29
29
 
@@ -21,7 +21,7 @@ module GirFFI
21
21
 
22
22
  def initialize(receiver_info, info)
23
23
  super(info, ClosureReturnValueBuilder,
24
- receiver_info: receiver_info,
24
+ receiver_info: receiver_info,
25
25
  argument_builder_class: ClosureArgumentBuilder)
26
26
  end
27
27
 
@@ -32,7 +32,7 @@ module GirFFI
32
32
  end
33
33
 
34
34
  def method_arguments
35
- %w(closure return_value param_values _invocation_hint _marshal_data)
35
+ %w[closure return_value param_values _invocation_hint _marshal_data]
36
36
  end
37
37
 
38
38
  def preparation
@@ -18,7 +18,7 @@ module GirFFI
18
18
  ObjectBase
19
19
  end
20
20
 
21
- def object_class_struct
21
+ def class_struct_class
22
22
  GObject::TypeClass
23
23
  end
24
24
 
@@ -35,12 +35,12 @@ module GirFFI
35
35
  seek_in_ancestor_infos { |info| info.find_property property_name }
36
36
  end
37
37
 
38
- def object_class_struct
39
- @object_class_struct ||=
38
+ def class_struct_class
39
+ @class_struct_class ||=
40
40
  begin
41
- parent_struct = parent_builder.object_class_struct
42
- if object_class_struct_info
43
- StructBuilder.new(object_class_struct_info,
41
+ parent_struct = parent_builder.class_struct_class
42
+ if class_struct_info
43
+ StructBuilder.new(class_struct_info,
44
44
  superclass: parent_struct).build_class
45
45
  else
46
46
  parent_struct
@@ -58,12 +58,6 @@ module GirFFI
58
58
  end
59
59
  end
60
60
 
61
- protected
62
-
63
- def object_class_struct_info
64
- @object_class_struct_info ||= info.class_struct
65
- end
66
-
67
61
  private
68
62
 
69
63
  def setup_class
@@ -76,6 +70,10 @@ module GirFFI
76
70
  setup_initializer
77
71
  end
78
72
 
73
+ def class_struct_info
74
+ @class_struct_info ||= info.class_struct
75
+ end
76
+
79
77
  # FIXME: Private method only used in subclass
80
78
  def layout_superclass
81
79
  GirFFI::Struct
@@ -21,16 +21,16 @@ module GirFFI
21
21
  CACHE = {}
22
22
 
23
23
  TYPE_MAP = {
24
- callback: CallbackBuilder,
25
- constant: ConstantBuilder,
26
- enum: EnumBuilder,
27
- flags: FlagsBuilder,
28
- interface: InterfaceBuilder,
29
- object: ObjectBuilder,
30
- struct: StructBuilder,
31
- union: UnionBuilder,
24
+ callback: CallbackBuilder,
25
+ constant: ConstantBuilder,
26
+ enum: EnumBuilder,
27
+ flags: FlagsBuilder,
28
+ interface: InterfaceBuilder,
29
+ object: ObjectBuilder,
30
+ struct: StructBuilder,
31
+ union: UnionBuilder,
32
32
  unintrospectable_boxed: UnintrospectableBoxedBuilder,
33
- unintrospectable: UnintrospectableBuilder
33
+ unintrospectable: UnintrospectableBuilder
34
34
  }.freeze
35
35
 
36
36
  def self.build(info)
@@ -78,17 +78,17 @@ module GirFFI
78
78
  end
79
79
 
80
80
  def class_init_proc
81
- proc do |type_class_or_ptr, _data|
82
- object_class_ptr = type_class_or_ptr.to_ptr
83
- setup_properties object_class_ptr
84
- setup_vfuncs object_class_ptr
81
+ proc do |type_class, _data|
82
+ class_struct_ptr = type_class.to_ptr
83
+ setup_properties class_struct_ptr
84
+ setup_vfuncs class_struct_ptr
85
85
  end
86
86
  end
87
87
 
88
88
  def interface_init_proc(interface)
89
- proc do |interface_or_ptr, _data|
90
- interface_ptr = interface_or_ptr.to_ptr
91
- setup_interface_vfuncs interface, interface_ptr
89
+ proc do |type_interface, _data|
90
+ interface_struct_ptr = type_interface.to_ptr
91
+ setup_interface_vfuncs interface, interface_struct_ptr
92
92
  end
93
93
  end
94
94
 
@@ -108,42 +108,44 @@ module GirFFI
108
108
  parent_gtype.class_size + interface_gtypes.sum(&:class_size)
109
109
  end
110
110
 
111
- def setup_properties(object_class_ptr)
112
- object_class = GObject::ObjectClass.wrap object_class_ptr
111
+ def setup_properties(class_struct_ptr)
112
+ class_struct = GObject::ObjectClass.wrap class_struct_ptr
113
113
 
114
- object_class.get_property = property_getter
115
- object_class.set_property = property_setter
114
+ class_struct.struct[:get_property] = property_getter_func
115
+ class_struct.struct[:set_property] = property_setter_func
116
116
 
117
117
  property_fields.each_with_index do |property, index|
118
- object_class.install_property index + 1, property.param_spec
118
+ class_struct.install_property index + 1, property.param_spec
119
119
  end
120
120
  end
121
121
 
122
- def property_getter
123
- proc do |object, _property_id, value, pspec|
122
+ def property_getter_func
123
+ getter = proc do |object, _property_id, value, pspec|
124
124
  value.set_value object.send(pspec.accessor_name)
125
125
  end
126
+ GObject::ObjectGetPropertyFunc.from getter
126
127
  end
127
128
 
128
- def property_setter
129
- proc do |object, _property_id, value, pspec|
129
+ def property_setter_func
130
+ setter = proc do |object, _property_id, value, pspec|
130
131
  object.send("#{pspec.accessor_name}=", value.get_value)
131
132
  end
133
+ GObject::ObjectSetPropertyFunc.from setter
132
134
  end
133
135
 
134
- def setup_vfuncs(object_class_ptr)
136
+ def setup_vfuncs(class_struct_ptr)
135
137
  super_class_struct =
136
- superclass.gir_ffi_builder.object_class_struct::Struct.new(object_class_ptr)
138
+ superclass.gir_ffi_builder.class_struct_class.wrap(class_struct_ptr)
137
139
 
138
140
  info.vfunc_implementations.each do |impl|
139
141
  setup_vfunc parent_info, super_class_struct, impl
140
142
  end
141
143
  end
142
144
 
143
- def setup_interface_vfuncs(interface, interface_ptr)
145
+ def setup_interface_vfuncs(interface, interface_struct_ptr)
144
146
  interface_builder = interface.gir_ffi_builder
145
147
 
146
- interface_struct = interface_builder.interface_struct::Struct.new(interface_ptr)
148
+ interface_struct = interface_builder.interface_struct.wrap(interface_struct_ptr)
147
149
  interface_info = interface_builder.info
148
150
 
149
151
  info.vfunc_implementations.each do |impl|
@@ -156,12 +158,8 @@ module GirFFI
156
158
  vfunc_info = ancestor_info.find_vfunc vfunc_name.to_s
157
159
  return unless vfunc_info
158
160
 
159
- install_vfunc ancestor_struct, vfunc_name, vfunc_info, impl.implementation
160
- end
161
-
162
- def install_vfunc(container_struct, vfunc_name, vfunc_info, implementation)
163
- vfunc = VFuncBuilder.new(vfunc_info).build_class
164
- container_struct[vfunc_name] = vfunc.from implementation
161
+ vfunc_class = VFuncBuilder.new(vfunc_info).build_class
162
+ ancestor_struct.struct[vfunc_name] = vfunc_class.from(impl.implementation)
165
163
  end
166
164
 
167
165
  def properties
@@ -29,10 +29,8 @@ module GirFFI
29
29
  send method_name, *arguments, &block
30
30
  end
31
31
 
32
- # NOTE: JRuby should fix FFI::MemoryPointer#== to return true for
33
- # equivalent FFI::Pointer. For now, user to_ptr.address
34
32
  def ==(other)
35
- other.class == self.class && to_ptr.address == other.to_ptr.address
33
+ other.class == self.class && to_ptr == other.to_ptr
36
34
  end
37
35
 
38
36
  def self.setup_and_call(method, arguments, &block)
data/lib/gir_ffi/core.rb CHANGED
@@ -40,11 +40,6 @@ module GirFFI
40
40
  raise ArgumentError, "#{klass} is not a user-defined class"
41
41
  end
42
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
48
43
  Builders::UserDefinedBuilder.new(info).build_class
49
44
 
50
45
  klass.gtype
@@ -75,13 +75,13 @@ module GirFFI
75
75
  end
76
76
 
77
77
  def from_module_type_array(type, ary)
78
- if type == GObject::Value
79
- from_gvalue_array type, ary
80
- elsif type < GirFFI::ClassBase ||
81
- type.singleton_class < GirFFI::InterfaceBase
82
- from_struct_array type, ary
83
- elsif type.singleton_class < GirFFI::EnumBase
78
+ return from_gvalue_array(type, ary) if type == GObject::Value
79
+
80
+ case type
81
+ when GirFFI::EnumLikeBase
84
82
  from_enum_array type, ary
83
+ when GirFFI::RegisteredTypeBase
84
+ from_struct_array type, ary
85
85
  else
86
86
  raise NotImplementedError, type
87
87
  end
@@ -17,8 +17,14 @@ module GirFFI
17
17
  end
18
18
 
19
19
  def arguments_to_gvalues(instance, arguments)
20
- arg_g_values = argument_types.zip(arguments).map do |type, arg|
21
- type.make_g_value.tap { |it| it.set_value arg }
20
+ arg_g_values = args.zip(arguments).map do |arg_info, arg|
21
+ case arg_info.direction
22
+ when :in
23
+ type = arg_info.argument_type
24
+ type.make_g_value.tap { |it| it.set_value arg }
25
+ else
26
+ raise NotImplementedError
27
+ end
22
28
  end
23
29
 
24
30
  arg_g_values.unshift GObject::Value.wrap_instance(instance)
@@ -27,10 +33,6 @@ module GirFFI
27
33
  def gvalue_for_return_value
28
34
  return_type.make_g_value
29
35
  end
30
-
31
- def argument_types
32
- @argument_types ||= args.map(&:argument_type)
33
- end
34
36
  end
35
37
  end
36
38
  end
@@ -8,17 +8,17 @@ module GirFFI
8
8
  module ITypeInfo
9
9
  FLATTENED_TAG_TO_GTYPE_MAP = {
10
10
  gboolean: GObject::TYPE_BOOLEAN,
11
- gint32: GObject::TYPE_INT,
12
- gint64: GObject::TYPE_INT64,
13
- guint64: GObject::TYPE_UINT64,
14
- void: GObject::TYPE_NONE
11
+ gint32: GObject::TYPE_INT,
12
+ gint64: GObject::TYPE_INT64,
13
+ guint64: GObject::TYPE_UINT64,
14
+ void: GObject::TYPE_NONE
15
15
  }.freeze
16
16
 
17
17
  FLATTENED_TAG_POINTER_TO_GTYPE_MAP = {
18
18
  array: GObject::TYPE_ARRAY,
19
19
  ghash: GObject::TYPE_HASH_TABLE,
20
- strv: GObject::TYPE_STRV,
21
- utf8: GObject::TYPE_STRING
20
+ strv: GObject::TYPE_STRV,
21
+ utf8: GObject::TYPE_STRING
22
22
  }.freeze
23
23
 
24
24
  def gtype
@@ -85,17 +85,17 @@ module GirFFI
85
85
  end
86
86
 
87
87
  TAG_TO_WRAPPER_CLASS_MAP = {
88
- array: "GLib::Array",
89
- byte_array: "GLib::ByteArray",
90
- c: "GirFFI::SizedArray",
91
- error: "GLib::Error",
92
- ghash: "GLib::HashTable",
93
- glist: "GLib::List",
94
- gslist: "GLib::SList",
95
- ptr_array: "GLib::PtrArray",
96
- strv: "GLib::Strv",
97
- utf8: "GirFFI::InPointer", # TODO: Create a string-like class
98
- void: "GirFFI::InPointer", # TODO: Create a void-pointer class
88
+ array: "GLib::Array",
89
+ byte_array: "GLib::ByteArray",
90
+ c: "GirFFI::SizedArray",
91
+ error: "GLib::Error",
92
+ ghash: "GLib::HashTable",
93
+ glist: "GLib::List",
94
+ gslist: "GLib::SList",
95
+ ptr_array: "GLib::PtrArray",
96
+ strv: "GLib::Strv",
97
+ utf8: "GirFFI::InPointer", # TODO: Create a string-like class
98
+ void: "GirFFI::InPointer", # TODO: Create a void-pointer class
99
99
  zero_terminated: "GirFFI::ZeroTerminated"
100
100
  }.freeze
101
101
 
@@ -214,13 +214,7 @@ module GirFFI
214
214
  end
215
215
 
216
216
  def subtype_ffi_type(index)
217
- subtype = param_type(index).to_ffi_type
218
- if subtype == :pointer
219
- # NOTE: Don't use pointer directly to appease JRuby.
220
- :"uint#{FFI.type_size(:pointer) * 8}"
221
- else
222
- subtype
223
- end
217
+ param_type(index).to_ffi_type
224
218
  end
225
219
 
226
220
  def flattened_array_type
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GirFFI
4
- # Methods for setting up instance methods
4
+ # Methods for setting up instance methods.
5
+ #
6
+ # Depends on .gir_ffi_builder being defined in the extending class.
5
7
  module InstanceMethodSetup
6
8
  def setup_instance_method(name)
7
9
  gir_ffi_builder.setup_instance_method name
@@ -7,8 +7,8 @@ module GirFFI
7
7
  class ObjectBase < ClassBase
8
8
  extend FFI::DataConverter
9
9
 
10
- def object_class
11
- self.class.object_class
10
+ def class_struct
11
+ self.class.class_struct
12
12
  end
13
13
 
14
14
  def self.native_type
@@ -64,11 +64,11 @@ module GirFFI
64
64
  raise GirFFI::SignalNotFoundError.new(name, self)
65
65
  end
66
66
 
67
- def self.object_class
68
- @object_class ||=
67
+ def self.class_struct
68
+ @class_struct ||=
69
69
  begin
70
70
  ptr = GObject::Lib.g_type_class_ref(gtype)
71
- gir_ffi_builder.object_class_struct.wrap ptr
71
+ gir_ffi_builder.class_struct_class.wrap ptr
72
72
  end
73
73
  end
74
74
 
@@ -22,7 +22,6 @@ module GirFFI
22
22
  self
23
23
  end
24
24
 
25
- # NOTE: Needed for JRuby's FFI
26
25
  def to_native(value, _context)
27
26
  value.struct
28
27
  end
@@ -10,38 +10,38 @@ module GirFFI
10
10
  gsize_type = "uint#{sz}".to_sym
11
11
 
12
12
  TAG_TYPE_MAP = {
13
- enum: :int32,
14
- flags: :int32,
15
- ghash: :pointer,
16
- glist: :pointer,
17
- gslist: :pointer,
18
- strv: :pointer,
13
+ enum: :int32,
14
+ flags: :int32,
15
+ ghash: :pointer,
16
+ glist: :pointer,
17
+ gslist: :pointer,
18
+ strv: :pointer,
19
19
  interface: :pointer,
20
- error: :pointer,
20
+ error: :pointer,
21
21
  ptr_array: :pointer,
22
- array: :pointer,
23
- c: GirFFI::SizedArray,
24
- utf8: :pointer,
25
- filename: :pointer,
26
- GType: gsize_type,
27
- gboolean: GirFFI::Boolean,
28
- gunichar: :uint32,
29
- gint8: :int8,
30
- guint8: :uint8,
31
- gint16: :int16,
32
- guint16: :uint16,
33
- gint: :int,
34
- guint: :uint,
35
- gint32: :int32,
36
- guint32: :uint32,
37
- gint64: :int64,
38
- guint64: :uint64,
39
- glong: :long,
40
- gulong: :ulong,
41
- gsize: gsize_type,
42
- gfloat: :float,
43
- gdouble: :double,
44
- void: :void
22
+ array: :pointer,
23
+ c: GirFFI::SizedArray,
24
+ utf8: :pointer,
25
+ filename: :pointer,
26
+ GType: gsize_type,
27
+ gboolean: GirFFI::Boolean,
28
+ gunichar: :uint32,
29
+ gint8: :int8,
30
+ guint8: :uint8,
31
+ gint16: :int16,
32
+ guint16: :uint16,
33
+ gint: :int,
34
+ guint: :uint,
35
+ gint32: :int32,
36
+ guint32: :uint32,
37
+ gint64: :int64,
38
+ guint64: :uint64,
39
+ glong: :long,
40
+ gulong: :ulong,
41
+ gsize: gsize_type,
42
+ gfloat: :float,
43
+ gdouble: :double,
44
+ void: :void
45
45
  }.freeze
46
46
 
47
47
  def self.map_basic_type(type)
@@ -37,9 +37,9 @@ module GirFFI
37
37
  end
38
38
 
39
39
  def interfaces
40
- @gobject.type_interfaces(@g_type).map do |gtype|
40
+ @gobject.type_interfaces(@g_type).filter_map do |gtype|
41
41
  @gir.find_by_gtype gtype
42
- end.compact
42
+ end
43
43
  end
44
44
 
45
45
  def fields
@@ -13,9 +13,6 @@ 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.
18
- yield self if block_given?
19
16
  end
20
17
 
21
18
  def described_class
@@ -15,21 +15,21 @@ module GirFFI
15
15
  # TODO: Unify with InfoExt::ITypeInfo.flattened_tag_to_gtype_map
16
16
  G_TYPE_TAG_MAP = {
17
17
  GObject::TYPE_BOOLEAN => :gboolean,
18
- GObject::TYPE_CHAR => :gint8,
19
- GObject::TYPE_UCHAR => :guint8,
20
- GObject::TYPE_FLOAT => :gfloat,
21
- GObject::TYPE_DOUBLE => :gdouble,
22
- GObject::TYPE_INT => :gint,
23
- GObject::TYPE_UINT => :guint,
24
- GObject::TYPE_LONG => :glong,
25
- GObject::TYPE_ULONG => :gulong,
26
- GObject::TYPE_INT64 => :gint64,
27
- GObject::TYPE_UINT64 => :guint64,
28
- GObject::TYPE_ENUM => :interface,
29
- GObject::TYPE_FLAGS => :interface,
30
- GObject::TYPE_STRING => :utf8,
31
- GObject::TYPE_BOXED => :interface,
32
- GObject::TYPE_OBJECT => :interface
18
+ GObject::TYPE_CHAR => :gint8,
19
+ GObject::TYPE_UCHAR => :guint8,
20
+ GObject::TYPE_FLOAT => :gfloat,
21
+ GObject::TYPE_DOUBLE => :gdouble,
22
+ GObject::TYPE_INT => :gint,
23
+ GObject::TYPE_UINT => :guint,
24
+ GObject::TYPE_LONG => :glong,
25
+ GObject::TYPE_ULONG => :gulong,
26
+ GObject::TYPE_INT64 => :gint64,
27
+ GObject::TYPE_UINT64 => :guint64,
28
+ GObject::TYPE_ENUM => :interface,
29
+ GObject::TYPE_FLAGS => :interface,
30
+ GObject::TYPE_STRING => :utf8,
31
+ GObject::TYPE_BOXED => :interface,
32
+ GObject::TYPE_OBJECT => :interface
33
33
  }.freeze
34
34
 
35
35
  def tag
@@ -39,21 +39,21 @@ module GirFFI
39
39
  # TODO: Unify with InfoExt::ITypeInfo.flattened_tag_to_gtype_map
40
40
  G_TYPE_POINTER_MAP = {
41
41
  GObject::TYPE_BOOLEAN => false,
42
- GObject::TYPE_CHAR => false,
43
- GObject::TYPE_UCHAR => false,
44
- GObject::TYPE_FLOAT => false,
45
- GObject::TYPE_DOUBLE => false,
46
- GObject::TYPE_INT => false,
47
- GObject::TYPE_UINT => false,
48
- GObject::TYPE_LONG => false,
49
- GObject::TYPE_ULONG => false,
50
- GObject::TYPE_INT64 => false,
51
- GObject::TYPE_UINT64 => false,
52
- GObject::TYPE_ENUM => false,
53
- GObject::TYPE_FLAGS => false,
54
- GObject::TYPE_STRING => true,
55
- GObject::TYPE_BOXED => true,
56
- GObject::TYPE_OBJECT => true
42
+ GObject::TYPE_CHAR => false,
43
+ GObject::TYPE_UCHAR => false,
44
+ GObject::TYPE_FLOAT => false,
45
+ GObject::TYPE_DOUBLE => false,
46
+ GObject::TYPE_INT => false,
47
+ GObject::TYPE_UINT => false,
48
+ GObject::TYPE_LONG => false,
49
+ GObject::TYPE_ULONG => false,
50
+ GObject::TYPE_INT64 => false,
51
+ GObject::TYPE_UINT64 => false,
52
+ GObject::TYPE_ENUM => false,
53
+ GObject::TYPE_FLAGS => false,
54
+ GObject::TYPE_STRING => true,
55
+ GObject::TYPE_BOXED => true,
56
+ GObject::TYPE_OBJECT => true
57
57
  }.freeze
58
58
 
59
59
  def pointer?
@@ -61,9 +61,9 @@ module GirFFI
61
61
  end
62
62
 
63
63
  G_TYPE_INTERFACE_TAG_MAP = {
64
- GObject::TYPE_ENUM => :enum,
65
- GObject::TYPE_FLAGS => :flags,
66
- GObject::TYPE_BOXED => :struct,
64
+ GObject::TYPE_ENUM => :enum,
65
+ GObject::TYPE_FLAGS => :flags,
66
+ GObject::TYPE_BOXED => :struct,
67
67
  GObject::TYPE_OBJECT => :object
68
68
  }.freeze
69
69
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Current GirFFI version
4
4
  module GirFFI
5
- VERSION = "0.15.9"
5
+ VERSION = "0.16.0"
6
6
  end
@@ -85,7 +85,7 @@ module GirFFI
85
85
  :pointer
86
86
  elsif ffi_type.is_a? Symbol
87
87
  :numeric
88
- elsif ffi_type < GirFFI::ClassBase
88
+ elsif ffi_type < GirFFI::ClassBase # rubocop:disable Lint/DuplicateBranch
89
89
  :pointer
90
90
  elsif ffi_type.singleton_class.include? GirFFI::EnumBase
91
91
  :enum
@@ -7,7 +7,7 @@ require "gir_ffi-base/gobject/lib"
7
7
 
8
8
  # The part of the GObject namespace that is needed by GirFFI.
9
9
  #
10
- # :reek:TooManyConstants: because it needs to hold the type constants.
10
+ # :reek:TooManyConstants because it needs to hold the type constants.
11
11
  module GObject
12
12
  def self.type_from_name(name)
13
13
  Lib.g_type_from_name name