Module: WxRubyStyleAccessors

Defined in:
lib/wx/accessors.rb

Overview

WxSugar - Accessors

The default WxRuby interface has lots and lots of methods like

* get_position()
* set_size(a_size)
* is_checked()

and so on. Methods that retrieve set, or query attributes of an object are more normally in Ruby called simply by the attribute name:

* position()
* size = a_size
* checked?

This extension creates an alias for every WxRuby instance method that begins with get_, set_ or is_. Note that if you are calling a ‘setter’ method on self, you must explicitly send the message to self:

# set's self size to be 100px by 100px
self.size = Wx::Size.new(100, 100)
# only sets the value of a local variable 'size'
size = Wx::Size.new

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/wx/accessors.rb', line 26

def method_missing(sym, *args)
  case sym.to_s
  when /^(.*)\=$/
    meth = "set_#{$1}"
  when /^(.*)\?$/
    meth = "is_#{$1}"
  else
    meth = "get_#{sym}"
  end
  if respond_to?(meth)
    send(meth, *args)
  else
    e = NoMethodError.new("undefined method '#{sym}' for #{self.inspect}")
    e.set_backtrace(caller)
    Kernel.raise e
  end
end