Completed
Push — master ( 3d0615...9036a3 )
by Yoh
01:06
created

Event.prevent_default()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
1
module Hyalite
2
  module DOM
3
    module Event
4
      EVENT_CLASSES = {
5
        # MouseEvent
6
        'click' => MouseEvent,
7
        'dblclick' => MouseEvent,
8
        'mousedown' => MouseEvent,
9
        'mouseup' => MouseEvent,
10
        'mousemove' => MouseEvent,
11
        'mouseenter' => MouseEvent,
12
        'mouseleave' => MouseEvent,
13
        'mouseover' => MouseEvent,
14
        'mouseout' => MouseEvent,
15
        'contextmenu' => MouseEvent,
16
17
        # DragEvent
18
        'drag' => DragEvent,
19
        'dragstart' => DragEvent,
20
        'dragend' => DragEvent,
21
        'dragenter' => DragEvent,
22
        'dragexit' => DragEvent,
23
        'dragleave' => DragEvent,
24
        'dragover' => DragEvent,
25
        'drop' => DragEvent,
26
27
        # KeyboardEvent
28
        'keydown' => KeyboardEvent,
29
        'keyup' => KeyboardEvent,
30
        'keypress' => KeyboardEvent,
31
      }
32
33
      def self.create(event)
34
        type = `event.type`
35
        event_class = EVENT_CLASSES[type]
36
        if event_class
37
          event_class.new(event)
38
        end
39
      end
40
41
      def target
42
        Node.create(`self.native.target`)
43
      end
44
45
      def prevent_default
46
        `self.native.preventDefault()`
47
      end
48
    end
49
  end
50
end
51