bowser 0.4.0 → 0.4.1
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 +4 -4
- data/lib/bowser/version.rb +1 -1
- data/opal/bowser/element.rb +16 -0
- data/opal/bowser/element/media.rb +59 -0
- data/opal/bowser/window.rb +3 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2666f7e1de610c1e041f9b6a223f07b42fb418df
|
4
|
+
data.tar.gz: 52928f3bd65a2d7e5f96dc08069978280dba4245
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 950f1042ae01199c2310c422476a5c0ba230f67acccd1d014a55032f31caed65e979210a8e2f03f69804b65a419ec50fa829da7e8ab2269fa2fb37eee5de9d19
|
7
|
+
data.tar.gz: 778980230bf09c6df0a835eb0d9b7820e70ff614afe6a1742c7134640bcd2ea43446235254afa701027a6237bb9038c48017178cb6a437b0eab7547421bc212f
|
data/lib/bowser/version.rb
CHANGED
data/opal/bowser/element.rb
CHANGED
@@ -7,6 +7,22 @@ module Bowser
|
|
7
7
|
include EventTarget
|
8
8
|
include DelegateNative
|
9
9
|
|
10
|
+
@tags = Hash.new(self)
|
11
|
+
|
12
|
+
def self.element *tags, &block
|
13
|
+
tags.each do |tag|
|
14
|
+
@tags
|
15
|
+
.fetch(tag) { @tags[tag] = const_set(tag.capitalize, Class.new(self)) }
|
16
|
+
.class_exec(&block)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.new(native)
|
21
|
+
element = @tags[`#{native}.tagName`.downcase].allocate
|
22
|
+
element.initialize native
|
23
|
+
element
|
24
|
+
end
|
25
|
+
|
10
26
|
def initialize native
|
11
27
|
@native = native
|
12
28
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'bowser/element'
|
2
|
+
|
3
|
+
module Bowser
|
4
|
+
class Element
|
5
|
+
element :video, :audio do
|
6
|
+
def buffered
|
7
|
+
TimeRanges.new(`#@native.buffered`)
|
8
|
+
end
|
9
|
+
|
10
|
+
def played
|
11
|
+
TimeRanges.new(`#@native.played`)
|
12
|
+
end
|
13
|
+
|
14
|
+
def seekable
|
15
|
+
TimeRanges.new(`#@native.seekable`)
|
16
|
+
end
|
17
|
+
|
18
|
+
def network_state
|
19
|
+
case `#@native.networkState`
|
20
|
+
when `HTMLMediaElement.NETWORK_EMPTY` then :no_data
|
21
|
+
when `HTMLMediaElement.NETWORK_IDLE` then :idle
|
22
|
+
when `HTMLMediaElement.NETWORK_LOADING` then :loading
|
23
|
+
when `HTMLMediaElement.NETWORK_NO_SOURCE` then :no_source
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class TimeRanges
|
29
|
+
include Enumerable
|
30
|
+
|
31
|
+
def initialize native
|
32
|
+
@native = native
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_n
|
36
|
+
@native
|
37
|
+
end
|
38
|
+
|
39
|
+
def each
|
40
|
+
`#@native.length`.times do |i|
|
41
|
+
yield TimeRange.new(`#@native.start(i)`, `#@native.end(i)`)
|
42
|
+
end
|
43
|
+
|
44
|
+
self
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class TimeRange
|
49
|
+
attr_reader :start, :end
|
50
|
+
|
51
|
+
def initialize start, _end
|
52
|
+
@start = start
|
53
|
+
@end = _end
|
54
|
+
end
|
55
|
+
|
56
|
+
alias begin start
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/opal/bowser/window.rb
CHANGED
@@ -12,7 +12,7 @@ module Bowser
|
|
12
12
|
|
13
13
|
if `#@native.requestAnimationFrame !== undefined`
|
14
14
|
def animation_frame &block
|
15
|
-
`requestAnimationFrame(block)`
|
15
|
+
`requestAnimationFrame(function() { #{block.call} })`
|
16
16
|
self
|
17
17
|
end
|
18
18
|
else
|
@@ -23,12 +23,12 @@ module Bowser
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def delay duration, &block
|
26
|
-
`setTimeout(block, duration * 1000)`
|
26
|
+
`setTimeout(function() { #{block.call} }, duration * 1000)`
|
27
27
|
self
|
28
28
|
end
|
29
29
|
|
30
30
|
def interval duration, &block
|
31
|
-
`setInterval(block, duration * 1000)`
|
31
|
+
`setInterval(function() { #{block.call} }, duration * 1000)`
|
32
32
|
self
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bowser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Gaskins
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- opal/bowser/delegate_native.rb
|
98
98
|
- opal/bowser/document.rb
|
99
99
|
- opal/bowser/element.rb
|
100
|
+
- opal/bowser/element/media.rb
|
100
101
|
- opal/bowser/event.rb
|
101
102
|
- opal/bowser/event_target.rb
|
102
103
|
- opal/bowser/file_list.rb
|
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
128
|
version: '0'
|
128
129
|
requirements: []
|
129
130
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.6.
|
131
|
+
rubygems_version: 2.6.12
|
131
132
|
signing_key:
|
132
133
|
specification_version: 4
|
133
134
|
summary: Minimalist browser support for Opal apps
|