pango 3.4.9 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89faabce8408c681178fe11b65625f7728b33b893ff19efc24aa2f988fe61cd7
4
- data.tar.gz: c92189d2f671c9a7145afdf16cab822868cf852c306d85018301a5be719fef34
3
+ metadata.gz: f5c7971e49c9d7418ec2c1bd93f7463a9265ae283283d487173602dc11fcab3e
4
+ data.tar.gz: 53ce605e63dfd2caf744520cf68389f98870683c17c9a631dee26b541bdfc4ac
5
5
  SHA512:
6
- metadata.gz: 55b361f9693af92870ba64cb513bd3eee314b2ae4c0c84adb105f94a7102de00c0e6a5d1c259819047f17b15ff16a8e3bcdc86d8e7d9df7d9b03e2f62db94fb0
7
- data.tar.gz: 28e29fcf99a41f70c186d1d9931a17e25e5431ef59f7123d5b219d97a5e27b70006a2fe2c2dfc4da1e365be7330c9622eec506b291a3731bdcc4a8042e176e2f
6
+ metadata.gz: 382c6b5da562c55d5562b8f58351df4b278740f59eabb4a1dab74134a55765d082172a2b8a2b215accb872334b8c9da615fa7652229bf7a4225455cc2df23947
7
+ data.tar.gz: d8126d43e3d52f0afd374dd85f2d964b9d7d6bccaaccdeaadd8428e46ceead84b61a9608747f7eff7221df7529b0e53918f2ee789b1225dfaf9b7ae22db663eb
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2017-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
@@ -14,15 +14,18 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- module Pango
18
- class CairoLoader < GObjectIntrospection::Loader
17
+ module PangoCairo
18
+ class Loader < GObjectIntrospection::Loader
19
19
  private
20
20
  def pre_load(repository, namespace)
21
- @context_class = @base_module.const_get(:Context)
21
+ @context_cairo_methods_module =
22
+ define_methods_module(:ContextCairoMethods)
23
+ @cairo_context_methods_module =
24
+ define_methods_module(:CairoContextMethods)
22
25
  end
23
26
 
24
27
  def post_load(repository, namespace)
25
- font_map_class = @base_module.const_get("CairoFontMap")
28
+ font_map_class = @base_module::FontMap
26
29
  font_types = []
27
30
  font_types << :quartz if Cairo::FontFace.quartz_supported?
28
31
  font_types << :win32 if Cairo::Surface.quartz_supported?
@@ -30,45 +33,52 @@ module Pango
30
33
  font_types.each do |font_type|
31
34
  font_map = font_map_class.new_for_font_type(font_type)
32
35
  next if font_map.nil?
33
- @base_module.const_set(font_map.class.gtype.name.gsub(/\APango/, ""),
34
- font_map.class)
36
+ name = font_map.class.gtype.name.gsub(/\APangoCairo/, "")
37
+ next if @base_module.const_defined?(name)
38
+ @base_module.const_set(name, font_map.class)
35
39
  end
36
- end
40
+ apply_methods_module(@context_cairo_methods_module, Pango::Context)
41
+ apply_methods_module(@cairo_context_methods_module, Cairo::Context)
37
42
 
38
- def rubyish_class_name(info)
39
- "Cairo#{super}"
43
+ @base_module.constants.each do |constant|
44
+ case constant
45
+ when :INVOKERS,
46
+ :Loader
47
+ next
48
+ else
49
+ value = @base_module.const_get(constant)
50
+ next if value == @context_cairo_methods_module
51
+ next if value == @cairo_context_methods_module
52
+ Pango.const_set("Cairo#{constant}", value)
53
+ end
54
+ end
40
55
  end
41
56
 
42
57
  def load_function_info(info)
43
58
  case info.name
44
59
  when /\Acontext_get_(.+)\z/
45
60
  method_name = $1
46
- define_method(info, @context_class, method_name)
61
+ define_method(info, @context_cairo_methods_module, method_name)
47
62
  when /\Acontext_set_(.+)\z/
48
63
  method_base_name = $1
49
64
  setter_method_name = "set_#{method_base_name}"
50
- if @context_class.method_defined?(setter_method_name)
51
- # ignore
52
- return
53
- end
54
- define_method(info, @context_class, setter_method_name)
65
+ define_method(info, @context_cairo_methods_module, setter_method_name)
55
66
  if info.n_args == 2
56
67
  equal_method_name = "#{method_base_name}="
57
- remove_existing_method(@context_class, equal_method_name)
58
- @context_class.__send__(:alias_method,
59
- equal_method_name,
60
- setter_method_name)
68
+ @context_cairo_methods_module.__send__(:alias_method,
69
+ equal_method_name,
70
+ setter_method_name)
61
71
  end
62
72
  when /\Afont_map_/
63
73
  # ignore
64
74
  when /\Acreate_(.+)\z/
65
- define_method(info, Cairo::Context, "create_pango_#{$1}")
75
+ define_method(info, @cairo_context_methods_module, "create_pango_#{$1}")
66
76
  when /\A(.+_path)\z/
67
- define_method(info, Cairo::Context, "pango_#{$1}")
77
+ define_method(info, @cairo_context_methods_module, "pango_#{$1}")
68
78
  when /\Ashow_(.+)\z/
69
- define_method(info, Cairo::Context, "show_pango_#{$1}")
79
+ define_method(info, @cairo_context_methods_module, "show_pango_#{$1}")
70
80
  when /\Aupdate_(.+)\z/
71
- define_method(info, Cairo::Context, "update_pango_#{$1}")
81
+ define_method(info, @cairo_context_methods_module, "update_pango_#{$1}")
72
82
  else
73
83
  warn("Unsupported PangoCairo function: #{info.name}")
74
84
  end
@@ -14,11 +14,24 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- module Pango
18
- class FcLoader < GObjectIntrospection::Loader
19
- private
20
- def rubyish_class_name(info)
21
- "Fc#{super}"
17
+ module PangoFc
18
+ class Loader < GObjectIntrospection::Loader
19
+ def post_load(repository, namespace)
20
+ @base_module.constants.each do |constant|
21
+ case constant
22
+ when :INVOKERS,
23
+ :Loader
24
+ next
25
+ else
26
+ if constant.to_s.upcase == constant.to_s
27
+ name = "FC_#{constant}"
28
+ else
29
+ name = "Fc#{constant}"
30
+ end
31
+ value = @base_module.const_get(constant)
32
+ Pango.const_set(name, value)
33
+ end
34
+ end
22
35
  end
23
36
  end
24
37
  end
@@ -14,11 +14,24 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- module Pango
18
- class FT2Loader < GObjectIntrospection::Loader
19
- private
20
- def rubyish_class_name(info)
21
- "FT2#{super}"
17
+ module PangoFT2
18
+ class Loader < GObjectIntrospection::Loader
19
+ def post_load(repository, namespace)
20
+ @base_module.constants.each do |constant|
21
+ case constant
22
+ when :INVOKERS,
23
+ :Loader
24
+ next
25
+ else
26
+ if constant.to_s.upcase == constant.to_s
27
+ name = "FT2_#{constant}"
28
+ else
29
+ name = "FT2#{constant}"
30
+ end
31
+ value = @base_module.const_get(constant)
32
+ Pango.const_set(name, value)
33
+ end
34
+ end
22
35
  end
23
36
  end
24
37
  end
data/lib/pango/loader.rb CHANGED
@@ -26,8 +26,10 @@ module Pango
26
26
  @pending_attribute_infos.each do |info|
27
27
  name = rubyish_class_name(info)
28
28
  klass = @base_module.const_get(name)
29
- load_fields(info, klass)
30
- load_methods(info, klass)
29
+ prepare_class(klass) do
30
+ load_fields(info, klass)
31
+ load_methods(info, klass)
32
+ end
31
33
  end
32
34
  require_libraries
33
35
  convert_attribute_classes
@@ -14,11 +14,24 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- module Pango
18
- class OTLoader < GObjectIntrospection::Loader
19
- private
20
- def rubyish_class_name(info)
21
- "OT#{super}"
17
+ module PangoOT
18
+ class Loader < GObjectIntrospection::Loader
19
+ def post_load(repository, namespace)
20
+ @base_module.constants.each do |constant|
21
+ case constant
22
+ when :INVOKERS,
23
+ :Loader
24
+ next
25
+ else
26
+ if constant.to_s.upcase == constant.to_s
27
+ name = "OT_#{constant}"
28
+ else
29
+ name = "OT#{constant}"
30
+ end
31
+ value = @base_module.const_get(constant)
32
+ Pango.const_set(name, value)
33
+ end
34
+ end
22
35
  end
23
36
  end
24
37
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2017-2022 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
@@ -47,7 +47,9 @@ module Pango
47
47
 
48
48
  def dup
49
49
  duplicated = self.class.new(x, y, width, height)
50
- duplicated.taint if tainted?
50
+ if respond_to?(:tainted?) and tainted?
51
+ duplicated.taint
52
+ end
51
53
  duplicated
52
54
  end
53
55
  end
data/lib/pango.rb CHANGED
@@ -30,22 +30,30 @@ module Pango
30
30
 
31
31
  loader = Loader.new(self)
32
32
  loader.load("Pango")
33
+ end
33
34
 
34
- cairo_loader = CairoLoader.new(self)
35
- cairo_loader.load("PangoCairo")
35
+ module PangoCairo
36
+ loader = Loader.new(self)
37
+ loader.load("PangoCairo")
38
+ end
36
39
 
37
- fc_loader = FcLoader.new(self)
40
+ module PangoFc
41
+ loader = Loader.new(self)
38
42
  begin
39
- fc_loader.load("PangoFc")
43
+ loader.load("PangoFc")
40
44
  rescue GObjectIntrospection::RepositoryError::TypelibNotFound
41
45
  end
46
+ end
42
47
 
43
- ft2_loader = FT2Loader.new(self)
44
- ft2_loader.load("PangoFT2")
48
+ module PangoFT2
49
+ loader = Loader.new(self)
50
+ loader.load("PangoFT2")
51
+ end
45
52
 
46
- ot_loader = OTLoader.new(self)
53
+ module PangoOT
54
+ loader = Loader.new(self)
47
55
  begin
48
- ot_loader.load("PangoOT")
56
+ loader.load("PangoOT")
49
57
  rescue GObjectIntrospection::RepositoryError::TypelibNotFound
50
58
  end
51
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pango
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.9
4
+ version: 3.5.0
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-08-10 00:00:00.000000000 Z
11
+ date: 2022-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cairo-gobject
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.4.9
19
+ version: 3.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.4.9
26
+ version: 3.5.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gobject-introspection
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.4.9
33
+ version: 3.5.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.4.9
40
+ version: 3.5.0
41
41
  description: Ruby/Pango is a Ruby binding of pango-1.x based on GObject-Introspection.
42
42
  email: ruby-gnome2-devel-en@lists.sourceforge.net
43
43
  executables: []
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.3.0.dev
106
+ rubygems_version: 3.4.0.dev
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: Ruby/Pango is a Ruby binding of pango-1.x.