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 |