Module: Cura::Event

Defined in:
lib/cura/event.rb,
lib/cura/event/base.rb,
lib/cura/event/click.rb,
lib/cura/event/focus.rb,
lib/cura/event/mouse.rb,
lib/cura/event/resize.rb,
lib/cura/event/handler.rb,
lib/cura/event/unfocus.rb,
lib/cura/event/key_down.rb,
lib/cura/event/selected.rb,
lib/cura/event/dispatcher.rb,
lib/cura/event/mouse_button.rb,
lib/cura/event/mouse_wheel_up.rb,
lib/cura/event/middleware/base.rb,
lib/cura/event/mouse_wheel_down.rb,
lib/cura/event/middleware/dispatch.rb,
lib/cura/event/middleware/aimer/base.rb,
lib/cura/event/middleware/translator/base.rb,
lib/cura/event/middleware/aimer/mouse_focus.rb,
lib/cura/event/middleware/aimer/target_option.rb,
lib/cura/event/middleware/translator/mouse_click.rb,
lib/cura/event/middleware/aimer/dispatcher_target.rb

Overview

The container for Event::Base and it’s subclasses.

Defined Under Namespace

Modules: Middleware Classes: Base, Click, Dispatcher, Focus, Handler, KeyDown, Mouse, MouseButton, MouseWheelDown, MouseWheelUp, Resize, Selected, Unfocus

Class Method Summary collapse

Class Method Details

.allArray<Class>

Get all Event::Base subclasses.

Returns:

  • (Array<Class>)


8
9
10
# File 'lib/cura/event.rb', line 8

def all
  @all ||= []
end

.find_by_name(name) ⇒ nil, Class

Find an Event::Base subclass by it’s name.

Parameters:

  • name (#to_sym)

    The name of the event. For example, ‘SomeAction` would be `:some_action`.

Returns:

  • (nil, Class)

    The Event::Base subclass.



16
17
18
19
20
# 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 = {}) ⇒ Object

Initialize an Event::Base subclass by it’s name.

Parameters:

  • name (#to_sym)

    The name of the event class.

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
# 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