gir_ffi 0.1.0 → 0.2.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 (78) hide show
  1. data/History.txt +14 -0
  2. data/TODO.rdoc +10 -5
  3. data/lib/ffi-glib.rb +7 -73
  4. data/lib/ffi-glib/array.rb +29 -4
  5. data/lib/ffi-glib/byte_array.rb +15 -1
  6. data/lib/ffi-glib/hash_table.rb +31 -24
  7. data/lib/ffi-glib/list.rb +28 -0
  8. data/lib/ffi-glib/list_methods.rb +10 -2
  9. data/lib/ffi-glib/ptr_array.rb +39 -0
  10. data/lib/ffi-glib/s_list.rb +29 -0
  11. data/lib/ffi-gobject.rb +49 -22
  12. data/lib/ffi-gobject/closure.rb +4 -3
  13. data/lib/ffi-gobject/helper.rb +20 -43
  14. data/lib/ffi-gobject/initially_unowned.rb +2 -0
  15. data/lib/ffi-gobject/object.rb +54 -0
  16. data/lib/ffi-gobject/ruby_closure.rb +22 -16
  17. data/lib/ffi-gobject/value.rb +54 -19
  18. data/lib/ffi-gobject_introspection/i_constant_info.rb +17 -1
  19. data/lib/ffi-gobject_introspection/i_field_info.rb +8 -0
  20. data/lib/ffi-gobject_introspection/i_property_info.rb +3 -1
  21. data/lib/ffi-gobject_introspection/lib.rb +19 -2
  22. data/lib/gir_ffi/arg_helper.rb +7 -45
  23. data/lib/gir_ffi/builder.rb +1 -1
  24. data/lib/gir_ffi/builder/argument.rb +148 -107
  25. data/lib/gir_ffi/builder/argument/base.rb +5 -5
  26. data/lib/gir_ffi/builder/argument/in_base.rb +2 -2
  27. data/lib/gir_ffi/builder/argument/in_out_base.rb +2 -3
  28. data/lib/gir_ffi/builder/argument/out_base.rb +2 -3
  29. data/lib/gir_ffi/builder/function.rb +11 -17
  30. data/lib/gir_ffi/builder/module.rb +26 -0
  31. data/lib/gir_ffi/builder/type.rb +5 -0
  32. data/lib/gir_ffi/builder/type/base.rb +2 -0
  33. data/lib/gir_ffi/builder/type/callback.rb +18 -3
  34. data/lib/gir_ffi/builder/type/constant.rb +4 -12
  35. data/lib/gir_ffi/builder/type/enum.rb +15 -6
  36. data/lib/gir_ffi/builder/type/interface.rb +4 -0
  37. data/lib/gir_ffi/builder/type/object.rb +11 -0
  38. data/lib/gir_ffi/builder/type/struct_based.rb +14 -4
  39. data/lib/gir_ffi/builder/type/union.rb +13 -7
  40. data/lib/gir_ffi/builder/type/with_layout.rb +59 -8
  41. data/lib/gir_ffi/class_base.rb +8 -1
  42. data/lib/gir_ffi/in_out_pointer.rb +17 -18
  43. data/lib/gir_ffi/in_pointer.rb +8 -1
  44. data/lib/gir_ffi/type_map.rb +12 -0
  45. data/lib/gir_ffi/variable_name_generator.rb +12 -0
  46. data/lib/gir_ffi/version.rb +1 -1
  47. data/test/ffi-glib/array_test.rb +54 -0
  48. data/test/ffi-glib/byte_array_test.rb +21 -0
  49. data/test/ffi-glib/glib_overrides_test.rb +1 -46
  50. data/test/ffi-glib/hash_table_test.rb +24 -0
  51. data/test/ffi-glib/list_test.rb +46 -0
  52. data/test/ffi-glib/ptr_array_test.rb +51 -0
  53. data/test/ffi-glib/s_list_test.rb +46 -0
  54. data/test/ffi-gobject/g_object_overrides_test.rb +8 -8
  55. data/test/ffi-gobject/gobject_test.rb +26 -0
  56. data/test/ffi-gobject/object_test.rb +12 -0
  57. data/test/ffi-gobject_introspection/i_constant_info_test.rb +5 -1
  58. data/test/ffi-gobject_introspection/lib_test.rb +56 -0
  59. data/test/integration/generated_gimarshallingtests_test.rb +118 -76
  60. data/test/integration/generated_regress_test.rb +220 -62
  61. data/test/integration/pretty_print_test.rb +11 -0
  62. data/test/type_builder_test.rb +0 -48
  63. data/test/unintrospectable_type_builder_test.rb +8 -2
  64. data/test/unit/builder_test.rb +1 -1
  65. data/test/unit/callback_builder_test.rb +19 -0
  66. data/test/unit/constant_builder_test.rb +11 -0
  67. data/test/unit/enum_builder_test.rb +25 -0
  68. data/test/unit/function_builder_test.rb +17 -0
  69. data/test/unit/in_out_pointer_test.rb +11 -0
  70. data/test/unit/in_pointer_test.rb +6 -2
  71. data/test/unit/interface_builder_test.rb +17 -0
  72. data/test/unit/module_builder_test.rb +95 -0
  73. data/test/unit/object_type_builder_test.rb +24 -0
  74. data/test/unit/struct_builder_test.rb +106 -0
  75. data/test/unit/union_builder_test.rb +17 -0
  76. data/test/unit/variable_name_generator_test.rb +16 -0
  77. metadata +102 -75
  78. data/test/module_builder_test.rb +0 -53
@@ -36,8 +36,14 @@ describe GirFFI::Builder::Type::Unintrospectable do
36
36
  end
37
37
 
38
38
  describe "its #find_signal method" do
39
- it "works for a signal that doesn't exist" do
40
- assert_nil @bldr.find_signal "foo"
39
+ it "raises correct error for a signal that doesn't exist" do
40
+ msg = nil
41
+ begin
42
+ @bldr.find_signal "foo"
43
+ rescue RuntimeError => e
44
+ msg = e.message
45
+ end
46
+ assert_match(/^Signal/, msg)
41
47
  end
42
48
  end
43
49
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  describe GirFFI::Builder do
4
- describe ".itypeinfo_to_callback_ffitype" do
4
+ describe "::itypeinfo_to_callback_ffitype" do
5
5
  describe "for an :interface argument" do
6
6
  setup do
7
7
  @iface = Object.new
@@ -0,0 +1,19 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Callback do
4
+ describe "#pretty_print" do
5
+ it "returns a statement assigning the callback to a constant" do
6
+ mock(info = Object.new).safe_name { "TheCallback" }
7
+ stub(info).namespace { "Foo" }
8
+ mock(GirFFI::Builder).ffi_function_return_type(info) { :ret_type }
9
+ mock(GirFFI::Builder).ffi_function_argument_types(info) { [ :baz, :qux ] }
10
+
11
+ builder = GirFFI::Builder::Type::Callback.new(info)
12
+
13
+ assert_equal "TheCallback = Lib.callback :TheCallback, [:baz, :qux], :ret_type",
14
+ builder.pretty_print
15
+ end
16
+ end
17
+ end
18
+
19
+
@@ -1,5 +1,16 @@
1
1
  require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  describe GirFFI::Builder::Type::Constant do
4
+ describe "#pretty_print" do
5
+ it "returns the correct assignment statement" do
6
+ mock(info = Object.new).value { "bar" }
7
+ mock(info).safe_name { "FOO_CONSTANT" }
8
+ stub(info).namespace { "Foo" }
9
+
10
+ builder = GirFFI::Builder::Type::Constant.new(info)
11
+
12
+ assert_equal "FOO_CONSTANT = \"bar\"", builder.pretty_print
13
+ end
14
+ end
4
15
  end
5
16
 
@@ -0,0 +1,25 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Enum do
4
+ describe "#pretty_print" do
5
+ it "returns a statement assigning the enum to a constant" do
6
+ mock(info = Object.new).safe_name { "TheEnum" }
7
+ stub(info).namespace { "Foo" }
8
+
9
+ mock(val1 = Object.new).name { "value1" }
10
+ mock(val1).value { 1 }
11
+ mock(val2 = Object.new).name { "value2" }
12
+ mock(val2).value { 2 }
13
+
14
+ mock(info).values { [val1, val2] }
15
+
16
+ builder = GirFFI::Builder::Type::Enum.new(info)
17
+
18
+ assert_equal "TheEnum = Lib.enum :TheEnum, [:value1, 1, :value2, 2]",
19
+ builder.pretty_print
20
+ end
21
+ end
22
+ end
23
+
24
+
25
+
@@ -0,0 +1,17 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Function do
4
+ describe "#pretty_print" do
5
+ it "delegates to #generate" do
6
+ builder = GirFFI::Builder::Function.new(:info, :libmodule)
7
+
8
+ mock(builder).generate { 'result_from_generate' }
9
+
10
+ assert_equal "result_from_generate", builder.pretty_print
11
+ end
12
+ end
13
+ end
14
+
15
+
16
+
17
+
@@ -114,5 +114,16 @@ describe GirFFI::InOutPointer do
114
114
  assert_equal "Some value", ptr.to_value
115
115
  end
116
116
  end
117
+
118
+ describe "for an array of :gint32" do
119
+ before do
120
+ @result = GirFFI::InOutPointer.from_array :gint32, [1, 2, 3]
121
+ end
122
+
123
+ it "returns an array of integers with the correct values" do
124
+ assert_equal [1, 2, 3], @result.to_sized_array_value(3)
125
+ end
126
+ end
127
+
117
128
  end
118
129
  end
@@ -49,8 +49,7 @@ describe GirFFI::InPointer do
49
49
  @result = GirFFI::InPointer.from :utf8, "foo"
50
50
  end
51
51
 
52
- it "returns an pointers to the given string" do
53
- ary = @result.read_array_of_pointer(3)
52
+ it "returns a pointer to the given string" do
54
53
  assert_equal "foo", @result.read_string
55
54
  end
56
55
 
@@ -64,6 +63,11 @@ describe GirFFI::InPointer do
64
63
  result = GirFFI::InPointer.from :foo, nil
65
64
  assert_nil result
66
65
  end
66
+
67
+ it "sets the pointer's address to the passed value for type :gint8" do
68
+ result = GirFFI::InPointer.from :gint8, 23
69
+ assert_equal 23, result.address
70
+ end
67
71
  end
68
72
  end
69
73
 
@@ -0,0 +1,17 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Interface do
4
+ describe "#pretty_print" do
5
+ it "returns a module block, extending InterfaceBase" do
6
+ mock(info = Object.new).safe_name { "Bar" }
7
+ stub(info).namespace { "Foo" }
8
+
9
+ builder = GirFFI::Builder::Type::Interface.new(info)
10
+
11
+ assert_equal "module Bar\n extend InterfaceBase\nend", builder.pretty_print
12
+ end
13
+ end
14
+ end
15
+
16
+
17
+
@@ -0,0 +1,95 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Module do
4
+ describe "#pretty_print" do
5
+ describe "for a module with no members" do
6
+ it "returns just a module block" do
7
+ gir = GObjectIntrospection::IRepository.default
8
+ stub(gir).require("Foo", nil) { }
9
+ mock(gir).infos("Foo") { [] }
10
+
11
+ builder = GirFFI::Builder::Module.new "Foo"
12
+ res = builder.pretty_print
13
+ expected = "module Foo\nend"
14
+
15
+ assert_equal expected, res
16
+ end
17
+ end
18
+
19
+ describe "for a module with a function member" do
20
+ it "returns a module block with pretty printed function inside" do
21
+ stub(info = Object.new).info_type { :function }
22
+ mock(subbuilder = Object.new).pretty_print { "def foo\n function_body\nend" }
23
+
24
+ gir = GObjectIntrospection::IRepository.default
25
+ stub(gir).require("Foo", nil) { }
26
+ mock(gir).infos("Foo") { [info] }
27
+
28
+ builder = GirFFI::Builder::Module.new "Foo"
29
+ stub(builder).libmodule { :bla }
30
+ mock(GirFFI::Builder::Function).new(info, :bla) { subbuilder }
31
+
32
+ res = builder.pretty_print
33
+ expected = "module Foo\n def foo\n function_body\n end\nend"
34
+
35
+ assert_equal expected, res
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "#function_definition" do
41
+ it "delegates to GirFFI::Builder::Function#generate" do
42
+ builder = GirFFI::Builder::Module.new "Foo"
43
+
44
+ mock(fb = Object.new).generate { "function body" }
45
+ mock(GirFFI::Builder::Function).new("info", "lib") { fb }
46
+
47
+ result = builder.send :function_definition, "info", "lib"
48
+
49
+ assert_equal "function body", result
50
+ end
51
+ end
52
+
53
+ describe "#sub_builder" do
54
+ describe "for a :function argument" do
55
+ it "creates a GirFFI::Builder::Function object" do
56
+ builder = GirFFI::Builder::Module.new "Foo"
57
+ mock(builder).libmodule { Lib }
58
+
59
+ stub(info = Object.new).info_type { :function }
60
+
61
+ result = builder.send :sub_builder, info
62
+ assert_instance_of GirFFI::Builder::Function, result
63
+ end
64
+ end
65
+
66
+ describe "for an :object argument" do
67
+ it "creates a GirFFI::Builder::Type::Object object" do
68
+ builder = GirFFI::Builder::Module.new "Foo"
69
+
70
+ stub(info = Object.new).info_type { :object }
71
+ stub(info).namespace { "Foo" }
72
+ stub(info).safe_name { "FooClass" }
73
+
74
+ result = builder.send :sub_builder, info
75
+ assert_instance_of GirFFI::Builder::Type::Object, result
76
+ end
77
+ end
78
+ end
79
+
80
+ describe "#build_namespaced_class" do
81
+ it "raises a clear error if the named class does not exist" do
82
+ gir = GObjectIntrospection::IRepository.default
83
+ stub(gir).require("Foo", nil) { }
84
+
85
+ builder = GirFFI::Builder::Module.new "Foo"
86
+
87
+ mock(gir).find_by_name("Foo", "Bar") { nil }
88
+
89
+ assert_raises NameError do
90
+ builder.build_namespaced_class :Bar
91
+ end
92
+ end
93
+ end
94
+ end
95
+
@@ -17,4 +17,28 @@ describe GirFFI::Builder::Type::Object do
17
17
  pass
18
18
  end
19
19
  end
20
+
21
+ describe "#find_property" do
22
+ it "finds a property specified on the class itself" do
23
+ builder = GirFFI::Builder::Type::Object.new(
24
+ get_introspection_data('Regress', 'TestObj'))
25
+ prop = builder.find_property("int")
26
+ assert_equal "int", prop.name
27
+ end
28
+
29
+ it "finds a property specified on the parent class" do
30
+ builder = GirFFI::Builder::Type::Object.new(
31
+ get_introspection_data('Regress', 'TestSubObj'))
32
+ prop = builder.find_property("int")
33
+ assert_equal "int", prop.name
34
+ end
35
+
36
+ it "raises an error if the property is not found" do
37
+ builder = GirFFI::Builder::Type::Object.new(
38
+ get_introspection_data('Regress', 'TestSubObj'))
39
+ assert_raises RuntimeError do
40
+ builder.find_property("this-property-does-not-exist")
41
+ end
42
+ end
43
+ end
20
44
  end
@@ -0,0 +1,106 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Struct do
4
+ describe "#pretty_print" do
5
+ it "returns a class block" do
6
+ mock(info = Object.new).safe_name { "Bar" }
7
+ stub(info).namespace { "Foo" }
8
+
9
+ builder = GirFFI::Builder::Type::Struct.new(info)
10
+
11
+ assert_equal "class Bar\nend", builder.pretty_print
12
+ end
13
+ end
14
+
15
+ describe "for a struct with a simple layout" do
16
+ before do
17
+ stub(@type = Object.new).pointer? { false }
18
+ stub(@type).tag { :gint32 }
19
+
20
+ stub(field = Object.new).field_type { @type }
21
+ stub(field).name { "bar" }
22
+ stub(field).offset { 0 }
23
+ stub(field).writable? { true }
24
+
25
+ stub(@struct = Object.new).safe_name { 'Bar' }
26
+ stub(@struct).namespace { 'Foo' }
27
+ stub(@struct).fields { [ field ] }
28
+ stub(@struct).find_method { }
29
+
30
+ @builder = GirFFI::Builder::Type::Struct.new @struct
31
+ end
32
+
33
+ it "creates the correct layout specification" do
34
+ spec = @builder.send :layout_specification
35
+ assert_equal [:bar, :int32, 0], spec
36
+ end
37
+
38
+ it "creates getter and setter methods" do
39
+ m = Module.new { module Lib; end }
40
+ stub(GirFFI::Builder).build_module('Foo') { m }
41
+
42
+ c = Class.new
43
+
44
+ refute c.method_defined?(:bar)
45
+ refute c.method_defined?(:bar=)
46
+
47
+ @builder.instance_eval { @klass = c }
48
+ @builder.send :setup_field_accessors
49
+
50
+ assert c.method_defined?(:bar)
51
+ assert c.method_defined?(:bar=)
52
+ end
53
+ end
54
+
55
+ describe "for a struct with a layout with a fixed-length array" do
56
+ before do
57
+ stub(subtype = Object.new).pointer? { false }
58
+ stub(subtype).tag { :foo }
59
+
60
+ stub(@type = Object.new).pointer? { false }
61
+ stub(@type).tag { :array }
62
+ stub(@type).array_fixed_size { 2 }
63
+ stub(@type).param_type { subtype }
64
+
65
+ stub(field = Object.new).field_type { @type }
66
+ stub(field).name { "bar" }
67
+ stub(field).offset { 0 }
68
+
69
+ stub(@struct = Object.new).safe_name { 'Bar' }
70
+ stub(@struct).namespace { 'Foo' }
71
+ stub(@struct).fields { [ field ] }
72
+ end
73
+
74
+ it "creates the correct ffi type for the array" do
75
+ builder = GirFFI::Builder::Type::Struct.new @struct
76
+ spec = builder.send :itypeinfo_to_ffitype_for_struct, @type
77
+ assert_equal [:foo, 2], spec
78
+ end
79
+
80
+ it "creates the correct layout specification" do
81
+ builder = GirFFI::Builder::Type::Struct.new @struct
82
+ spec = builder.send :layout_specification
83
+ assert_equal [:bar, [:foo, 2], 0], spec
84
+ end
85
+ end
86
+
87
+ describe "for a struct without defined fields" do
88
+ it "uses a single field of the parent struct type as the default layout" do
89
+ @gir = GObjectIntrospection::IRepository.default
90
+ @gir.require 'GObject', nil
91
+
92
+ stub(info = Object.new).parent { @gir.find_by_name 'GObject', 'Object' }
93
+ stub(info).fields { [] }
94
+ stub(info).info_type { :object }
95
+ stub(info).safe_name { 'Bar' }
96
+ stub(info).namespace { 'Foo' }
97
+
98
+ @classbuilder = GirFFI::Builder::Type::Object.new info
99
+
100
+ spec = @classbuilder.send :layout_specification
101
+ assert_equal [:parent, GObject::Object::Struct, 0], spec
102
+ end
103
+ end
104
+ end
105
+
106
+
@@ -0,0 +1,17 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ describe GirFFI::Builder::Type::Union do
4
+ describe "#pretty_print" do
5
+ it "returns a class block" do
6
+ mock(info = Object.new).safe_name { "Bar" }
7
+ stub(info).namespace { "Foo" }
8
+
9
+ builder = GirFFI::Builder::Type::Union.new(info)
10
+
11
+ assert_equal "class Bar\nend", builder.pretty_print
12
+ end
13
+ end
14
+ end
15
+
16
+
17
+
@@ -0,0 +1,16 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'gir_ffi/variable_name_generator'
4
+
5
+ describe GirFFI::VariableNameGenerator do
6
+ describe "#new_var" do
7
+ it "generates a sequence of predictable variable names" do
8
+ gen = GirFFI::VariableNameGenerator.new
9
+
10
+ assert_equal "_v1", gen.new_var
11
+ assert_equal "_v2", gen.new_var
12
+ assert_equal "_v3", gen.new_var
13
+ assert_equal "_v4", gen.new_var
14
+ end
15
+ end
16
+ end
metadata CHANGED
@@ -1,83 +1,82 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gir_ffi
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Matijs van Zuijlen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-28 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: ffi
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &13966040 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 7
29
- segments:
30
- - 1
31
- - 0
32
- - 8
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.0.8
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: minitest
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *13966040
25
+ - !ruby/object:Gem::Dependency
26
+ name: indentation
27
+ requirement: &13964120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.0.6
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *13964120
36
+ - !ruby/object:Gem::Dependency
37
+ name: minitest
38
+ requirement: &13975240 !ruby/object:Gem::Requirement
40
39
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 11
45
- segments:
46
- - 2
47
- - 0
48
- - 2
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
49
43
  version: 2.0.2
50
44
  type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rr
54
45
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: *13975240
47
+ - !ruby/object:Gem::Dependency
48
+ name: rr
49
+ requirement: &13973360 !ruby/object:Gem::Requirement
56
50
  none: false
57
- requirements:
51
+ requirements:
58
52
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 19
61
- segments:
62
- - 1
63
- - 0
64
- - 2
53
+ - !ruby/object:Gem::Version
65
54
  version: 1.0.2
66
55
  type: :development
67
- version_requirements: *id003
56
+ prerelease: false
57
+ version_requirements: *13973360
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &13987300 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.9.2
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *13987300
68
69
  description:
69
- email:
70
+ email:
70
71
  - matijs@matijs.net
71
72
  executables: []
72
-
73
73
  extensions: []
74
-
75
- extra_rdoc_files:
74
+ extra_rdoc_files:
76
75
  - DESIGN.rdoc
77
76
  - History.txt
78
77
  - README.rdoc
79
78
  - TODO.rdoc
80
- files:
79
+ files:
81
80
  - lib/ffi-gtk3.rb
82
81
  - lib/gir_ffi.rb
83
82
  - lib/ffi-gtk/base.rb
@@ -109,6 +108,7 @@ files:
109
108
  - lib/ffi-glib.rb
110
109
  - lib/ffi-gobject.rb
111
110
  - lib/ffi-glib/array.rb
111
+ - lib/ffi-glib/ptr_array.rb
112
112
  - lib/ffi-glib/list.rb
113
113
  - lib/ffi-glib/list_methods.rb
114
114
  - lib/ffi-glib/hash_table.rb
@@ -146,6 +146,7 @@ files:
146
146
  - lib/gir_ffi/class_base.rb
147
147
  - lib/gir_ffi/callback_helper.rb
148
148
  - lib/gir_ffi/in_pointer.rb
149
+ - lib/gir_ffi/variable_name_generator.rb
149
150
  - lib/gir_ffi/version.rb
150
151
  - lib/gir_ffi/allocation_helper.rb
151
152
  - lib/gir_ffi/arg_helper.rb
@@ -155,6 +156,7 @@ files:
155
156
  - lib/ffi-gobject/closure.rb
156
157
  - lib/ffi-gobject/initially_unowned.rb
157
158
  - lib/ffi-gobject/helper.rb
159
+ - lib/ffi-gobject/object.rb
158
160
  - test/unintrospectable_type_builder_test.rb
159
161
  - test/function_definition_builder_test.rb
160
162
  - test/gir_ffi_test_helper.rb
@@ -167,28 +169,44 @@ files:
167
169
  - test/ffi-gobject_introspection/i_repository_test.rb
168
170
  - test/ffi-gobject_introspection/i_object_info_test.rb
169
171
  - test/ffi-gobject_introspection/i_base_info_test.rb
172
+ - test/ffi-gobject_introspection/lib_test.rb
170
173
  - test/ffi-gobject_introspection/i_constant_info_test.rb
171
174
  - test/test_helper.rb
172
175
  - test/girffi_test.rb
173
176
  - test/interface_type_builder_test.rb
174
- - test/module_builder_test.rb
177
+ - test/unit/union_builder_test.rb
178
+ - test/unit/callback_builder_test.rb
175
179
  - test/unit/constant_builder_test.rb
180
+ - test/unit/function_builder_test.rb
181
+ - test/unit/module_builder_test.rb
182
+ - test/unit/interface_builder_test.rb
176
183
  - test/unit/in_out_pointer_test.rb
177
184
  - test/unit/callback_helper_test.rb
178
185
  - test/unit/builder_test.rb
179
186
  - test/unit/in_pointer_test.rb
187
+ - test/unit/enum_builder_test.rb
188
+ - test/unit/struct_builder_test.rb
180
189
  - test/unit/object_type_builder_test.rb
190
+ - test/unit/variable_name_generator_test.rb
181
191
  - test/type_builder_test.rb
182
192
  - test/builder_test.rb
183
193
  - test/gtk_overrides_test.rb
184
194
  - test/integration/generated_regress_test.rb
195
+ - test/integration/pretty_print_test.rb
185
196
  - test/integration/generated_gtk_test.rb
186
197
  - test/integration/generated_gobject_test.rb
187
198
  - test/integration/generated_gio_test.rb
188
199
  - test/integration/generated_gimarshallingtests_test.rb
200
+ - test/ffi-glib/s_list_test.rb
201
+ - test/ffi-glib/array_test.rb
202
+ - test/ffi-glib/hash_table_test.rb
203
+ - test/ffi-glib/byte_array_test.rb
189
204
  - test/ffi-glib/glib_overrides_test.rb
205
+ - test/ffi-glib/list_test.rb
206
+ - test/ffi-glib/ptr_array_test.rb
190
207
  - test/ffi-gobject/gobject_test.rb
191
208
  - test/ffi-gobject/g_object_overrides_test.rb
209
+ - test/ffi-gobject/object_test.rb
192
210
  - test/ffi-gobject/value_test.rb
193
211
  - tasks/yardoc.rake
194
212
  - tasks/rdoc.rake
@@ -212,50 +230,50 @@ files:
212
230
  - Rakefile
213
231
  homepage: http://www.github.com/mvz/ruby-gir-ffi
214
232
  licenses: []
215
-
216
233
  post_install_message:
217
- rdoc_options:
234
+ rdoc_options:
218
235
  - --main
219
236
  - README.rdoc
220
- require_paths:
237
+ require_paths:
221
238
  - lib
222
- required_ruby_version: !ruby/object:Gem::Requirement
239
+ required_ruby_version: !ruby/object:Gem::Requirement
223
240
  none: false
224
- requirements:
225
- - - ">="
226
- - !ruby/object:Gem::Version
227
- hash: 3
228
- segments:
229
- - 0
230
- version: "0"
231
- required_rubygems_version: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ! '>='
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ required_rubygems_version: !ruby/object:Gem::Requirement
232
246
  none: false
233
- requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- hash: 3
237
- segments:
238
- - 0
239
- version: "0"
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
240
251
  requirements: []
241
-
242
252
  rubyforge_project:
243
- rubygems_version: 1.8.10
253
+ rubygems_version: 1.8.11
244
254
  signing_key:
245
255
  specification_version: 3
246
256
  summary: FFI-based GObject binding using the GObject Introspection Repository
247
- test_files:
257
+ test_files:
248
258
  - test/arg_helper_test.rb
249
259
  - test/builder_test.rb
250
260
  - test/class_base_test.rb
261
+ - test/ffi-glib/array_test.rb
262
+ - test/ffi-glib/byte_array_test.rb
251
263
  - test/ffi-glib/glib_overrides_test.rb
264
+ - test/ffi-glib/hash_table_test.rb
265
+ - test/ffi-glib/list_test.rb
266
+ - test/ffi-glib/ptr_array_test.rb
267
+ - test/ffi-glib/s_list_test.rb
252
268
  - test/ffi-gobject/g_object_overrides_test.rb
253
269
  - test/ffi-gobject/gobject_test.rb
270
+ - test/ffi-gobject/object_test.rb
254
271
  - test/ffi-gobject/value_test.rb
255
272
  - test/ffi-gobject_introspection/i_base_info_test.rb
256
273
  - test/ffi-gobject_introspection/i_constant_info_test.rb
257
274
  - test/ffi-gobject_introspection/i_object_info_test.rb
258
275
  - test/ffi-gobject_introspection/i_repository_test.rb
276
+ - test/ffi-gobject_introspection/lib_test.rb
259
277
  - test/function_definition_builder_test.rb
260
278
  - test/gir_ffi_test_helper.rb
261
279
  - test/girffi_test.rb
@@ -265,18 +283,27 @@ test_files:
265
283
  - test/integration/generated_gobject_test.rb
266
284
  - test/integration/generated_gtk_test.rb
267
285
  - test/integration/generated_regress_test.rb
286
+ - test/integration/pretty_print_test.rb
268
287
  - test/interface_type_builder_test.rb
269
288
  - test/lib/Makefile.am
270
289
  - test/lib/autogen.sh
271
290
  - test/lib/configure.ac
272
291
  - test/lib/m4/jhflags.m4
273
- - test/module_builder_test.rb
274
292
  - test/test_helper.rb
275
293
  - test/type_builder_test.rb
276
294
  - test/unintrospectable_type_builder_test.rb
277
295
  - test/unit/builder_test.rb
296
+ - test/unit/callback_builder_test.rb
278
297
  - test/unit/callback_helper_test.rb
279
298
  - test/unit/constant_builder_test.rb
299
+ - test/unit/enum_builder_test.rb
300
+ - test/unit/function_builder_test.rb
280
301
  - test/unit/in_out_pointer_test.rb
281
302
  - test/unit/in_pointer_test.rb
303
+ - test/unit/interface_builder_test.rb
304
+ - test/unit/module_builder_test.rb
282
305
  - test/unit/object_type_builder_test.rb
306
+ - test/unit/struct_builder_test.rb
307
+ - test/unit/union_builder_test.rb
308
+ - test/unit/variable_name_generator_test.rb
309
+ has_rdoc: