glib2 3.4.4 → 3.4.8

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.
data/lib/glib2.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2005-2019 Ruby-GNOME Project Team
1
+ # Copyright (C) 2005-2021 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -117,17 +117,46 @@ end
117
117
  require "glib2.so"
118
118
 
119
119
  module GLib
120
+ SIGNAL_HANDLER_PREFIX = "signal_do_"
121
+ VIRTUAL_FUNCTION_IMPLEMENTATION_PREFIX = "virtual_do_"
122
+
120
123
  module MetaInterface
121
124
  class << self
122
- def signal_callback(klass, id)
125
+ def signal_callback(klass, name)
123
126
  lambda do |instance, *args|
124
- klass.instance_method(id).bind(instance).call(*args)
127
+ method_name = "#{SIGNAL_HANDLER_PREFIX}#{name}"
128
+ klass.instance_method(method_name).bind(instance).call(*args)
125
129
  end
126
130
  end
127
131
  end
128
132
  end
129
133
 
130
134
  class Instantiatable
135
+ class << self
136
+ def method_added(name)
137
+ super
138
+
139
+ case name.to_s
140
+ when /\A#{Regexp.escape(SIGNAL_HANDLER_PREFIX)}/o
141
+ signal_name = $POSTMATCH
142
+ begin
143
+ signal_ = signal(signal_name)
144
+ rescue NoSignalError
145
+ return
146
+ end
147
+ return unless signal_.class != self
148
+ signal_handler_attach(signal_, name.to_s) do |instance, *args|
149
+ instance.__send__(name, *args)
150
+ end
151
+ when /\A#{Regexp.escape(VIRTUAL_FUNCTION_IMPLEMENTATION_PREFIX)}/o
152
+ ancestors.each do |klass|
153
+ next unless klass.respond_to?(:implement_virtual_function)
154
+ return if klass.implement_virtual_function(self, name)
155
+ end
156
+ end
157
+ end
158
+ end
159
+
131
160
  private
132
161
  def create_signal_handler(signal_name, callback)
133
162
  callback
data/lib/mkmf-gnome.rb CHANGED
@@ -28,7 +28,7 @@ end
28
28
 
29
29
  def disable_optimization_build_flag(flags)
30
30
  if gcc?
31
- RbConfig.expand(flags.dup).gsub(/(^|\s)?-O\d(\s|$)?/, '\\1-Og\\2')
31
+ RbConfig.expand(flags.dup).gsub(/(^|\s)?-O\d(\s|$)?/, '\\1-O0\\2')
32
32
  else
33
33
  flags
34
34
  end
@@ -0,0 +1,41 @@
1
+ # Copyright (C) 2021 Ruby-GNOME 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 TestError < Test::Unit::TestCase
18
+ sub_test_case("error class") do
19
+ def test_code
20
+ assert_equal(nil,
21
+ GLib::BookmarkFileError.new.code)
22
+ end
23
+
24
+ def test_domain
25
+ assert_equal("g-bookmark-file-error-quark",
26
+ GLib::BookmarkFileError.new.domain)
27
+ end
28
+ end
29
+
30
+ sub_test_case("error code class") do
31
+ def test_code
32
+ assert_equal(GLib::BookmarkFileError::READ,
33
+ GLib::BookmarkFileError::Read.new.code)
34
+ end
35
+
36
+ def test_domain
37
+ assert_equal("g-bookmark-file-error-quark",
38
+ GLib::BookmarkFileError::Read.new.domain)
39
+ end
40
+ end
41
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib2
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.4
4
+ version: 3.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2021-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pkg-config
@@ -65,6 +65,8 @@ files:
65
65
  - Rakefile
66
66
  - ext/glib2/depend
67
67
  - ext/glib2/extconf.rb
68
+ - ext/glib2/glib-enum-types.c
69
+ - ext/glib2/glib-enum-types.h
68
70
  - ext/glib2/glib2.def
69
71
  - ext/glib2/rbgcompat.h
70
72
  - ext/glib2/rbglib-bytes.c
@@ -175,6 +177,7 @@ files:
175
177
  - test/test-bytes.rb
176
178
  - test/test-date-time.rb
177
179
  - test/test-enum.rb
180
+ - test/test-error.rb
178
181
  - test/test-file-utils.rb
179
182
  - test/test-flags.rb
180
183
  - test/test-glib2.rb