class Gtk::Builder

Public Class Methods

new(options={}) click to toggle source
# File lib/gtk3/builder.rb, line 20
def initialize(options={})
  file      = options[:file]
  resource  = options[:resource]
  string    = options[:string]

  if file
    initialize_new_from_file(file)
  elsif resource
    initialize_new_from_resource(resource)
  elsif string
    initialize_new_from_string(string, string.bytesize)
  else
    initialize_raw
  end
end
Also aliased as: initialize_raw

Public Instance Methods

<<(target) click to toggle source
# File lib/gtk3/builder.rb, line 55
def <<(target)
  add(target)
  self
end
add(target) click to toggle source
# File lib/gtk3/builder.rb, line 43
def add(target)
  if target.respond_to?(:to_path)
    add_from_file(target.to_path)
  elsif target.start_with?("<") or target.start_with?(" ")
    add_from_string(target)
  elsif File.exist?(target)
    add_from_file(target)
  else
    add_from_resource(target)
  end
end
add_from_string(string) click to toggle source
# File lib/gtk3/builder.rb, line 39
def add_from_string(string)
  add_from_string_raw(string, string.bytesize)
end
Also aliased as: add_from_string_raw
add_from_string_raw(string)
Alias for: add_from_string
initialize_raw(options={})
Alias for: new

Private Instance Methods

__connect_signals__(connector, object, signal_name, handler_name, connect_object, flags) click to toggle source
# File lib/gtk3/builder.rb, line 65
def __connect_signals__(connector, object, signal_name,
                        handler_name, connect_object, flags)
  handler_name = normalize_handler_name(handler_name)
  if connect_object
    handler = connect_object.method(handler_name)
  else
    handler = connector.call(handler_name)
  end
  unless handler
    $stderr.puts("Undefined handler: #{handler_name}") if $DEBUG
    return
  end

  if flags.after?
    signal_connect_method = :signal_connect_after
  else
    signal_connect_method = :signal_connect
  end

  if handler.arity.zero?
    object.send(signal_connect_method, signal_name) {handler.call}
  else
    object.send(signal_connect_method, signal_name, &handler)
  end
end
normalize_handler_name(name) click to toggle source
# File lib/gtk3/builder.rb, line 61
def normalize_handler_name(name)
  name.gsub(/[-\s]+/, "_")
end