gir_ffi 0.8.0 → 0.8.1
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.
- checksums.yaml +4 -4
- data/Changelog.md +5 -0
- data/README.md +1 -2
- data/Rakefile +1 -9
- data/TODO.md +4 -1
- data/lib/gir_ffi/builders/argument_builder_collection.rb +3 -2
- data/lib/gir_ffi/builders/base_argument_builder.rb +4 -0
- data/lib/gir_ffi/builders/base_method_builder.rb +3 -0
- data/lib/gir_ffi/builders/field_builder.rb +167 -34
- data/lib/gir_ffi/builders/method_template.rb +1 -1
- data/lib/gir_ffi/builders/null_argument_builder.rb +43 -0
- data/lib/gir_ffi/info_ext/i_field_info.rb +5 -0
- data/lib/gir_ffi/version.rb +1 -1
- data/tasks/test.rake +1 -1
- data/test/gir_ffi/builders/field_builder_test.rb +22 -0
- data/test/integration/generated_gobject_test.rb +17 -0
- data/test/lib/autogen.sh +1 -93
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e373464c8f376bf817deb6d9f1d82317b9d0b6a
|
4
|
+
data.tar.gz: 9205d3435def6eecba27339a6bd7d0f1a114c745
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42daa42701febe109c324c616af3aee367be2382e6994ca7fc9b915d63ef2984daacaed84eb6e1d5dd84d125e2acc964beeacb49e465552f9b45ad57f66a676c
|
7
|
+
data.tar.gz: 5f88e3c9d6e23449d0b461aab4bb320322f338e40f2938f5dd2bd9408da976b941d7661ad762c2ebd218f20521adb6c34dc27deab1316724d4bb6e3de0601bc2
|
data/Changelog.md
CHANGED
data/README.md
CHANGED
@@ -93,8 +93,7 @@ If you want to send pull requests or patches, please try to follow these
|
|
93
93
|
instructions. If you get stuck, make a pull request anyway and I'll try to help
|
94
94
|
out.
|
95
95
|
|
96
|
-
* Make sure `rake test` runs without reporting any failures.
|
97
|
-
breaks existing stuff, it won't get merged in.
|
96
|
+
* Make sure `rake test` runs without reporting any failures.
|
98
97
|
* Add tests for your feature. Otherwise, I can't see if it works or if I
|
99
98
|
break it later.
|
100
99
|
* Make sure latest master merges cleanly with your branch. Things might
|
data/Rakefile
CHANGED
data/TODO.md
CHANGED
@@ -3,12 +3,15 @@
|
|
3
3
|
## Miscellaneous
|
4
4
|
|
5
5
|
* MAKE CONSTRUCTOR_WRAP CHECK TYPES? This would allow GObject::Object.new to
|
6
|
-
work and create the correct subtype
|
6
|
+
work and create the correct subtype for classes that don't define their own
|
7
|
+
default constructor.
|
7
8
|
* Add tests for the other test files in gobject-introspection. Currently, only
|
8
9
|
regress.c and gimarshallingtests.c are used, but there are 6 other files
|
9
10
|
available.
|
10
11
|
* Move GObjectIntrospection to GIRepository, and allow generating its own
|
11
12
|
members.
|
13
|
+
* Do not remove ClassBase.new. We now remove it and then add it back for the
|
14
|
+
default constructor, which is kind of silly.
|
12
15
|
|
13
16
|
## Memory managment
|
14
17
|
|
@@ -57,14 +57,15 @@ module GirFFI
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def set_up_argument_relations
|
60
|
-
@base_argument_builders.each do |
|
61
|
-
if (idx =
|
60
|
+
@base_argument_builders.each do |bldr|
|
61
|
+
if (idx = bldr.closure) >= 0
|
62
62
|
@base_argument_builders[idx].closure = true
|
63
63
|
end
|
64
64
|
end
|
65
65
|
all_builders.each do |bldr|
|
66
66
|
if (idx = bldr.array_length_idx) >= 0
|
67
67
|
other = @base_argument_builders[idx]
|
68
|
+
next unless other
|
68
69
|
|
69
70
|
bldr.length_arg = other
|
70
71
|
other.array_arg = bldr
|
@@ -2,6 +2,7 @@ require 'gir_ffi/builders/argument_builder'
|
|
2
2
|
require 'gir_ffi/builders/argument_builder_collection'
|
3
3
|
require 'gir_ffi/builders/error_argument_builder'
|
4
4
|
require 'gir_ffi/builders/method_template'
|
5
|
+
require 'gir_ffi/builders/null_argument_builder'
|
5
6
|
require 'gir_ffi/error_argument_info'
|
6
7
|
require 'gir_ffi/return_value_info'
|
7
8
|
require 'gir_ffi/variable_name_generator'
|
@@ -44,6 +45,8 @@ module GirFFI
|
|
44
45
|
@error_argument ||=
|
45
46
|
if @info.throws?
|
46
47
|
ErrorArgumentBuilder.new vargen, ErrorArgumentInfo.new
|
48
|
+
else
|
49
|
+
NullArgumentBuilder.new
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'gir_ffi/builders/argument_builder'
|
2
|
-
require 'gir_ffi/builders/return_value_builder'
|
3
2
|
require 'gir_ffi/variable_name_generator'
|
4
3
|
require 'gir_ffi/field_argument_info'
|
5
4
|
|
@@ -7,11 +6,123 @@ module GirFFI
|
|
7
6
|
module Builders
|
8
7
|
# Creates field getter and setter code for a given IFieldInfo.
|
9
8
|
class FieldBuilder
|
9
|
+
# Convertor for fields for field getters. Used when building getter
|
10
|
+
# methods.
|
11
|
+
class GetterArgumentBuilder < BaseArgumentBuilder
|
12
|
+
def initialize(var_gen, field_argument_info, field_info, options = {})
|
13
|
+
super(var_gen, field_argument_info)
|
14
|
+
@field_info = field_info
|
15
|
+
@length_arg = options.fetch(:length_argument) { NullArgumentBuilder.new }
|
16
|
+
end
|
17
|
+
|
18
|
+
def pre_conversion
|
19
|
+
[
|
20
|
+
"#{field_ptr} = @struct.to_ptr + #{field_offset}",
|
21
|
+
"#{typed_ptr} = GirFFI::InOutPointer.new(#{field_type_tag}, #{field_ptr})",
|
22
|
+
"#{bare_value} = #{typed_ptr}.to_value"
|
23
|
+
]
|
24
|
+
end
|
25
|
+
|
26
|
+
def capture_variable_name
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def post_converted_name
|
31
|
+
@post_converted_name ||= if has_post_conversion?
|
32
|
+
new_variable
|
33
|
+
else
|
34
|
+
bare_value
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def return_value_name
|
39
|
+
post_converted_name
|
40
|
+
end
|
41
|
+
|
42
|
+
def post_conversion
|
43
|
+
if has_post_conversion?
|
44
|
+
["#{post_converted_name} = #{post_convertor.conversion}"]
|
45
|
+
else
|
46
|
+
[]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def field_offset
|
53
|
+
@field_info.offset
|
54
|
+
end
|
55
|
+
|
56
|
+
def field_ptr
|
57
|
+
@field_ptr ||= @var_gen.new_var
|
58
|
+
end
|
59
|
+
|
60
|
+
def typed_ptr
|
61
|
+
@typed_ptr ||= @var_gen.new_var
|
62
|
+
end
|
63
|
+
|
64
|
+
def bare_value
|
65
|
+
@bare_value ||= @var_gen.new_var
|
66
|
+
end
|
67
|
+
|
68
|
+
def field_type_tag
|
69
|
+
@field_type_tag ||= @field_info.field_type.tag_or_class.inspect
|
70
|
+
end
|
71
|
+
|
72
|
+
def field_type
|
73
|
+
@field_type ||= @field_info.field_type
|
74
|
+
end
|
75
|
+
|
76
|
+
def has_post_conversion?
|
77
|
+
type_info.needs_c_to_ruby_conversion_for_functions?
|
78
|
+
end
|
79
|
+
|
80
|
+
def post_convertor
|
81
|
+
@post_convertor ||= CToRubyConvertor.new(type_info,
|
82
|
+
bare_value,
|
83
|
+
length_arg.post_converted_name)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Class to represent argument info for the argument of a getter method.
|
88
|
+
# Implements the necessary parts of IArgumentInfo's interface.
|
89
|
+
class GetterArgumentInfo
|
90
|
+
attr_reader :name, :argument_type
|
91
|
+
|
92
|
+
def initialize(name, type)
|
93
|
+
@name = name
|
94
|
+
@argument_type = type
|
95
|
+
end
|
96
|
+
|
97
|
+
def closure
|
98
|
+
-1
|
99
|
+
end
|
100
|
+
|
101
|
+
def direction
|
102
|
+
:out
|
103
|
+
end
|
104
|
+
|
105
|
+
def ownership_transfer
|
106
|
+
:everything
|
107
|
+
end
|
108
|
+
|
109
|
+
def caller_allocates?
|
110
|
+
false
|
111
|
+
end
|
112
|
+
|
113
|
+
def skip?
|
114
|
+
false
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
10
118
|
# Builder for field getters
|
11
119
|
class GetterBuilder
|
12
|
-
def initialize(
|
13
|
-
@
|
14
|
-
|
120
|
+
def initialize(info)
|
121
|
+
@info = info
|
122
|
+
end
|
123
|
+
|
124
|
+
def method_definition
|
125
|
+
template.method_definition
|
15
126
|
end
|
16
127
|
|
17
128
|
def singleton_method?
|
@@ -19,7 +130,7 @@ module GirFFI
|
|
19
130
|
end
|
20
131
|
|
21
132
|
def method_name
|
22
|
-
@
|
133
|
+
@info.name
|
23
134
|
end
|
24
135
|
|
25
136
|
def method_arguments
|
@@ -27,36 +138,72 @@ module GirFFI
|
|
27
138
|
end
|
28
139
|
|
29
140
|
def preparation
|
30
|
-
[
|
31
|
-
"#{field_ptr} = @struct.to_ptr + #{field_offset}",
|
32
|
-
"#{typed_ptr} = GirFFI::InOutPointer.new(#{field_type_tag}, #{field_ptr})"
|
33
|
-
]
|
141
|
+
[]
|
34
142
|
end
|
35
143
|
|
36
144
|
def invocation
|
37
|
-
|
145
|
+
nil
|
38
146
|
end
|
39
147
|
|
40
148
|
def result
|
41
|
-
[
|
149
|
+
[getter_argument_builder.return_value_name]
|
42
150
|
end
|
43
151
|
|
44
152
|
private
|
45
153
|
|
46
|
-
def
|
47
|
-
@
|
154
|
+
def var_gen
|
155
|
+
@var_gen ||= VariableNameGenerator.new
|
48
156
|
end
|
49
157
|
|
50
|
-
def
|
51
|
-
@
|
158
|
+
def template
|
159
|
+
@template ||= MethodTemplate.new(self, argument_builders)
|
160
|
+
end
|
161
|
+
|
162
|
+
def argument_builders
|
163
|
+
@argument_builders ||=
|
164
|
+
ArgumentBuilderCollection.new(
|
165
|
+
NullReturnValueBuilder.new,
|
166
|
+
[getter_argument_builder, length_argument_builder])
|
167
|
+
end
|
168
|
+
|
169
|
+
def getter_argument_builder
|
170
|
+
@getter_argument_builder ||=
|
171
|
+
GetterArgumentBuilder.new(var_gen, field_argument_info, @info,
|
172
|
+
length_argument: length_argument_builder)
|
173
|
+
end
|
174
|
+
|
175
|
+
def length_argument_builder
|
176
|
+
@length_argument_builder ||=
|
177
|
+
if array_length_field
|
178
|
+
GetterArgumentBuilder.new(var_gen, length_argument_info, array_length_field)
|
179
|
+
else
|
180
|
+
NullArgumentBuilder.new
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def array_length_field
|
185
|
+
@info.related_array_length_field
|
186
|
+
end
|
187
|
+
|
188
|
+
def length_argument_info
|
189
|
+
@length_argument_info ||=
|
190
|
+
GetterArgumentInfo.new 'length', array_length_field.field_type
|
52
191
|
end
|
53
192
|
|
54
193
|
def field_offset
|
55
|
-
@
|
194
|
+
@info.offset
|
56
195
|
end
|
57
196
|
|
58
197
|
def field_type_tag
|
59
|
-
@
|
198
|
+
@field_type_tag ||= @info.field_type.tag_or_class.inspect
|
199
|
+
end
|
200
|
+
|
201
|
+
def field_type
|
202
|
+
@field_type ||= @info.field_type
|
203
|
+
end
|
204
|
+
|
205
|
+
def field_argument_info
|
206
|
+
@field_argument_info ||= GetterArgumentInfo.new 'value', field_type
|
60
207
|
end
|
61
208
|
end
|
62
209
|
|
@@ -84,9 +231,8 @@ module GirFFI
|
|
84
231
|
end
|
85
232
|
|
86
233
|
def getter_def
|
87
|
-
|
88
|
-
getter_builder
|
89
|
-
MethodTemplate.new(getter_builder, argument_builders).method_definition
|
234
|
+
getter_builder = GetterBuilder.new(info)
|
235
|
+
getter_builder.method_definition
|
90
236
|
end
|
91
237
|
|
92
238
|
# TODO: Use MethodTemplate
|
@@ -106,20 +252,12 @@ module GirFFI
|
|
106
252
|
CODE
|
107
253
|
end
|
108
254
|
|
109
|
-
|
110
|
-
@field_name ||= info.name
|
111
|
-
end
|
112
|
-
|
113
|
-
def field_offset
|
114
|
-
@field_offset ||= info.offset
|
115
|
-
end
|
255
|
+
private
|
116
256
|
|
117
257
|
def field_type_tag
|
118
258
|
@field_type_tag ||= info.field_type.tag_or_class.inspect
|
119
259
|
end
|
120
260
|
|
121
|
-
private
|
122
|
-
|
123
261
|
def container_class
|
124
262
|
@container_class ||= container_module.const_get(container_info.safe_name)
|
125
263
|
end
|
@@ -140,11 +278,6 @@ module GirFFI
|
|
140
278
|
@field_argument_info ||= FieldArgumentInfo.new 'value', field_type
|
141
279
|
end
|
142
280
|
|
143
|
-
def return_value_builder
|
144
|
-
@rv_builder ||= ReturnValueBuilder.new(VariableNameGenerator.new,
|
145
|
-
field_argument_info)
|
146
|
-
end
|
147
|
-
|
148
281
|
def setter_builder
|
149
282
|
@setter_builder ||= ArgumentBuilder.new(VariableNameGenerator.new,
|
150
283
|
field_argument_info)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module GirFFI
|
2
|
+
# Argument builder that does nothing. Implements the Null Object pattern.
|
3
|
+
class NullArgumentBuilder
|
4
|
+
def initialize(*)
|
5
|
+
end
|
6
|
+
|
7
|
+
def pre_conversion
|
8
|
+
[]
|
9
|
+
end
|
10
|
+
|
11
|
+
def post_conversion
|
12
|
+
[]
|
13
|
+
end
|
14
|
+
|
15
|
+
def array_length_idx
|
16
|
+
-1
|
17
|
+
end
|
18
|
+
|
19
|
+
def method_argument_name
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
|
23
|
+
def return_value_name
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
|
27
|
+
def call_argument_name
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
31
|
+
def capture_variable_name
|
32
|
+
nil
|
33
|
+
end
|
34
|
+
|
35
|
+
def closure
|
36
|
+
-1
|
37
|
+
end
|
38
|
+
|
39
|
+
def post_converted_name
|
40
|
+
nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/gir_ffi/version.rb
CHANGED
data/tasks/test.rake
CHANGED
@@ -104,4 +104,26 @@ describe GirFFI::Builders::FieldBuilder do
|
|
104
104
|
instance.setter_def.must_equal expected
|
105
105
|
end
|
106
106
|
end
|
107
|
+
|
108
|
+
describe 'for a field with a related array length field' do
|
109
|
+
let(:field_info) { get_field_introspection_data 'GObject', 'SignalQuery', 'param_types' }
|
110
|
+
let(:n_params_field_info) { get_field_introspection_data 'GObject', 'SignalQuery', 'n_params' }
|
111
|
+
|
112
|
+
it 'creates the right getter method' do
|
113
|
+
skip if field_info.field_type.array_length < 0
|
114
|
+
expected = <<-CODE.reset_indentation
|
115
|
+
def param_types
|
116
|
+
_v1 = @struct.to_ptr + #{n_params_field_info.offset}
|
117
|
+
_v2 = GirFFI::InOutPointer.new(:guint32, _v1)
|
118
|
+
_v3 = _v2.to_value
|
119
|
+
_v4 = @struct.to_ptr + #{field_info.offset}
|
120
|
+
_v5 = GirFFI::InOutPointer.new([:pointer, :c], _v4)
|
121
|
+
_v6 = _v5.to_value
|
122
|
+
_v7 = GirFFI::SizedArray.wrap(:GType, _v3, _v6)
|
123
|
+
_v7
|
124
|
+
end
|
125
|
+
CODE
|
126
|
+
instance.getter_def.must_equal expected
|
127
|
+
end
|
128
|
+
end
|
107
129
|
end
|
@@ -55,4 +55,21 @@ describe GObject do
|
|
55
55
|
instance.n_values.must_equal 0
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
describe GObject::SignalQuery do
|
60
|
+
it 'works' do
|
61
|
+
GObject::SignalQuery.new
|
62
|
+
pass
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'uses the n_params field for the length of param_types' do
|
66
|
+
field_info = get_field_introspection_data 'GObject', 'SignalQuery', 'param_types'
|
67
|
+
skip if field_info.field_type.array_length < 0
|
68
|
+
gtype = GObject::Object.gtype
|
69
|
+
signals = GObject.signal_list_ids gtype
|
70
|
+
signal_query = GObject.signal_query signals.first
|
71
|
+
signal_query.n_params.must_equal 1
|
72
|
+
signal_query.param_types.size.must_equal 1
|
73
|
+
end
|
74
|
+
end
|
58
75
|
end
|
data/test/lib/autogen.sh
CHANGED
@@ -1,96 +1,4 @@
|
|
1
1
|
#!/bin/sh
|
2
2
|
# Run this to generate all the initial makefiles, etc.
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
if test ! -f configure.ac ; then
|
7
|
-
echo "You must run this script in the top-level $PROJECT directory"
|
8
|
-
exit 1
|
9
|
-
fi
|
10
|
-
|
11
|
-
DIE=0
|
12
|
-
|
13
|
-
have_libtool=false
|
14
|
-
if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
|
15
|
-
libtool_version=`libtoolize --version |
|
16
|
-
head -1 |
|
17
|
-
sed -e 's/^\(.*\)([^)]*)\(.*\)$/\1\2/g' \
|
18
|
-
-e 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
|
19
|
-
case $libtool_version in
|
20
|
-
2.2*)
|
21
|
-
have_libtool=true
|
22
|
-
;;
|
23
|
-
2.4*)
|
24
|
-
have_libtool=true
|
25
|
-
;;
|
26
|
-
esac
|
27
|
-
fi
|
28
|
-
if $have_libtool ; then : ; else
|
29
|
-
echo
|
30
|
-
echo "You must have libtool >= 2.2 installed to compile $PROJECT."
|
31
|
-
echo "Install the appropriate package for your distribution,"
|
32
|
-
echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
|
33
|
-
DIE=1
|
34
|
-
fi
|
35
|
-
|
36
|
-
if autoconf --version < /dev/null > /dev/null 2>&1 ; then : ; else
|
37
|
-
echo
|
38
|
-
echo "You must have autoconf installed to compile $PROJECT."
|
39
|
-
echo "Install the appropriate package for your distribution,"
|
40
|
-
echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
|
41
|
-
DIE=1
|
42
|
-
fi
|
43
|
-
|
44
|
-
if automake-1.14 --version < /dev/null > /dev/null 2>&1 ; then
|
45
|
-
AUTOMAKE=automake-1.14
|
46
|
-
ACLOCAL=aclocal-1.14
|
47
|
-
else if automake-1.13 --version < /dev/null > /dev/null 2>&1 ; then
|
48
|
-
AUTOMAKE=automake-1.13
|
49
|
-
ACLOCAL=aclocal-1.13
|
50
|
-
else if automake-1.11 --version < /dev/null > /dev/null 2>&1 ; then
|
51
|
-
AUTOMAKE=automake-1.11
|
52
|
-
ACLOCAL=aclocal-1.11
|
53
|
-
else if automake-1.10 --version < /dev/null > /dev/null 2>&1 ; then
|
54
|
-
AUTOMAKE=automake-1.10
|
55
|
-
ACLOCAL=aclocal-1.10
|
56
|
-
else
|
57
|
-
echo
|
58
|
-
echo "You must have automake 1.13.x, 1.11.x or 1.10.x installed to compile $PROJECT."
|
59
|
-
echo "Install the appropriate package for your distribution,"
|
60
|
-
echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
|
61
|
-
DIE=1
|
62
|
-
fi
|
63
|
-
fi
|
64
|
-
fi
|
65
|
-
fi
|
66
|
-
|
67
|
-
if test "$DIE" -eq 1; then
|
68
|
-
exit 1
|
69
|
-
fi
|
70
|
-
|
71
|
-
|
72
|
-
libtoolize --force || exit $?
|
73
|
-
|
74
|
-
$ACLOCAL -I m4 || exit $?
|
75
|
-
|
76
|
-
autoconf || exit $?
|
77
|
-
autoheader || exit $?
|
78
|
-
|
79
|
-
$AUTOMAKE --add-missing || exit $?
|
80
|
-
|
81
|
-
# NOCONFIGURE is used by gnome-common; support both
|
82
|
-
if ! test -z "$AUTOGEN_SUBDIR_MODE"; then
|
83
|
-
NOCONFIGURE=1
|
84
|
-
fi
|
85
|
-
|
86
|
-
if test -z "$NOCONFIGURE"; then
|
87
|
-
if test -z "$*"; then
|
88
|
-
echo "I am going to run ./configure with no arguments - if you wish "
|
89
|
-
echo "to pass any to it, please specify them on the $0 command line."
|
90
|
-
fi
|
91
|
-
|
92
|
-
./configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
|
93
|
-
|
94
|
-
echo
|
95
|
-
echo "Now type 'make' to compile $PROJECT."
|
96
|
-
fi
|
4
|
+
autoreconf -ivf
|
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.8.
|
4
|
+
version: 0.8.1
|
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: 2015-
|
11
|
+
date: 2015-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- lib/gir_ffi/builders/marshalling_method_builder.rb
|
189
189
|
- lib/gir_ffi/builders/method_template.rb
|
190
190
|
- lib/gir_ffi/builders/module_builder.rb
|
191
|
+
- lib/gir_ffi/builders/null_argument_builder.rb
|
191
192
|
- lib/gir_ffi/builders/null_convertor.rb
|
192
193
|
- lib/gir_ffi/builders/null_return_value_builder.rb
|
193
194
|
- lib/gir_ffi/builders/object_builder.rb
|