gir_ffi 0.7.10 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +6 -0
  3. data/Gemfile +3 -1
  4. data/README.md +5 -2
  5. data/lib/ffi-glib.rb +1 -0
  6. data/lib/ffi-glib/array.rb +6 -6
  7. data/lib/ffi-glib/array_methods.rb +1 -1
  8. data/lib/ffi-glib/byte_array.rb +1 -1
  9. data/lib/ffi-glib/bytes.rb +3 -3
  10. data/lib/ffi-glib/container_class_methods.rb +2 -2
  11. data/lib/ffi-glib/error.rb +2 -2
  12. data/lib/ffi-glib/hash_table.rb +9 -9
  13. data/lib/ffi-glib/iconv.rb +1 -1
  14. data/lib/ffi-glib/list.rb +2 -2
  15. data/lib/ffi-glib/list_methods.rb +8 -7
  16. data/lib/ffi-glib/main_loop.rb +1 -1
  17. data/lib/ffi-glib/ptr_array.rb +7 -7
  18. data/lib/ffi-glib/s_list.rb +2 -2
  19. data/lib/ffi-glib/strv.rb +3 -3
  20. data/lib/ffi-glib/variant.rb +9 -2
  21. data/lib/ffi-gobject.rb +10 -10
  22. data/lib/ffi-gobject/closure.rb +1 -1
  23. data/lib/ffi-gobject/initially_unowned.rb +4 -3
  24. data/lib/ffi-gobject/object.rb +19 -19
  25. data/lib/ffi-gobject/object_class.rb +2 -2
  26. data/lib/ffi-gobject/ruby_closure.rb +5 -4
  27. data/lib/ffi-gobject/value.rb +15 -20
  28. data/lib/ffi-gobject_introspection/g_error.rb +1 -1
  29. data/lib/ffi-gobject_introspection/i_base_info.rb +6 -6
  30. data/lib/ffi-gobject_introspection/i_callable_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_enum_info.rb +2 -2
  32. data/lib/ffi-gobject_introspection/i_interface_info.rb +8 -8
  33. data/lib/ffi-gobject_introspection/i_object_info.rb +9 -9
  34. data/lib/ffi-gobject_introspection/i_repository.rb +13 -13
  35. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -2
  36. data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
  37. data/lib/ffi-gobject_introspection/i_union_info.rb +3 -3
  38. data/lib/ffi-gobject_introspection/lib.rb +4 -4
  39. data/lib/gir_ffi-base/glib/boolean.rb +4 -4
  40. data/lib/gir_ffi-base/glib/strv.rb +2 -2
  41. data/lib/gir_ffi/allocation_helper.rb +1 -1
  42. data/lib/gir_ffi/arg_helper.rb +8 -8
  43. data/lib/gir_ffi/boxed_base.rb +5 -9
  44. data/lib/gir_ffi/builder.rb +4 -4
  45. data/lib/gir_ffi/builder_helper.rb +3 -3
  46. data/lib/gir_ffi/builders/argument_builder_collection.rb +1 -1
  47. data/lib/gir_ffi/builders/base_argument_builder.rb +3 -3
  48. data/lib/gir_ffi/builders/base_method_builder.rb +71 -0
  49. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  50. data/lib/gir_ffi/builders/boxed_builder.rb +3 -2
  51. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +1 -1
  52. data/lib/gir_ffi/builders/closure_convertor.rb +1 -1
  53. data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +1 -1
  54. data/lib/gir_ffi/builders/constructor_builder.rb +52 -0
  55. data/lib/gir_ffi/builders/enum_builder.rb +3 -3
  56. data/lib/gir_ffi/builders/field_builder.rb +3 -2
  57. data/lib/gir_ffi/builders/function_builder.rb +9 -50
  58. data/lib/gir_ffi/builders/initializer_builder.rb +32 -0
  59. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +16 -0
  60. data/lib/gir_ffi/builders/mapping_method_builder.rb +7 -5
  61. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -3
  62. data/lib/gir_ffi/builders/method_template.rb +1 -1
  63. data/lib/gir_ffi/builders/module_builder.rb +8 -7
  64. data/lib/gir_ffi/builders/null_convertor.rb +1 -1
  65. data/lib/gir_ffi/builders/null_return_value_builder.rb +21 -0
  66. data/lib/gir_ffi/builders/object_builder.rb +3 -3
  67. data/lib/gir_ffi/builders/property_builder.rb +1 -1
  68. data/lib/gir_ffi/builders/registered_type_builder.rb +31 -15
  69. data/lib/gir_ffi/builders/return_value_builder.rb +1 -14
  70. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +2 -2
  71. data/lib/gir_ffi/builders/signal_closure_builder.rb +1 -1
  72. data/lib/gir_ffi/builders/type_builder.rb +2 -2
  73. data/lib/gir_ffi/builders/unintrospectable_builder.rb +1 -1
  74. data/lib/gir_ffi/builders/user_defined_builder.rb +11 -11
  75. data/lib/gir_ffi/builders/vfunc_builder.rb +1 -1
  76. data/lib/gir_ffi/callback_base.rb +8 -13
  77. data/lib/gir_ffi/class_base.rb +41 -45
  78. data/lib/gir_ffi/core.rb +2 -2
  79. data/lib/gir_ffi/enum_base.rb +9 -14
  80. data/lib/gir_ffi/field_argument_info.rb +1 -1
  81. data/lib/gir_ffi/g_type.rb +1 -1
  82. data/lib/gir_ffi/glib_error.rb +1 -1
  83. data/lib/gir_ffi/in_out_pointer.rb +4 -4
  84. data/lib/gir_ffi/in_pointer.rb +12 -12
  85. data/lib/gir_ffi/info_ext/i_arg_info.rb +0 -10
  86. data/lib/gir_ffi/info_ext/i_callback_info.rb +0 -5
  87. data/lib/gir_ffi/info_ext/i_property_info.rb +1 -1
  88. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +1 -6
  89. data/lib/gir_ffi/info_ext/i_signal_info.rb +2 -2
  90. data/lib/gir_ffi/info_ext/i_type_info.rb +2 -17
  91. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +0 -5
  92. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  93. data/lib/gir_ffi/interface_base.rb +2 -7
  94. data/lib/gir_ffi/method_stubber.rb +1 -1
  95. data/lib/gir_ffi/module_base.rb +4 -7
  96. data/lib/gir_ffi/object_base.rb +4 -9
  97. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  98. data/lib/gir_ffi/receiver_type_info.rb +1 -1
  99. data/lib/gir_ffi/registered_type_base.rb +0 -5
  100. data/lib/gir_ffi/return_value_info.rb +1 -1
  101. data/lib/gir_ffi/sized_array.rb +10 -10
  102. data/lib/gir_ffi/type_map.rb +3 -3
  103. data/lib/gir_ffi/unintrospectable_type_info.rb +3 -1
  104. data/lib/gir_ffi/user_data_argument_info.rb +1 -1
  105. data/lib/gir_ffi/user_defined_property_info.rb +1 -1
  106. data/lib/gir_ffi/user_defined_type_info.rb +4 -4
  107. data/lib/gir_ffi/version.rb +1 -1
  108. data/lib/gir_ffi/vfunc_implementation.rb +1 -1
  109. data/lib/gir_ffi/zero_terminated.rb +6 -6
  110. data/test/base_test_helper.rb +13 -13
  111. data/test/ffi-gobject/object_test.rb +22 -1
  112. data/test/ffi-gobject/value_test.rb +24 -24
  113. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +4 -4
  114. data/test/ffi-gobject_introspection/i_type_info_test.rb +2 -2
  115. data/test/ffi-gobject_test.rb +2 -2
  116. data/test/gir_ffi/builders/argument_builder_test.rb +60 -60
  117. data/test/gir_ffi/builders/callback_argument_builder_test.rb +8 -8
  118. data/test/gir_ffi/builders/callback_builder_test.rb +4 -4
  119. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +8 -8
  120. data/test/gir_ffi/builders/constructor_builder_test.rb +34 -0
  121. data/test/gir_ffi/builders/function_builder_test.rb +8 -24
  122. data/test/gir_ffi/builders/initializer_builder_test.rb +36 -0
  123. data/test/gir_ffi/builders/interface_builder_test.rb +2 -2
  124. data/test/gir_ffi/builders/object_builder_test.rb +6 -18
  125. data/test/gir_ffi/builders/property_builder_test.rb +2 -2
  126. data/test/gir_ffi/builders/return_value_builder_test.rb +54 -79
  127. data/test/gir_ffi/builders/signal_closure_builder_test.rb +14 -14
  128. data/test/gir_ffi/builders/user_defined_builder_test.rb +8 -8
  129. data/test/gir_ffi/builders/vfunc_builder_test.rb +22 -22
  130. data/test/gir_ffi/class_base_test.rb +9 -7
  131. data/test/gir_ffi/in_pointer_test.rb +1 -1
  132. data/test/gir_ffi/info_ext/i_callable_info_test.rb +2 -2
  133. data/test/gir_ffi/info_ext/i_callback_info_test.rb +2 -2
  134. data/test/gir_ffi/info_ext/i_field_info_test.rb +2 -2
  135. data/test/gir_ffi/info_ext/i_function_info_test.rb +2 -2
  136. data/test/gir_ffi/info_ext/i_signal_info_test.rb +2 -2
  137. data/test/gir_ffi/info_ext/i_type_info_test.rb +18 -18
  138. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +2 -2
  139. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +2 -2
  140. data/test/gir_ffi/info_ext/safe_function_name_test.rb +2 -2
  141. data/test/gir_ffi/method_stubber_test.rb +6 -6
  142. data/test/gir_ffi/user_defined_type_info_test.rb +3 -3
  143. data/test/gir_ffi_test_helper.rb +12 -12
  144. data/test/integration/derived_classes_test.rb +7 -3
  145. data/test/integration/generated_gimarshallingtests_test.rb +10 -10
  146. data/test/integration/generated_regress_test.rb +11 -20
  147. data/test/introspection_test_helper.rb +1 -1
  148. data/test/minitest/stats_plugin.rb +3 -3
  149. metadata +9 -3
  150. data/lib/gir_ffi/builders/constructor_result_convertor.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c78011dfb34b7799b25df253c661de0b9bce5115
4
- data.tar.gz: d83510e42c93f89563af82eb7e4d4316def805f5
3
+ metadata.gz: 3de30b661f43f74216127542e5c68adc520c2fae
4
+ data.tar.gz: d517d1dd678fa2e4c5fb13547c6a225286afce44
5
5
  SHA512:
6
- metadata.gz: bd02e60de28ecdeff0b15eed790feed6c2e744df44bd473b10914573acced71c6c6613e55cf7f5bfbd62e21501fa6322274bc341be2a1de943ea574fdee82409
7
- data.tar.gz: de8a61b783c0f46e9b83acb5157a3305bb66abda3e201f930021acf78786ea12b9d743e3c6783015df5b7663c5bb4c0c7ff430ff57cb64c6b5bed3b9fcc9c0ff
6
+ metadata.gz: 66971838b0f54a2d34b24ac782564a09cfd675236520a4212ec41af35acea4fa3ab212daab633b29b8af83d3af0a12b736656d4a50f032cd432d4dca831a4bba
7
+ data.tar.gz: 3a419c93f07af1e2781fb2afc2d6e4a057bbbd0802acd99d0a9ce3afea146520050615e826d38778a6e07b5edc494e792568b61f06d970caadcff4599e2d8f09
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.0 / 2015-09-18
4
+
5
+ * Drop official support for CRuby 1.9.3
6
+ * Officially support JRuby 9.0.0.0
7
+ * Change handling of initializers in custom subclasses
8
+
3
9
  ## 0.7.10 / 2015-09-16
4
10
 
5
11
  * Allow ffi-gobject and ffi-glib to be required directly
data/Gemfile CHANGED
@@ -4,7 +4,9 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  if ENV['CI']
7
- gem 'coveralls', type: :development, platform: :mri
7
+ if ENV['TRAVIS_RUBY_VERSION'] == '2.2'
8
+ gem 'coveralls', type: :development
9
+ end
8
10
  else
9
11
  gem 'simplecov', '~> 0.10.0', type: :development, platform: :mri
10
12
  gem 'pry', '~> 0.10.0', type: :development
data/README.md CHANGED
@@ -40,14 +40,17 @@ Ruby bindings for GNOME using the GObject Introspection Repository.
40
40
  # Call a function in the namespace
41
41
  Gio.dbus_is_name "foo" # => false
42
42
 
43
+ See the [documentation](docs/Documentation.md) for more usage information.
44
+
43
45
  ## Install
44
46
 
45
47
  gem install gir_ffi
46
48
 
47
49
  ## Requirements
48
50
 
49
- GirFFI should work on CRuby 1.9.3, 2.0, 2.1 and 2.2, JRuby in 1.9 or 2.0 mode,
50
- and on Rubinius.
51
+ GirFFI should work on CRuby 2.0.0, 2.1 and 2.2, JRuby 1.7.x in 1.9 or 2.0 mode,
52
+ JRuby 9.0.0.0, and on Rubinius. If you need support for CRuby 1.9.3, use
53
+ version 0.7.10.
51
54
 
52
55
  You will also need gobject-introspection installed with some
53
56
  introspection data.
@@ -48,5 +48,6 @@ module GLib
48
48
  attach_function :g_ptr_array_foreach, [:pointer, Func, :pointer], :pointer
49
49
 
50
50
  attach_function :g_iconv_open, [:pointer, :pointer], :pointer
51
+ attach_function :g_variant_ref_sink, [:pointer], :pointer
51
52
  end
52
53
  end
@@ -15,24 +15,24 @@ module GLib
15
15
 
16
16
  class << self; undef :new; end
17
17
 
18
- def self.new type
18
+ def self.new(type)
19
19
  ptr = Lib.g_array_new(0, 0, calculated_element_size(type))
20
20
  wrap type, ptr
21
21
  end
22
22
 
23
23
  # @api private
24
- def self.from_enumerable elmtype, it
24
+ def self.from_enumerable(elmtype, it)
25
25
  new(elmtype).tap { |arr| arr.append_vals it }
26
26
  end
27
27
 
28
28
  # @api private
29
- def self.calculated_element_size type
29
+ def self.calculated_element_size(type)
30
30
  ffi_type = GirFFI::TypeMap.type_specification_to_ffi_type(type)
31
31
  FFI.type_size(ffi_type)
32
32
  end
33
33
 
34
34
  # @override
35
- def append_vals ary
35
+ def append_vals(ary)
36
36
  bytes = GirFFI::InPointer.from_array element_type, ary
37
37
  Lib.g_array_append_vals(self, bytes, ary.length)
38
38
  self
@@ -54,12 +54,12 @@ module GLib
54
54
 
55
55
  alias_method :element_size, :get_element_size
56
56
 
57
- def == other
57
+ def ==(other)
58
58
  to_a == other.to_a
59
59
  end
60
60
 
61
61
  # @api private
62
- def reset_typespec typespec = nil
62
+ def reset_typespec(typespec = nil)
63
63
  if typespec
64
64
  @element_type = typespec
65
65
  check_element_size_match
@@ -2,7 +2,7 @@ module GLib
2
2
  # Common methods for GLib::Array and GLib::PtrArray
3
3
  module ArrayMethods
4
4
  # Re-implementation of the g_array_index and g_ptr_array_index macros
5
- def index idx
5
+ def index(idx)
6
6
  if idx >= length || idx < 0
7
7
  raise IndexError, "Index #{idx} outside of bounds 0..#{length - 1}"
8
8
  end
@@ -7,7 +7,7 @@ module GLib
7
7
  GirFFI::ArgHelper.ptr_to_utf8_length @struct[:data], @struct[:len]
8
8
  end
9
9
 
10
- def append data
10
+ def append(data)
11
11
  bytes = GirFFI::InPointer.from :utf8, data
12
12
  len = data.bytesize
13
13
  self.class.wrap(Lib.g_byte_array_append to_ptr, bytes, len)
@@ -17,11 +17,11 @@ module GLib
17
17
  GirFFI::SizedArray.wrap(:guint8, length, data_ptr)
18
18
  end
19
19
 
20
- def each &block
20
+ def each(&block)
21
21
  data.each(&block)
22
22
  end
23
23
 
24
- def self.from it
24
+ def self.from(it)
25
25
  case it
26
26
  when self
27
27
  it
@@ -36,7 +36,7 @@ module GLib
36
36
  undef new
37
37
  end
38
38
 
39
- def self.new arr
39
+ def self.new(arr)
40
40
  data = GirFFI::SizedArray.from :guint8, arr.size, arr
41
41
  wrap Lib.g_bytes_new data.to_ptr, data.size
42
42
  end
@@ -2,13 +2,13 @@ module GLib
2
2
  # Common methods for container classes: Array, PtrArray, List, SList and
3
3
  # HashTable.
4
4
  module ContainerClassMethods
5
- def wrap typespec, ptr
5
+ def wrap(typespec, ptr)
6
6
  super(ptr).tap do |container|
7
7
  container.reset_typespec typespec if container
8
8
  end
9
9
  end
10
10
 
11
- def from typespec = :void, it
11
+ def from(typespec = :void, it)
12
12
  case it
13
13
  when nil
14
14
  nil
@@ -5,11 +5,11 @@ module GLib
5
5
  class Error
6
6
  GIR_FFI_DOMAIN = GLib.quark_from_string('gir_ffi')
7
7
 
8
- def self.from_exception ex
8
+ def self.from_exception(ex)
9
9
  new_literal GIR_FFI_DOMAIN, 0, ex.message
10
10
  end
11
11
 
12
- def self.from it
12
+ def self.from(it)
13
13
  from_exception it
14
14
  end
15
15
  end
@@ -13,13 +13,13 @@ module GLib
13
13
 
14
14
  class << self; remove_method :new; end
15
15
 
16
- def self.new keytype, valtype
16
+ def self.new(keytype, valtype)
17
17
  wrap [keytype, valtype], Lib.g_hash_table_new(
18
18
  hash_function_for(keytype), equality_function_for(keytype))
19
19
  end
20
20
 
21
21
  # @api private
22
- def self.from_enumerable typespec, hash
22
+ def self.from_enumerable(typespec, hash)
23
23
  ghash = new(*typespec)
24
24
  hash.each do |key, val|
25
25
  ghash.insert key, val
@@ -28,7 +28,7 @@ module GLib
28
28
  end
29
29
 
30
30
  # @api private
31
- def self.hash_function_for keytype
31
+ def self.hash_function_for(keytype)
32
32
  case keytype
33
33
  when :utf8
34
34
  FFI::Function.new(:uint,
@@ -38,7 +38,7 @@ module GLib
38
38
  end
39
39
 
40
40
  # @api private
41
- def self.equality_function_for keytype
41
+ def self.equality_function_for(keytype)
42
42
  case keytype
43
43
  when :utf8
44
44
  FFI::Function.new(:int,
@@ -48,17 +48,17 @@ module GLib
48
48
  end
49
49
 
50
50
  # @api private
51
- def self.find_support_function name
51
+ def self.find_support_function(name)
52
52
  lib = ::GLib::Lib.ffi_libraries.first
53
53
  lib.find_function(name)
54
54
  end
55
55
 
56
56
  def each
57
- prc = proc {|keyptr, valptr, _userdata|
57
+ prc = proc do|keyptr, valptr, _userdata|
58
58
  key = GirFFI::ArgHelper.cast_from_pointer key_type, keyptr
59
59
  val = GirFFI::ArgHelper.cast_from_pointer value_type, valptr
60
60
  yield key, val
61
- }
61
+ end
62
62
  callback = GLib::HFunc.from prc
63
63
  ::GLib::Lib.g_hash_table_foreach to_ptr, callback, nil
64
64
  end
@@ -68,14 +68,14 @@ module GLib
68
68
  end
69
69
 
70
70
  # @override
71
- def insert key, value
71
+ def insert(key, value)
72
72
  keyptr = GirFFI::InPointer.from key_type, key
73
73
  valptr = GirFFI::InPointer.from value_type, value
74
74
  ::GLib::Lib.g_hash_table_insert to_ptr, keyptr, valptr
75
75
  end
76
76
 
77
77
  # @api private
78
- def reset_typespec typespec
78
+ def reset_typespec(typespec)
79
79
  @key_type, @value_type = *typespec
80
80
  self
81
81
  end
@@ -3,7 +3,7 @@ GLib.load_class :IConv
3
3
  module GLib
4
4
  # Overrides for IConv
5
5
  class IConv
6
- def self.open to_codeset, from_codeset
6
+ def self.open(to_codeset, from_codeset)
7
7
  to_ptr = GirFFI::InPointer.from(:utf8, to_codeset)
8
8
  from_ptr = GirFFI::InPointer.from(:utf8, from_codeset)
9
9
  result_ptr = Lib.g_iconv_open(to_ptr, from_ptr)
@@ -7,11 +7,11 @@ module GLib
7
7
  class List
8
8
  include ListMethods
9
9
 
10
- def self.from_enumerable type, arr
10
+ def self.from_enumerable(type, arr)
11
11
  arr.reduce(new type) { |lst, val| lst.append val }
12
12
  end
13
13
 
14
- def append data
14
+ def append(data)
15
15
  self.class.wrap(element_type,
16
16
  Lib.g_list_append(self, element_ptr_for(data)))
17
17
  end
@@ -6,7 +6,7 @@ module GLib
6
6
  include Enumerable
7
7
  attr_reader :element_type
8
8
 
9
- def self.included base
9
+ def self.included(base)
10
10
  # Override default field accessors.
11
11
  replace_method base, :next, :tail
12
12
  replace_method base, :data, :head
@@ -17,7 +17,7 @@ module GLib
17
17
  base.extend ContainerClassMethods
18
18
  end
19
19
 
20
- def self.replace_method base, old, new
20
+ def self.replace_method(base, old, new)
21
21
  base.class_eval do
22
22
  remove_method old
23
23
  alias_method old, new
@@ -39,12 +39,12 @@ module GLib
39
39
  GirFFI::ArgHelper.cast_from_pointer(element_type, @struct[:data])
40
40
  end
41
41
 
42
- def reset_typespec typespec
42
+ def reset_typespec(typespec)
43
43
  @element_type = typespec
44
44
  self
45
45
  end
46
46
 
47
- def == other
47
+ def ==(other)
48
48
  to_a == other.to_a
49
49
  end
50
50
 
@@ -61,14 +61,15 @@ module GLib
61
61
  element
62
62
  end
63
63
 
64
- def element_ptr_for data
64
+ def element_ptr_for(data)
65
65
  GirFFI::InPointer.from(element_type, data)
66
66
  end
67
67
 
68
68
  # Common class methods for List and SList
69
69
  module ListClassMethods
70
- def new type
71
- _real_new.tap do |it|
70
+ # TODO: Make this behave more like a real .new method
71
+ def new(type)
72
+ allocate.tap do |it|
72
73
  struct = self::Struct.new(FFI::Pointer.new(0))
73
74
  it.instance_variable_set :@struct, struct
74
75
  it.instance_variable_set :@element_type, type
@@ -13,7 +13,7 @@ module GLib
13
13
  FRAMERATE = 25
14
14
  DEFAULT_TIMEOUT = 1000 / FRAMERATE
15
15
 
16
- def initialize timeout = DEFAULT_TIMEOUT
16
+ def initialize(timeout = DEFAULT_TIMEOUT)
17
17
  @timeout = timeout
18
18
  end
19
19
 
@@ -21,29 +21,29 @@ module GLib
21
21
  remove_method :add if method_defined? :add
22
22
  end
23
23
 
24
- def self.new type
24
+ def self.new(type)
25
25
  wrap(type, Lib.g_ptr_array_new)
26
26
  end
27
27
 
28
- def self.from_enumerable type, it
28
+ def self.from_enumerable(type, it)
29
29
  new(type).tap { |arr| arr.add_array it }
30
30
  end
31
31
 
32
- def self.add array, data
32
+ def self.add(array, data)
33
33
  array.add data
34
34
  end
35
35
 
36
- def reset_typespec typespec
36
+ def reset_typespec(typespec)
37
37
  @element_type = typespec
38
38
  self
39
39
  end
40
40
 
41
- def add data
41
+ def add(data)
42
42
  ptr = GirFFI::InPointer.from element_type, data
43
43
  Lib.g_ptr_array_add self, ptr
44
44
  end
45
45
 
46
- def add_array ary
46
+ def add_array(ary)
47
47
  ary.each { |item| add item }
48
48
  end
49
49
 
@@ -65,7 +65,7 @@ module GLib
65
65
  @struct[:len]
66
66
  end
67
67
 
68
- def == other
68
+ def ==(other)
69
69
  to_a == other.to_a
70
70
  end
71
71
  end
@@ -7,11 +7,11 @@ module GLib
7
7
  class SList
8
8
  include ListMethods
9
9
 
10
- def self.from_enumerable type, arr
10
+ def self.from_enumerable(type, arr)
11
11
  arr.reverse.reduce(new type) { |lst, val| lst.prepend val }
12
12
  end
13
13
 
14
- def prepend data
14
+ def prepend(data)
15
15
  self.class.wrap(element_type,
16
16
  Lib.g_slist_prepend(self, element_ptr_for(data)))
17
17
  end
@@ -1,11 +1,11 @@
1
1
  module GLib
2
2
  # Extra methods for GLib::Strv. The bulk is defined in `gir_ffi-base/glib/strv.rb`
3
3
  class Strv
4
- def == other
4
+ def ==(other)
5
5
  to_a == other.to_a
6
6
  end
7
7
 
8
- def self.from it
8
+ def self.from(it)
9
9
  case it
10
10
  when nil
11
11
  nil
@@ -18,7 +18,7 @@ module GLib
18
18
  end
19
19
  end
20
20
 
21
- def self.from_enumerable enum
21
+ def self.from_enumerable(enum)
22
22
  wrap GirFFI::InPointer.from_array :utf8, enum
23
23
  end
24
24
  end
@@ -9,8 +9,15 @@ module GLib
9
9
  get_string_without_override.first
10
10
  end
11
11
 
12
- def self.constructor_wrap ptr
13
- super.tap(&:ref)
12
+ # Initializing method used in constructors. For Variant, this needs to sink
13
+ # the variant's floating reference.
14
+ #
15
+ # NOTE: This is very hard to test since it is not possible to get the
16
+ # variant's ref count directely. However, there is an error when running
17
+ # the tests on 32-bit systems.
18
+ def store_pointer(ptr)
19
+ super
20
+ ::GLib::Lib.g_variant_ref_sink ptr
14
21
  end
15
22
 
16
23
  alias_method :get_string_without_override, :get_string
@@ -14,31 +14,31 @@ require 'gir_ffi/builders/user_defined_builder'
14
14
 
15
15
  # Module representing GLib's GObject namespace.
16
16
  module GObject
17
- def self.type_from_instance_pointer inst_ptr
17
+ def self.type_from_instance_pointer(inst_ptr)
18
18
  return nil if inst_ptr.null?
19
19
  klsptr = inst_ptr.get_pointer 0
20
20
  GirFFI::InOutPointer.new(:GType, klsptr).to_value
21
21
  end
22
22
 
23
- def self.type_from_instance instance
23
+ def self.type_from_instance(instance)
24
24
  type_from_instance_pointer instance.to_ptr
25
25
  end
26
26
 
27
- def self.object_class_from_instance instance
27
+ def self.object_class_from_instance(instance)
28
28
  object_class_from_instance_pointer instance.to_ptr
29
29
  end
30
30
 
31
- def self.object_class_from_instance_pointer inst_ptr
31
+ def self.object_class_from_instance_pointer(inst_ptr)
32
32
  return nil if inst_ptr.null?
33
33
  klsptr = inst_ptr.get_pointer 0
34
34
  ObjectClass.wrap klsptr
35
35
  end
36
36
 
37
- def self.signal_lookup_from_instance signal, object
37
+ def self.signal_lookup_from_instance(signal, object)
38
38
  signal_lookup signal, type_from_instance(object)
39
39
  end
40
40
 
41
- def self.signal_emit object, detailed_signal, *args
41
+ def self.signal_emit(object, detailed_signal, *args)
42
42
  signal, detail = detailed_signal.split('::')
43
43
  signal_id = signal_lookup_from_instance signal, object
44
44
  detail_quark = GLib.quark_from_string(detail)
@@ -52,9 +52,9 @@ module GObject
52
52
  return_gvalue
53
53
  end
54
54
 
55
- def self.signal_connect object, detailed_signal, data = nil, after = false, &block
55
+ def self.signal_connect(object, detailed_signal, data = nil, after = false, &block)
56
56
  raise ArgumentError, 'Block needed' unless block_given?
57
- signal_name, _ = detailed_signal.split('::')
57
+ signal_name, = detailed_signal.split('::')
58
58
  sig_info = object.class.find_signal signal_name
59
59
 
60
60
  closure = sig_info.wrap_in_closure { |*args| block.call(*args << data) }
@@ -62,13 +62,13 @@ module GObject
62
62
  signal_connect_closure object, detailed_signal, closure, after
63
63
  end
64
64
 
65
- def self.signal_connect_after object, detailed_signal, data = nil, &block
65
+ def self.signal_connect_after(object, detailed_signal, data = nil, &block)
66
66
  signal_connect object, detailed_signal, data, true, &block
67
67
  end
68
68
 
69
69
  # Smells of :reek:LongParameterList: due to the C interface.
70
70
  # rubocop:disable Metrics/ParameterLists
71
- def self.param_spec_int name, nick, blurb, minimum, maximum, default_value, flags
71
+ def self.param_spec_int(name, nick, blurb, minimum, maximum, default_value, flags)
72
72
  ptr = Lib.g_param_spec_int(name, nick, blurb, minimum, maximum,
73
73
  default_value, flags)
74
74
  ParamSpecInt.wrap(ptr)