bowser 0.1.2 → 0.1.3

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 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