class Pango::Loader

Private Instance Methods

convert_attribute_classes() click to toggle source
# File lib/pango/loader.rb, line 38
def convert_attribute_classes
  self.class.register_boxed_class_converter(Attribute.gtype) do |attribute|
    attribute.klass.type.to_class
  end
end
load_field_reader(info, i, field_info, klass, name, method_name) click to toggle source
Calls superclass method
# File lib/pango/loader.rb, line 60
def load_field_reader(info, i, field_info, klass, name, method_name)
  case klass.name
  when "Pango::AttrShape"
    return if klass.method_defined?(method_name)
  end
  super
end
load_method_info(info, klass, method_name) click to toggle source
Calls superclass method
# File lib/pango/loader.rb, line 68
def load_method_info(info, klass, method_name)
  case klass.name
  when "Pango::Matrix"
    case method_name
    when "translate", "scale", "rotate", "concat"
      method_name += "!"
    end
  when "Pango::AttrList", "Pango::AttrIterator"
    return if klass.method_defined?(method_name)
  end
  super(info, klass, method_name)
end
load_struct_info(info) click to toggle source
Calls superclass method
# File lib/pango/loader.rb, line 44
def load_struct_info(info)
  case info.name
  when "AttrClass"
    klass = self.class.define_struct(info.size,
                                     info.name,
                                     @base_module)
    load_fields(info, klass)
  when /Class\z/
    super
  when "Attribute", /\AAttr[A-Z]/
    @pending_attribute_infos << info
  else
    super
  end
end
post_load(repository, namespace) click to toggle source
# File lib/pango/loader.rb, line 24
def post_load(repository, namespace)
  require_extension
  @pending_attribute_infos.each do |info|
    name = rubyish_class_name(info)
    klass = @base_module.const_get(name)
    prepare_class(klass) do
      load_fields(info, klass)
      load_methods(info, klass)
    end
  end
  require_libraries
  convert_attribute_classes
end
pre_load(repository, namespace) click to toggle source
# File lib/pango/loader.rb, line 20
def pre_load(repository, namespace)
  @pending_attribute_infos = []
end
require_extension() click to toggle source
# File lib/pango/loader.rb, line 81
def require_extension
  require "pango.so"
end
require_libraries() click to toggle source
# File lib/pango/loader.rb, line 85
def require_libraries
  require "pango/attr-list"
  require "pango/attr-type"
  require "pango/color"
  require "pango/font-description"
  require "pango/language"
  require "pango/layout"
  require "pango/rectangle"
  require "pango/markup"
  require "pango/matrix"
  require "pango/version"

  require "pango/deprecated"
end