module Cura::Event
The container for Event::Base
and it's subclasses.
Public Class Methods
all()
click to toggle source
Get all Event::Base
subclasses.
@return [Array<Class>]
# File lib/cura/event.rb, line 8 def all @all ||= [] end
find_by_name(name)
click to toggle source
Find an Event::Base
subclass by it's name.
@param [#to_sym] name The name of the event. For example, `SomeAction` would be `:some_action`. @return [nil, Class] The Event::Base
subclass.
# File lib/cura/event.rb, line 16 def find_by_name(name) name = name.to_sym all.find { |event_class| event_class.name == name } end
new_from_name(name, attributes={})
click to toggle source
Initialize an Event::Base
subclass by it's name.
@param [#to_sym] name The name of the event class.
# File lib/cura/event.rb, line 25 def new_from_name(name, attributes={}) # TODO: name should be a string formatted like so 'mouse:button:down' which would correspond to Cura::Event::Mouse::Button::Down event_class = find_by_name(name) raise ArgumentError, "Unknown event name '#{name}'" if event_class.nil? event_class.new(attributes) end