gio2 2.1.0-x86-mingw32 → 2.2.0-x86-mingw32

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +26 -9
  3. data/ext/gio2/extconf.rb +38 -28
  4. data/ext/gio2/rb-gio2-pollable-source.c +59 -0
  5. data/ext/gio2/{rbgiofilteroutputstream.c → rb-gio2.c} +9 -5
  6. data/ext/gio2/{gio2.c → rb-gio2.h} +5 -10
  7. data/extconf.rb +22 -6
  8. data/lib/1.9/gio2.so +0 -0
  9. data/lib/2.0/gio2.so +0 -0
  10. data/lib/2.1/gio2.so +0 -0
  11. data/lib/gio2/deprecated.rb +16 -0
  12. data/lib/gio2/inet-address.rb +33 -0
  13. data/lib/gio2/input-stream.rb +39 -0
  14. data/lib/gio2/loader.rb +244 -0
  15. data/lib/gio2/output-stream.rb +24 -0
  16. data/lib/gio2/pollable-input-stream.rb +51 -0
  17. data/lib/gio2/pollable-output-stream.rb +32 -0
  18. data/lib/gio2/resources.rb +62 -0
  19. data/lib/gio2.rb +38 -143
  20. data/test/fixture/content-type/x-content/unix-software/autorun.sh +1 -0
  21. data/test/fixture/resource/Rakefile +32 -0
  22. data/test/fixture/resource/logo.png +0 -0
  23. data/test/fixture/resource/ruby-gio2.gresource +0 -0
  24. data/test/fixture/resource/ruby-gio2.gresource.xml +6 -0
  25. data/test/gio2-test-utils/fixture.rb +24 -0
  26. data/test/gio2-test-utils/socket-client.rb +59 -0
  27. data/test/gio2-test-utils.rb +21 -0
  28. data/test/run-test.rb +45 -9
  29. data/test/test-buffered-input-stream.rb +23 -0
  30. data/test/test-charset-converter.rb +23 -0
  31. data/test/test-content-type.rb +31 -0
  32. data/test/test-data-input-stream.rb +21 -0
  33. data/test/test-file-enumerator.rb +26 -0
  34. data/test/test-file-monitor.rb +33 -0
  35. data/test/test-file.rb +28 -0
  36. data/test/test-inet-address.rb +34 -0
  37. data/test/test-input-stream.rb +36 -0
  38. data/test/test-output-stream.rb +39 -0
  39. data/test/test-pollable-input-stream.rb +54 -0
  40. data/test/test-pollable-output-stream.rb +53 -0
  41. data/test/test-resources.rb +58 -0
  42. metadata +49 -107
  43. data/README +0 -34
  44. data/ext/gio2/depend +0 -11
  45. data/ext/gio2/gio2.def +0 -2
  46. data/ext/gio2/gio2.h +0 -30
  47. data/ext/gio2/rbgio.c +0 -133
  48. data/ext/gio2/rbgio2.h +0 -158
  49. data/ext/gio2/rbgio2conversions.h +0 -154
  50. data/ext/gio2/rbgio2private.h +0 -148
  51. data/ext/gio2/rbgioappinfo.c +0 -317
  52. data/ext/gio2/rbgioapplaunchcontext.c +0 -81
  53. data/ext/gio2/rbgioasyncinitable.c +0 -246
  54. data/ext/gio2/rbgioasyncresult.c +0 -41
  55. data/ext/gio2/rbgiobufferedinputstream.c +0 -167
  56. data/ext/gio2/rbgiobufferedoutputstream.c +0 -50
  57. data/ext/gio2/rbgiocancellable.c +0 -180
  58. data/ext/gio2/rbgiocharsetconverter.c +0 -57
  59. data/ext/gio2/rbgiocontenttype.c +0 -131
  60. data/ext/gio2/rbgioconverter.c +0 -113
  61. data/ext/gio2/rbgioconverterinputstream.c +0 -43
  62. data/ext/gio2/rbgioconverteroutputstream.c +0 -43
  63. data/ext/gio2/rbgiodatainputstream.c +0 -309
  64. data/ext/gio2/rbgiodataoutputstream.c +0 -186
  65. data/ext/gio2/rbgiodesktopappinfo.c +0 -87
  66. data/ext/gio2/rbgiodrive.c +0 -266
  67. data/ext/gio2/rbgioemblem.c +0 -52
  68. data/ext/gio2/rbgioemblemedicon.c +0 -65
  69. data/ext/gio2/rbgiofile.c +0 -2045
  70. data/ext/gio2/rbgiofileattribute.c +0 -114
  71. data/ext/gio2/rbgiofileattributeinfo.c +0 -86
  72. data/ext/gio2/rbgiofileattributeinfolist.c +0 -108
  73. data/ext/gio2/rbgiofileattributematcher.c +0 -95
  74. data/ext/gio2/rbgiofiledescriptorbased.c +0 -45
  75. data/ext/gio2/rbgiofileenumerator.c +0 -166
  76. data/ext/gio2/rbgiofileicon.c +0 -41
  77. data/ext/gio2/rbgiofileinfo.c +0 -617
  78. data/ext/gio2/rbgiofileinputstream.c +0 -91
  79. data/ext/gio2/rbgiofileiostream.c +0 -98
  80. data/ext/gio2/rbgiofilemonitor.c +0 -46
  81. data/ext/gio2/rbgiofilenamecompleter.c +0 -73
  82. data/ext/gio2/rbgiofileoutputstream.c +0 -98
  83. data/ext/gio2/rbgiofilterinputstream.c +0 -28
  84. data/ext/gio2/rbgioicon.c +0 -69
  85. data/ext/gio2/rbgioinetaddress.c +0 -118
  86. data/ext/gio2/rbgioinetsocketaddress.c +0 -41
  87. data/ext/gio2/rbgioinitable.c +0 -199
  88. data/ext/gio2/rbgioinputstream.c +0 -341
  89. data/ext/gio2/rbgioio.c +0 -73
  90. data/ext/gio2/rbgioiomodule.c +0 -45
  91. data/ext/gio2/rbgioiomodules.c +0 -47
  92. data/ext/gio2/rbgioioscheduler.c +0 -102
  93. data/ext/gio2/rbgioioschedulerjob.c +0 -121
  94. data/ext/gio2/rbgioiostream.c +0 -107
  95. data/ext/gio2/rbgioloadableicon.c +0 -92
  96. data/ext/gio2/rbgiomemoryinputstream.c +0 -67
  97. data/ext/gio2/rbgiomemoryoutputstream.c +0 -44
  98. data/ext/gio2/rbgiomount.c +0 -286
  99. data/ext/gio2/rbgiomountoperation.c +0 -53
  100. data/ext/gio2/rbgionetworkaddress.c +0 -59
  101. data/ext/gio2/rbgionetworkservice.c +0 -45
  102. data/ext/gio2/rbgiooutputstream.c +0 -331
  103. data/ext/gio2/rbgioresolver.c +0 -230
  104. data/ext/gio2/rbgioseekable.c +0 -91
  105. data/ext/gio2/rbgiosimpleasyncresult.c +0 -152
  106. data/ext/gio2/rbgiosocket.c +0 -390
  107. data/ext/gio2/rbgiosocketaddress.c +0 -34
  108. data/ext/gio2/rbgiosocketaddressenumerator.c +0 -83
  109. data/ext/gio2/rbgiosocketclient.c +0 -207
  110. data/ext/gio2/rbgiosocketconnectable.c +0 -41
  111. data/ext/gio2/rbgiosocketconnection.c +0 -66
  112. data/ext/gio2/rbgiosocketconnectionfactory.c +0 -39
  113. data/ext/gio2/rbgiosocketcontrolmessage.c +0 -82
  114. data/ext/gio2/rbgiosocketlistener.c +0 -246
  115. data/ext/gio2/rbgiosocketservice.c +0 -66
  116. data/ext/gio2/rbgiosrvtarget.c +0 -76
  117. data/ext/gio2/rbgiotcpconnection.c +0 -28
  118. data/ext/gio2/rbgiothemedicon.c +0 -83
  119. data/ext/gio2/rbgiothreadedsocketservice.c +0 -43
  120. data/ext/gio2/rbgiotlscertificate.c +0 -89
  121. data/ext/gio2/rbgiounixconnection.c +0 -71
  122. data/ext/gio2/rbgiounixfdlist.c +0 -115
  123. data/ext/gio2/rbgiounixfdmessage.c +0 -74
  124. data/ext/gio2/rbgiounixinputstream.c +0 -51
  125. data/ext/gio2/rbgiounixmount.c +0 -164
  126. data/ext/gio2/rbgiounixmountmonitor.c +0 -65
  127. data/ext/gio2/rbgiounixmountpoint.c +0 -136
  128. data/ext/gio2/rbgiounixmountpoints.c +0 -58
  129. data/ext/gio2/rbgiounixmounts.c +0 -58
  130. data/ext/gio2/rbgiounixoutputstream.c +0 -51
  131. data/ext/gio2/rbgiounixsocketaddress.c +0 -69
  132. data/ext/gio2/rbgiovfs.c +0 -84
  133. data/ext/gio2/rbgiovolume.c +0 -193
  134. data/ext/gio2/rbgiovolumemonitor.c +0 -77
  135. data/ext/gio2/rbgiozlibcompressor.c +0 -52
  136. data/ext/gio2/rbgiozlibdecompressor.c +0 -45
  137. data/ext/gio2/util.c +0 -303
  138. data/test/test_bufferedinputstream.rb +0 -9
  139. data/test/test_charsetconverter.rb +0 -9
  140. data/test/test_datainputstream.rb +0 -7
  141. data/test/test_fileenumerator.rb +0 -8
  142. data/test/test_filemonitor.rb +0 -17
  143. data/test/test_inetaddress.rb +0 -8
@@ -0,0 +1,51 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gio
18
+ module PollableInputStream
19
+ alias_method :create_source_raw, :create_source
20
+ def create_source(&block)
21
+ source = create_source_raw
22
+ source.extend(PollableSource)
23
+ source.set_callback(&block)
24
+ source
25
+ end
26
+
27
+ alias_method :read_nonblocking_raw, :read_nonblocking
28
+ def read_nonblocking(size=nil)
29
+ if size.nil?
30
+ all = "".force_encoding("ASCII-8BIT")
31
+ buffer_size = 8192
32
+ buffer = " ".force_encoding("ASCII-8BIT") * buffer_size
33
+ loop do
34
+ begin
35
+ read_bytes = read_nonblocking_raw(buffer, buffer.bytesize)
36
+ rescue IOError::WouldBlock
37
+ break
38
+ end
39
+ all << buffer.byteslice(0, read_bytes)
40
+ break if read_bytes != buffer_size
41
+ end
42
+ all
43
+ else
44
+ buffer = " " * size
45
+ read_bytes = read_nonblocking_raw(buffer, buffer.bytesize)
46
+ buffer.replace(buffer.byteslice(0, read_bytes))
47
+ buffer
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,32 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gio
18
+ module PollableOutputStream
19
+ alias_method :create_source_raw, :create_source
20
+ def create_source(&block)
21
+ source = create_source_raw
22
+ source.extend(PollableSource)
23
+ source.set_callback(&block)
24
+ source
25
+ end
26
+
27
+ alias_method :write_nonblocking_raw, :write_nonblocking
28
+ def write_nonblocking(data)
29
+ write_nonblocking_raw(data, data.bytesize)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,62 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gio
18
+ module Resources
19
+ class << self
20
+ def register(resource)
21
+ resource._register
22
+ end
23
+
24
+ def unregister(resource)
25
+ resource._unregister
26
+ end
27
+
28
+ alias_method :lookup_data_raw, :lookup_data
29
+ def lookup_data(path, flags=nil)
30
+ flags ||= ResourceLookupFlags::NONE
31
+ lookup_data_raw(path, flags)
32
+ end
33
+
34
+ alias_method :open_stream_raw, :open_stream
35
+ def open_stream(path, flags=nil)
36
+ flags ||= ResourceLookupFlags::NONE
37
+ input_stream = open_stream_raw(path, flags)
38
+ if block_given?
39
+ begin
40
+ yield(input_stream)
41
+ ensure
42
+ input_stream.close
43
+ end
44
+ else
45
+ input_stream
46
+ end
47
+ end
48
+
49
+ alias_method :enumerate_children_raw, :enumerate_children
50
+ def enumerate_children(path, flags=nil)
51
+ flags ||= ResourceLookupFlags::NONE
52
+ enumerate_children_raw(path, flags)
53
+ end
54
+
55
+ alias_method :get_info_raw, :get_info
56
+ def get_info(path, flags=nil)
57
+ flags ||= ResourceLookupFlags::NONE
58
+ get_info_raw(path, flags)
59
+ end
60
+ end
61
+ end
62
+ end
data/lib/gio2.rb CHANGED
@@ -1,161 +1,56 @@
1
- require 'glib2'
1
+ # Copyright (C) 2013-2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ require "gobject-introspection"
18
+ require "glib2"
2
19
 
3
20
  base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
4
21
  vendor_dir = base_dir + "vendor" + "local"
5
22
  vendor_bin_dir = vendor_dir + "bin"
6
23
  GLib.prepend_dll_path(vendor_bin_dir)
7
- begin
8
- major, minor, _ = RUBY_VERSION.split(/\./)
9
- require "#{major}.#{minor}/gio2.so"
10
- rescue LoadError
11
- require "gio2.so"
12
- end
24
+ vendor_girepository_dir = vendor_dir + "lib" + "girepository-1.0"
25
+ GObjectIntrospection.prepend_typelib_path(vendor_girepository_dir)
13
26
 
14
27
  require "gio2/deprecated"
28
+ require "gio2/loader"
15
29
 
16
- class Gio::DataInputStream
17
- include Enumerable
18
-
19
- def each
20
- while line = read_line
21
- yield line
22
- end
23
- end
24
-
25
- alias each_line each
26
-
27
- def each_async(io_priority = GLib::PRIORITY_DEFAULT, cancellable = nil, &block)
28
- each_async_loop io_priority, cancellable, block
29
- self
30
- end
31
-
32
- alias each_line_async each_async
33
-
34
- private
35
-
36
- def each_async_loop(io_priority, cancellable, block)
37
- # TODO: Should we really pass in the object? I mean, how often is that
38
- # useful? We can always get it with result.source_object as well.
39
- read_line_async io_priority, cancellable do |result|
40
- if line = read_line_finish(result)
41
- block.call line
42
- each_async_loop io_priority, cancellable, block
43
- end
44
- end
45
- end
46
-
47
- # TODO: Add #each_byte?
48
- end
49
-
50
- if Gio.const_defined? :DesktopAppInfo
51
- class Gio::DesktopAppInfo
52
- class << self
53
- def desktop_env=(desktop_env)
54
- set_desktop_env desktop_env
55
- desktop_env
56
- end
57
- end
58
- end
59
- end
60
-
61
- module Gio::File
62
- include Enumerable
63
-
64
- def eql?(other)
65
- self === other and self == other
66
- end
67
-
68
- alias each enumerate_children
69
-
70
- def each_async(num_files, attributes = nil, flags = nil,
71
- io_priority = GLib::PRIORITY_DEFAULT, cancellable = nil,
72
- &block)
73
- enumerate_children_async attributes, flags, io_priority, cancellable do |result|
74
- enumerate_children_finish(result).each_async num_files, io_priority, cancellable, &block
75
- end
76
- self
77
- end
78
- end
79
-
80
- class Gio::FileEnumerator
81
- include Enumerable
30
+ module Gio
31
+ LOG_DOMAIN = "Gio"
32
+ GLib::Log.set_log_domain(LOG_DOMAIN)
82
33
 
83
- def each(cancellable = nil)
84
- return self.enum_for unless block_given?
85
- while file = next_file(cancellable)
86
- yield file
87
- end
88
- close
89
- self
90
- end
91
-
92
- # TODO: Return Enumerator unless block_given?
93
- def each_async(num_files, io_priority = GLib::PRIORITY_DEFAULT, cancellable = nil, &block)
94
- each_async_loop num_files, io_priority, cancellable, block
34
+ class Error < StandardError
95
35
  end
96
36
 
97
- private
98
-
99
- def each_async_loop(num_files, io_priority, cancellable, block)
100
- next_files_async num_files, io_priority, cancellable do |result|
101
- files = next_files_finish(result)
102
- files.each do |file|
103
- block.call file
104
- end
105
- if files.length > 0
106
- each_async_loop num_files, io_priority, cancellable, block
37
+ class << self
38
+ def const_missing(name)
39
+ init
40
+ if const_defined?(name)
41
+ const_get(name)
107
42
  else
108
- close
43
+ super
109
44
  end
110
45
  end
111
- end
112
- end
113
46
 
114
- class Gio::FileInfo
115
- def directory?
116
- file_type == Gio::File::Type::DIRECTORY
117
- end
118
- end
119
-
120
- module Gio::Icon
121
- def eql?(other)
122
- self === other and self == other
123
- end
124
- end
125
-
126
- class Gio::InputStream
127
- def pending=(pending)
128
- pending ? set_pending : clear_pending
129
- end
130
- end
131
-
132
- class Gio::Resolver
133
- class << self
134
- def default=(default)
135
- set_default default
136
- default
137
- end
138
- end
139
- end
140
-
141
- module Gio::SocketConnectable
142
- include Enumerable
143
-
144
- def each(cancellable = nil)
145
- enumerator = enumerate
146
- while address = enumerator.next(cancellable)
147
- yield address
148
- end
149
- end
150
- end
151
-
152
- class Gio::UnixFDList
153
- include Enumerable
154
-
155
- def each
156
- i = 0
157
- while i < length
158
- yield self[i]
47
+ def init
48
+ class << self
49
+ remove_method(:init)
50
+ remove_method(:const_missing)
51
+ end
52
+ loader = Loader.new(self)
53
+ loader.load("Gio")
159
54
  end
160
55
  end
161
56
  end
@@ -0,0 +1,32 @@
1
+ # -*- ruby -*-
2
+ #
3
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ require "rake/clean"
20
+
21
+ gresource = "ruby-gio2.gresource"
22
+ gresource_xml = "#{gresource}.xml"
23
+ contents = ["logo.png"]
24
+
25
+ dependencies = contents + [gresource_xml]
26
+
27
+ CLEAN << gresource
28
+ file gresource => dependencies do
29
+ sh("glib-compile-resources", gresource_xml)
30
+ end
31
+
32
+ task :default => gresource
Binary file
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <gresources>
3
+ <gresource prefix="/org/ruby-gnome2/test">
4
+ <file>logo.png</file>
5
+ </gresource>
6
+ </gresources>
@@ -0,0 +1,24 @@
1
+ # Copyright (C) 2013 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module GioTestUtils
18
+ module Fixture
19
+ def fixture_path(*components)
20
+ base_dir = File.join(File.dirname(__FILE__), "..", "fixture")
21
+ File.expand_path(File.join(base_dir, *components))
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,59 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ require "socket"
18
+
19
+ module GioTestUtils
20
+ module SocketClient
21
+ def setup_socket_client
22
+ setup_server
23
+ setup_client
24
+ setup_loop
25
+ end
26
+
27
+ def teardown_socket_client
28
+ teardown_loop
29
+ teardown_client
30
+ teardown_server
31
+ end
32
+
33
+ def setup_server
34
+ @host = "127.0.0.1"
35
+ @server = TCPServer.new(@host, 0)
36
+ @port = @server.addr[1]
37
+ end
38
+
39
+ def teardown_server
40
+ @server.close
41
+ end
42
+
43
+ def setup_client
44
+ @client = Gio::SocketClient.new
45
+ @connection = @client.connect_to_host(@host, @port)
46
+ end
47
+
48
+ def teardown_client
49
+ @connection.close
50
+ end
51
+
52
+ def setup_loop
53
+ @loop = GLib::MainLoop.new
54
+ end
55
+
56
+ def teardown_loop
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright (C) 2013 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ require "test-unit"
18
+ require "test/unit/notify"
19
+
20
+ require "gio2-test-utils/fixture"
21
+ require "gio2-test-utils/socket-client"
data/test/run-test.rb CHANGED
@@ -1,15 +1,51 @@
1
1
  #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2013-2014 Ruby-GNOME2 Project Team
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
3
18
 
4
- base = File.dirname(File.expand_path(__FILE__))
5
- root = File.dirname(File.dirname(base))
6
- ['glib2', 'gio2'].each do |lib|
7
- ['ext/%s' % lib, 'lib'].each do |sub|
8
- $LOAD_PATH.unshift File.join(root, lib, sub)
19
+ ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
20
+ ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
21
+
22
+ glib_base = File.join(ruby_gnome2_base, "glib2")
23
+ gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
24
+ gio2_base = File.join(ruby_gnome2_base, "gio2")
25
+
26
+ modules = [
27
+ [glib_base, "glib2"],
28
+ [gobject_introspection_base, "gobject-introspection"],
29
+ [gio2_base, "gio2"],
30
+ ]
31
+
32
+ modules.each do |target, module_name|
33
+ makefile = File.join(target, "Makefile")
34
+ if File.exist?(makefile) and system("which make > /dev/null")
35
+ `make -C #{target.dump} > /dev/null` or exit(false)
9
36
  end
37
+ $LOAD_PATH.unshift(File.join(target, "ext", module_name))
38
+ $LOAD_PATH.unshift(File.join(target, "lib"))
10
39
  end
11
40
 
12
- require 'gio2'
13
- require File.join(root, 'glib2/test/glib-test-init')
41
+ $LOAD_PATH.unshift(File.join(glib_base, "test"))
42
+ require "glib-test-init"
43
+
44
+ $VERBOSE = false # TODO: remove me
45
+
46
+ $LOAD_PATH.unshift(File.join(gio2_base, "test"))
47
+ require "gio2-test-utils"
48
+
49
+ require "gio2"
14
50
 
15
- exit Test::Unit::AutoRunner.run(true, base)
51
+ exit Test::Unit::AutoRunner.run(true)
@@ -0,0 +1,23 @@
1
+ # Copyright (C) 2013 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestBufferedInputStream < Test::Unit::TestCase
18
+ def test_buffered_input_stream
19
+ assert_nothing_raised do
20
+ Gio::BufferedInputStream.new(Gio::FileInputStream.new)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # Copyright (C) 2013 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestCharsetConverter < Test::Unit::TestCase
18
+ def test_converter
19
+ assert_nothing_raised do
20
+ Gio::CharsetConverter.new("UTF-8", "ASCII")
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestContentType < Test::Unit::TestCase
18
+ def setup
19
+ @content_type = Gio::ContentType.new("image/jpeg")
20
+ end
21
+
22
+ def test_icon
23
+ assert_equal("image-jpeg",
24
+ @content_type.icon.names.first)
25
+ end
26
+
27
+ def test_guess
28
+ assert_equal(["audio/mpeg", false],
29
+ Gio::ContentType.guess("filename.mp3"))
30
+ end
31
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright (C) 2013 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestDataInputStream < Test::Unit::TestCase
18
+ def test_byte_order_property
19
+ assert_equal Gio::DataStreamByteOrder::BIG_ENDIAN, Gio::DataInputStream.new(Gio::MemoryInputStream.new).byte_order
20
+ end
21
+ end