Class: Browser::Event
Overview
Wrapper for JS events
Instance Method Summary collapse
-
#alt? ⇒ Boolean
True if the Alt key was pressed when this event fired, false otherwise.
-
#code ⇒ Numeric
The key code associated with this event.
-
#ctrl? ⇒ Boolean
True if the Ctrl key was pressed when this event fired, false otherwise.
-
#initialize(native) ⇒ Event
constructor
A new instance of Event.
-
#meta? ⇒ Boolean
True if the Meta/Command/Windows key was pressed when this event fired, false otherwise.
-
#method_missing(name, *args) ⇒ Object
Return properties on the event not covered by Ruby methods.
-
#prevent ⇒ Browser::Event
Prevent the runtime from executing this event’s default behavior.
-
#prevented? ⇒ Boolean
True if ‘prevent` has been called on this event, false otherwise.
-
#shift? ⇒ Boolean
True if the Shift key was pressed when this event fired, false otherwise.
-
#stop_propagation ⇒ Object
Prevent the runtime from bubbling this event up the hierarchy.
-
#target ⇒ Browser::Element
The target for this event.
-
#to_n ⇒ JS
The native event wrapped by this object.
Constructor Details
#initialize(native) ⇒ Event
Returns a new instance of Event.
5 6 7 |
# File 'lib/browser/event.rb', line 5 def initialize native @native = native end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
Return properties on the event not covered by Ruby methods.
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/browser/event.rb', line 74 def method_missing name, *args property = name.gsub(/_[a-z]/) { |match| match[-1, 1].upcase } value = `#@native[property]` if `!!value && #{Proc === value}` value.call(*args) elsif `value == null` nil else value end end |
Instance Method Details
#alt? ⇒ Boolean
Returns true if the Alt key was pressed when this event fired, false otherwise.
55 56 57 |
# File 'lib/browser/event.rb', line 55 def alt? `#@native.altKey` end |
#code ⇒ Numeric
Returns the key code associated with this event. Only useful for keyboard-based events.
69 70 71 |
# File 'lib/browser/event.rb', line 69 def code `#@native.keyCode` end |
#ctrl? ⇒ Boolean
Returns true if the Ctrl key was pressed when this event fired, false otherwise.
49 50 51 |
# File 'lib/browser/event.rb', line 49 def ctrl? `#@native.ctrlKey` end |
#meta? ⇒ Boolean
Returns true if the Meta/Command/Windows key was pressed when this event fired, false otherwise.
37 38 39 |
# File 'lib/browser/event.rb', line 37 def `#@native.metaKey` end |
#prevent ⇒ Browser::Event
Prevent the runtime from executing this event’s default behavior. For example, prevent navigation after clicking a link.
13 14 15 16 |
# File 'lib/browser/event.rb', line 13 def prevent `#@native.preventDefault()` self end |
#prevented? ⇒ Boolean
Returns true if ‘prevent` has been called on this event, false otherwise.
31 32 33 |
# File 'lib/browser/event.rb', line 31 def prevented? `#@native.defaultPrevented` end |
#shift? ⇒ Boolean
Returns true if the Shift key was pressed when this event fired, false otherwise.
43 44 45 |
# File 'lib/browser/event.rb', line 43 def shift? `#@native.shiftKey` end |
#stop_propagation ⇒ Object
Prevent the runtime from bubbling this event up the hierarchy. This is typically used to keep an event local to the element on which it was triggered, such as keeping a click event on a button from unintentionally triggering a handler on a parent element.
24 25 26 27 |
# File 'lib/browser/event.rb', line 24 def stop_propagation `#@native.stopPropagation()` self end |
#target ⇒ Browser::Element
Handle non-DOM events here
The target for this event
63 64 65 |
# File 'lib/browser/event.rb', line 63 def target Element.new(`#@native.target`) end |
#to_n ⇒ JS
Returns the native event wrapped by this object.
88 89 90 |
# File 'lib/browser/event.rb', line 88 def to_n @native end |