opal-browser 0.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.yardopts +1 -0
- data/Gemfile +11 -0
- data/README.md +106 -0
- data/Rakefile +5 -0
- data/config.ru +63 -0
- data/lib/opal/browser.rb +4 -0
- data/opal-browser.gemspec +23 -0
- data/opal/browser.rb +10 -0
- data/opal/browser/animation_frame.rb +29 -0
- data/opal/browser/canvas.rb +277 -0
- data/opal/browser/canvas/data.rb +73 -0
- data/opal/browser/canvas/gradient.rb +37 -0
- data/opal/browser/canvas/style.rb +123 -0
- data/opal/browser/canvas/text.rb +55 -0
- data/opal/browser/compatibility.rb +59 -0
- data/opal/browser/compatibility/animation_frame.rb +93 -0
- data/opal/browser/compatibility/dom/document/window.rb +15 -0
- data/opal/browser/compatibility/dom/element/css.rb +15 -0
- data/opal/browser/compatibility/dom/element/matches.rb +31 -0
- data/opal/browser/compatibility/dom/element/offset.rb +20 -0
- data/opal/browser/compatibility/dom/element/scroll.rb +25 -0
- data/opal/browser/compatibility/dom/element/style.rb +15 -0
- data/opal/browser/compatibility/dom/mutation_observer.rb +47 -0
- data/opal/browser/compatibility/http/request.rb +15 -0
- data/opal/browser/compatibility/immediate.rb +107 -0
- data/opal/browser/compatibility/window/scroll.rb +27 -0
- data/opal/browser/compatibility/window/size.rb +13 -0
- data/opal/browser/compatibility/window/view.rb +13 -0
- data/opal/browser/console.rb +137 -0
- data/opal/browser/cookies.rb +79 -0
- data/opal/browser/css.rb +24 -0
- data/opal/browser/css/declaration.rb +88 -0
- data/opal/browser/css/rule.rb +48 -0
- data/opal/browser/css/rule/style.rb +16 -0
- data/opal/browser/css/style_sheet.rb +83 -0
- data/opal/browser/css/unit.rb +188 -0
- data/opal/browser/dom.rb +95 -0
- data/opal/browser/dom/attribute.rb +19 -0
- data/opal/browser/dom/builder.rb +97 -0
- data/opal/browser/dom/cdata.rb +9 -0
- data/opal/browser/dom/character_data.rb +37 -0
- data/opal/browser/dom/comment.rb +9 -0
- data/opal/browser/dom/compatibility.rb +8 -0
- data/opal/browser/dom/document.rb +83 -0
- data/opal/browser/dom/document_fragment.rb +7 -0
- data/opal/browser/dom/element.rb +290 -0
- data/opal/browser/dom/element/input.rb +17 -0
- data/opal/browser/dom/element/offset.rb +67 -0
- data/opal/browser/dom/element/position.rb +37 -0
- data/opal/browser/dom/element/scroll.rb +49 -0
- data/opal/browser/dom/event.rb +240 -0
- data/opal/browser/dom/event/animation.rb +26 -0
- data/opal/browser/dom/event/audio_processing.rb +31 -0
- data/opal/browser/dom/event/base.rb +207 -0
- data/opal/browser/dom/event/before_unload.rb +13 -0
- data/opal/browser/dom/event/clipboard.rb +26 -0
- data/opal/browser/dom/event/close.rb +35 -0
- data/opal/browser/dom/event/composition.rb +38 -0
- data/opal/browser/dom/event/custom.rb +30 -0
- data/opal/browser/dom/event/device_light.rb +21 -0
- data/opal/browser/dom/event/device_motion.rb +38 -0
- data/opal/browser/dom/event/device_orientation.rb +36 -0
- data/opal/browser/dom/event/device_proximity.rb +31 -0
- data/opal/browser/dom/event/drag.rb +113 -0
- data/opal/browser/dom/event/focus.rb +23 -0
- data/opal/browser/dom/event/gamepad.rb +47 -0
- data/opal/browser/dom/event/hash_change.rb +26 -0
- data/opal/browser/dom/event/keyboard.rb +93 -0
- data/opal/browser/dom/event/message.rb +50 -0
- data/opal/browser/dom/event/mouse.rb +253 -0
- data/opal/browser/dom/event/page_transition.rb +21 -0
- data/opal/browser/dom/event/pop_state.rb +21 -0
- data/opal/browser/dom/event/progress.rb +31 -0
- data/opal/browser/dom/event/sensor.rb +13 -0
- data/opal/browser/dom/event/storage.rb +41 -0
- data/opal/browser/dom/event/touch.rb +69 -0
- data/opal/browser/dom/event/ui.rb +22 -0
- data/opal/browser/dom/event/wheel.rb +49 -0
- data/opal/browser/dom/mutation_observer.rb +118 -0
- data/opal/browser/dom/node.rb +317 -0
- data/opal/browser/dom/node_set.rb +88 -0
- data/opal/browser/dom/text.rb +21 -0
- data/opal/browser/effects.rb +39 -0
- data/opal/browser/event_source.rb +67 -0
- data/opal/browser/history.rb +54 -0
- data/opal/browser/http.rb +129 -0
- data/opal/browser/http/binary.rb +57 -0
- data/opal/browser/http/compatibility.rb +1 -0
- data/opal/browser/http/headers.rb +90 -0
- data/opal/browser/http/parameters.rb +8 -0
- data/opal/browser/http/request.rb +331 -0
- data/opal/browser/http/response.rb +115 -0
- data/opal/browser/immediate.rb +43 -0
- data/opal/browser/interval.rb +93 -0
- data/opal/browser/location.rb +77 -0
- data/opal/browser/navigator.rb +151 -0
- data/opal/browser/screen.rb +40 -0
- data/opal/browser/socket.rb +115 -0
- data/opal/browser/storage.rb +149 -0
- data/opal/browser/timeout.rb +60 -0
- data/opal/browser/utils.rb +56 -0
- data/opal/browser/version.rb +3 -0
- data/opal/browser/window.rb +113 -0
- data/opal/browser/window/compatibility.rb +3 -0
- data/opal/browser/window/scroll.rb +49 -0
- data/opal/browser/window/size.rb +35 -0
- data/opal/browser/window/view.rb +18 -0
- data/spec/dom/builder_spec.rb +69 -0
- data/spec/dom/document_spec.rb +40 -0
- data/spec/dom/element_spec.rb +46 -0
- data/spec/dom/event_spec.rb +127 -0
- data/spec/dom/mutation_observer_spec.rb +37 -0
- data/spec/dom/node_spec.rb +154 -0
- data/spec/dom_spec.rb +13 -0
- data/spec/event_source_spec.rb +42 -0
- data/spec/history_spec.rb +48 -0
- data/spec/http_spec.rb +87 -0
- data/spec/immediate_spec.rb +12 -0
- data/spec/json2.js +486 -0
- data/spec/sizzle.js +5 -0
- data/spec/socket_spec.rb +43 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/storage_spec.rb +26 -0
- data/spec/window_spec.rb +10 -0
- metadata +240 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
module Browser; module DOM
|
|
2
|
+
|
|
3
|
+
class Event
|
|
4
|
+
include Native
|
|
5
|
+
|
|
6
|
+
class Definition
|
|
7
|
+
include Native
|
|
8
|
+
|
|
9
|
+
def self.new(&block)
|
|
10
|
+
data = super(`{}`)
|
|
11
|
+
block.call(data) if block
|
|
12
|
+
|
|
13
|
+
data.to_n
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def bubbles!
|
|
17
|
+
`#@native.bubbles = true`
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def cancelable!
|
|
21
|
+
`#@native.cancelable = true`
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
module Target
|
|
26
|
+
def self.converters
|
|
27
|
+
@converters ||= []
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.register(&block)
|
|
31
|
+
converters << block
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.convert(value)
|
|
35
|
+
return value unless native?(value)
|
|
36
|
+
|
|
37
|
+
converters.each {|block|
|
|
38
|
+
if result = block.call(value)
|
|
39
|
+
return result
|
|
40
|
+
end
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.included(klass)
|
|
47
|
+
klass.instance_eval {
|
|
48
|
+
def self.target(&block)
|
|
49
|
+
DOM::Event::Target.register(&block)
|
|
50
|
+
end
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class Callback
|
|
55
|
+
attr_reader :target, :name, :selector
|
|
56
|
+
|
|
57
|
+
def initialize(target, name, selector = nil, &block)
|
|
58
|
+
%x{
|
|
59
|
+
callback = #{self};
|
|
60
|
+
func = function(event) {
|
|
61
|
+
event = #{::Browser::DOM::Event.new(`event`, `callback`)};
|
|
62
|
+
|
|
63
|
+
if (!#{`event`.stopped?}) {
|
|
64
|
+
#{block.call(`event`, *`event`.arguments)};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return !#{`event`.stopped?};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@function = `func`
|
|
72
|
+
@target = target
|
|
73
|
+
@name = name
|
|
74
|
+
@selector = selector
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def off
|
|
78
|
+
target.off(self)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def to_n
|
|
82
|
+
@function
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def on(name, selector = nil, &block)
|
|
87
|
+
raise ArgumentError, 'no block has been passed' unless block
|
|
88
|
+
|
|
89
|
+
name = Event.name_for(name)
|
|
90
|
+
callback = Callback.new(self, name, selector, &block)
|
|
91
|
+
|
|
92
|
+
callbacks.push(callback)
|
|
93
|
+
|
|
94
|
+
if selector
|
|
95
|
+
observe
|
|
96
|
+
deferred << [name, selector, block]
|
|
97
|
+
|
|
98
|
+
css(selector).on(name, &block)
|
|
99
|
+
else
|
|
100
|
+
`#@native.addEventListener(#{name}, #{callback.to_n})`
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
callback
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def off(what = nil)
|
|
107
|
+
case what
|
|
108
|
+
when Callback
|
|
109
|
+
callbacks.delete(what)
|
|
110
|
+
|
|
111
|
+
`#@native.removeEventListener(#{what.name}, #{what.to_n}, false)`
|
|
112
|
+
|
|
113
|
+
when String
|
|
114
|
+
if what.include?(?*) or what.include?(??)
|
|
115
|
+
off(Regexp.new(what.gsub(/\*/, '.*?').gsub(/\?/, ?.)))
|
|
116
|
+
else
|
|
117
|
+
what = Event.name_for(what)
|
|
118
|
+
|
|
119
|
+
callbacks.delete_if {|callback|
|
|
120
|
+
if callback.name == what
|
|
121
|
+
`#@native.removeEventListener(#{callback.name}, #{callback.to_n}, false)`
|
|
122
|
+
|
|
123
|
+
true
|
|
124
|
+
end
|
|
125
|
+
}
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
when Regexp
|
|
129
|
+
callbacks.delete_if {|callback|
|
|
130
|
+
if callback.name =~ what
|
|
131
|
+
`#@native.removeEventListener(#{callback.name}, #{callback.to_n}, false)`
|
|
132
|
+
|
|
133
|
+
true
|
|
134
|
+
end
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
else
|
|
138
|
+
callbacks.each {|callback|
|
|
139
|
+
`#@native.removeEventListener(#{callback.name}, #{callback.to_n}, false)`
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
callbacks.clear
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def trigger(event, *args, &block)
|
|
147
|
+
if event.is_a? String
|
|
148
|
+
event = Event.create(event, *args, &block)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
`#@native.dispatchEvent(#{event.to_n})`
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
private
|
|
155
|
+
def callbacks
|
|
156
|
+
%x{
|
|
157
|
+
if (!#@native.$callbacks) {
|
|
158
|
+
#@native.$callbacks = [];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return #@native.$callbacks;
|
|
162
|
+
}
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def observe
|
|
166
|
+
%x{
|
|
167
|
+
if (!#@native.$observer) {
|
|
168
|
+
#@native.$observer = #{MutationObserver.new {|mutations|
|
|
169
|
+
mutations.each {|mutation|
|
|
170
|
+
mutation.added.each {|node|
|
|
171
|
+
next unless Element === node
|
|
172
|
+
|
|
173
|
+
defer(node)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}};
|
|
177
|
+
|
|
178
|
+
#{`#@native.$observer`.observe(@native, children: true, tree: true)}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def deferred
|
|
184
|
+
%x{
|
|
185
|
+
if (!#@native.$deferred) {
|
|
186
|
+
#@native.$deferred = [];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return #@native.$deferred;
|
|
190
|
+
}
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def defer(node)
|
|
194
|
+
deferred.each {|name, selector, block|
|
|
195
|
+
if node.matches?(selector)
|
|
196
|
+
node.on(name, &block)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
node.elements.each {|el|
|
|
200
|
+
defer(el)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
end; end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class BeforeUnload < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:BeforeUnloadEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.create(name, &block)
|
|
9
|
+
new(`new BeforeUnloadEvent(#{name}, #{Definition.new(&block)})`)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end; end; end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class Clipboard < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:ClipboardEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Definition < Definition
|
|
9
|
+
def data=(value)
|
|
10
|
+
`#@native.data = #{value}`
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def type=(value)
|
|
14
|
+
`#@native.dataType = #{value}`
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.create(name, &block)
|
|
19
|
+
new(`new ClipboardEvent(#{name}, #{Definition.new(&block)})`)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
alias_native :data
|
|
23
|
+
alias_native :type, :dataType
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end; end; end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class Close < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:CloseEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Definition < Definition
|
|
9
|
+
def code=(value)
|
|
10
|
+
`#@native.code = #{value}`
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def reason=(value)
|
|
14
|
+
`#@native.reason = #{value}`
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def clean!(value)
|
|
18
|
+
`#@native.wasClean = true`
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def not_clean!(value)
|
|
22
|
+
`#@native.wasClean = false`
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.create(name, &block)
|
|
27
|
+
new(`new CloseEvent(#{name}, #{Definition.new(&block)})`)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
alias_native :code
|
|
31
|
+
alias_native :reason
|
|
32
|
+
alias_native :clean?, :wasClean
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end; end; end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class Composition < UI
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:CompositionEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Definition < UI::Definition
|
|
9
|
+
def data=(value)
|
|
10
|
+
`#@native.data = #{value}`
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def locale=(value)
|
|
14
|
+
`#@native.locale = #{value}`
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.create(name, &block)
|
|
19
|
+
new(`new CompositionEvent(#{name}, #{Definition.new(&block)})`)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
alias_native :data
|
|
23
|
+
alias_native :locale
|
|
24
|
+
|
|
25
|
+
def start?
|
|
26
|
+
name.downcase == 'compositionstart'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def update?
|
|
30
|
+
name.downcase == 'compositionupdate'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def end?
|
|
34
|
+
name.downcase == 'compositionend'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end; end; end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'ostruct'
|
|
2
|
+
|
|
3
|
+
module Browser; module DOM; class Event
|
|
4
|
+
|
|
5
|
+
class Custom < Event
|
|
6
|
+
def self.supported?
|
|
7
|
+
not $$[:CustomEvent].nil?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.create(name, &block)
|
|
11
|
+
data = OpenStruct.new
|
|
12
|
+
block.call(data) if block
|
|
13
|
+
|
|
14
|
+
new(`new CustomEvent(#{name}, { detail: #{data.to_n} })`)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def initialize(native)
|
|
18
|
+
super(native); @native = native # TODO: remove this when super is fixed
|
|
19
|
+
|
|
20
|
+
@detail = Hash.new(`#{native}.detail`)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def method_missing(id, *)
|
|
24
|
+
return @detail[id] if @detail.has_key?(id)
|
|
25
|
+
|
|
26
|
+
super
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end; end; end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class DeviceLight < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:DeviceLightEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Definition < Definition
|
|
9
|
+
def value=(value)
|
|
10
|
+
`#@native.value = #{value}`
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.create(name, &block)
|
|
15
|
+
new(`new DeviceLightEvent(#{name}, #{Definition.new(&block)})`)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
alias_native :value
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end; end; end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class DeviceMotion < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:DeviceMotionEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
Acceleration = Struct.new(:x, :y, :z)
|
|
9
|
+
|
|
10
|
+
class Definition < Definition
|
|
11
|
+
def acceleration=(value)
|
|
12
|
+
`#@native.acceleration = #{value.to_n}`
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def acceleration_with_gravity=(value)
|
|
16
|
+
`#@native.accelerationIncludingGravity = #{value.to_n}`
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def rotation=(value)
|
|
20
|
+
`#@native.rotationRate = #{value}`
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def interval=(value)
|
|
24
|
+
`#@native.interval = #{value}`
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.create(name, &block)
|
|
29
|
+
new(`new DeviceMotionEvent(#{name}, #{Definition.new(&block)})`)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
alias_native :acceleration
|
|
33
|
+
alias_native :acceleration_with_gravity, :accelerationIncludingGravity
|
|
34
|
+
alias_native :rotation, :rotationRate
|
|
35
|
+
alias_native :interval
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end; end; end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Browser; module DOM; class Event
|
|
2
|
+
|
|
3
|
+
class DeviceOrientation < Event
|
|
4
|
+
def self.supported?
|
|
5
|
+
not $$[:DeviceOrientationEvent].nil?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class Definition < Definition
|
|
9
|
+
def absolute=(value)
|
|
10
|
+
`#@native.absolute = #{value}`
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def alpha=(value)
|
|
14
|
+
`#@native.alpha = #{value}`
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def beta=(value)
|
|
18
|
+
`#@native.beta = #{value}`
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def gamma=(value)
|
|
22
|
+
`#@native.gamma = #{value}`
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.create(name, &block)
|
|
27
|
+
new(`new DeviceOrientationEvent(#{name}, #{Definition.new(&block)})`)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
alias_native :absolute
|
|
31
|
+
alias_native :alpha
|
|
32
|
+
alias_native :beta
|
|
33
|
+
alias_native :gamma
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end; end; end
|