Module: RubyMVC::Toolkit::SignalHandler::ClassMethods

Included in:
Models::Model, AbstractWidget, PropertyChangeNotifier
Defined in:
lib/ruby_mvc/toolkit/signal_handler.rb

Instance Method Summary collapse

Instance Method Details

#signal(signal, options = { :vetoable => false }) ⇒ Object



95
96
97
# File 'lib/ruby_mvc/toolkit/signal_handler.rb', line 95

def signal(signal, options = { :vetoable => false })
  signals[signal] = options
end

#signalsObject



91
92
93
# File 'lib/ruby_mvc/toolkit/signal_handler.rb', line 91

def signals
  @signals ||= {}
end

#valid_signal!(signal) ⇒ Object



116
117
118
119
120
# File 'lib/ruby_mvc/toolkit/signal_handler.rb', line 116

def valid_signal!(signal)
  if !valid_signal? (signal)
    raise ArgumentError, "class #{self} does not support signal '#{signal}'"
  end
end

#valid_signal?(signal) ⇒ Boolean

Returns:

  • (Boolean)


99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/ruby_mvc/toolkit/signal_handler.rb', line 99

def valid_signal?(signal)
#        puts "#{self}#signals.keys: #{signals.keys.inspect}"
#        puts "#{self}#signals.has_key? #{signal}: #{signals.has_key?(signal)}"
#        if self.superclass.respond_to?(:valid_signal?)
#          puts "#{self.superclass}#signals.keys: #{self.superclass.signals.keys.inspect}"
#          puts "#{self.superclass}#valid_signal? #{signal}: #{self.superclass.valid_signal?(signal)}"
#        end

  return true if signals.has_key? signal

  if self.superclass.respond_to? :valid_signal?
    self.superclass.valid_signal? signal
  else
    false
  end
end