bowser 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32fb1594e63f54c495175ae953fae924dfbae2be
4
- data.tar.gz: 7fbf23e43758caf3472d7758c3a297af476f2420
3
+ metadata.gz: 8a2f7f62645c6377294044b353af6960a5c55df6
4
+ data.tar.gz: e6c43aeb95b0f45ab1565b932d5b410033c19195
5
5
  SHA512:
6
- metadata.gz: e5248656f182b7ee5723516abbe864fbed7e9d862cd837e93cf77ab2837ecded3774de625e54fd14c38e15ecdb8449c63e1d8f5b0ef252dbd98688f62347eb27
7
- data.tar.gz: 0215d63d858d75c2f1efe2dbc6bde957371699811a3f66a0a69d9c359f75279cad2bd9ff68c637282fd3cf9bd5caa9f1a83425f17046ee1c0908de92365c6ef6
6
+ metadata.gz: e0cc5860ab8b75401b0b8297d33dcff0463822c0944540832a6e2c9188cbf98e5a8be1933f2fc1ebf32e6e238c54cc0d153a39bb1c6a207463ba3d117feee34d
7
+ data.tar.gz: 83dd93368f8e5b1100c49ee066f77f58bbcb6304883a27440a3e82d05620d4e8b63a7770eb47bfb838a601c5095b8027ea79c4147993b9a3e6239cdd3b29195d
@@ -1,3 +1,3 @@
1
1
  module Bowser
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -1,4 +1,5 @@
1
1
  require 'bowser/event_target'
2
+ require 'bowser/file_list'
2
3
 
3
4
  module Bowser
4
5
  class Element
@@ -46,5 +47,9 @@ module Bowser
46
47
  def value
47
48
  `#@native.value`
48
49
  end
50
+
51
+ def files
52
+ FileList.new(`#@native.files`)
53
+ end
49
54
  end
50
55
  end
@@ -9,6 +9,11 @@ module Bowser
9
9
  self
10
10
  end
11
11
 
12
+ def stop_propagation
13
+ `#@native.stopPropagation()`
14
+ self
15
+ end
16
+
12
17
  def prevented?
13
18
  `#@native.defaultPrevented`
14
19
  end
@@ -29,10 +34,6 @@ module Bowser
29
34
  `#@native.altKey`
30
35
  end
31
36
 
32
- def button
33
- `#@native.button`
34
- end
35
-
36
37
  def target
37
38
  Element.new(`#@native.currentTarget`)
38
39
  end
@@ -40,5 +41,14 @@ module Bowser
40
41
  def code
41
42
  `#@native.keyCode`
42
43
  end
44
+
45
+ def method_missing *args
46
+ if args.one?
47
+ property = args[0].gsub(/_[a-z]/) { |match| match[-1, 1].upcase }
48
+ `#@native[property]`
49
+ else
50
+ super
51
+ end
52
+ end
43
53
  end
44
54
  end
@@ -0,0 +1,69 @@
1
+ require 'promise'
2
+
3
+ module Bowser
4
+ class FileList
5
+ include Enumerable
6
+
7
+ def initialize native
8
+ @native = `#{native} || []`
9
+ end
10
+
11
+ def [] index
12
+ if index < length && index >= 0
13
+ File.new(`#@native[index]`)
14
+ end
15
+ end
16
+
17
+ def length
18
+ `#@native.length`
19
+ end
20
+ alias size length
21
+
22
+ def each &block
23
+ length.times.each do |i|
24
+ block.call self[i]
25
+ end
26
+ end
27
+
28
+ def to_a
29
+ map { |file| file }
30
+ end
31
+ alias to_ary to_a
32
+
33
+ class File
34
+ def initialize native
35
+ @native = native
36
+ end
37
+
38
+ def name
39
+ `#@native.name`
40
+ end
41
+
42
+ def size
43
+ `#@native.size`
44
+ end
45
+
46
+ def type
47
+ `#@native.type`
48
+ end
49
+
50
+ def last_modified
51
+ `#@native.lastModifiedDate`
52
+ end
53
+
54
+ def read
55
+ promise = Promise.new
56
+ reader = Native(`new FileReader()`)
57
+ reader[:onload] = proc do
58
+ promise.resolve reader.result
59
+ end
60
+ reader[:onerror] = proc do
61
+ promise.reject reader.result
62
+ end
63
+ reader.readAsBinaryString(`#@native`)
64
+
65
+ promise
66
+ end
67
+ end
68
+ end
69
+ end
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.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Gaskins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-29 00:00:00.000000000 Z
11
+ date: 2016-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
@@ -91,6 +91,7 @@ files:
91
91
  - opal/bowser/element.rb
92
92
  - opal/bowser/event.rb
93
93
  - opal/bowser/event_target.rb
94
+ - opal/bowser/file_list.rb
94
95
  - opal/bowser/http.rb
95
96
  - opal/bowser/http/event.rb
96
97
  - opal/bowser/http/request.rb