Module: SPQR::Raiseable::InstanceMixins
- Defined in:
- lib/spqr/event.rb
Instance Method Summary collapse
Instance Method Details
#app ⇒ Object
113 114 115 |
# File 'lib/spqr/event.rb', line 113 def app self.class.app end |
#bang! ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/spqr/event.rb', line 125 def bang! unless schema_class log.fatal("No schema class defined for SPQR event class #{self.class.name}; will not raise event. Did you register this event class?") return end log.info("Raising an event of class #{self.class.name}") event = Qmf::QmfEvent.new(schema_class) log.debug "Created QmfEvent is #{event.inspect}" self.class..args.each do |arg| val = self.send arg.name log.debug "setting #{arg.name} of event to #{val}" event.send "#{arg.name}=", val end log.debug "event to raise is #{event.inspect} (#{event})" log.debug "arguments are #{event.arguments.inspect} (#{event.arguments})" app.agent.raise_event(event) end |
#initialize(*args) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/spqr/event.rb', line 101 def initialize(*args) if args.size > self.class.attr_setters.size msg = "Too many arguments (max #{self.class.attr_setters.size}) to #{self.class.name}#initialize: #{args}" log.error msg raise ArgumentError.new(msg) end = self.class.attr_setters.zip(args).reject {|setter,val| val==nil} .each {|| self.send *} end |
#log ⇒ Object
121 122 123 |
# File 'lib/spqr/event.rb', line 121 def log self.class.log end |
#schema_class ⇒ Object
117 118 119 |
# File 'lib/spqr/event.rb', line 117 def schema_class self.class.schema_class end |