opal-browser 0.2.0.beta1 → 0.2.0

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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +22 -8
  3. data/Gemfile +1 -1
  4. data/README.md +59 -5
  5. data/index.html.erb +7 -4
  6. data/lib/opal-browser.rb +1 -0
  7. data/opal-browser.gemspec +1 -1
  8. data/opal/browser.rb +1 -0
  9. data/opal/browser/animation_frame.rb +26 -1
  10. data/opal/browser/canvas.rb +0 -10
  11. data/opal/browser/canvas/data.rb +0 -10
  12. data/opal/browser/canvas/gradient.rb +0 -10
  13. data/opal/browser/canvas/style.rb +0 -10
  14. data/opal/browser/canvas/text.rb +0 -10
  15. data/opal/browser/cookies.rb +6 -8
  16. data/opal/browser/database/sql.rb +194 -0
  17. data/opal/browser/delay.rb +25 -7
  18. data/opal/browser/dom.rb +2 -11
  19. data/opal/browser/dom/attribute.rb +12 -11
  20. data/opal/browser/dom/builder.rb +4 -9
  21. data/opal/browser/dom/document.rb +105 -41
  22. data/opal/browser/dom/element.rb +317 -231
  23. data/opal/browser/dom/element/attributes.rb +87 -0
  24. data/opal/browser/dom/element/data.rb +67 -0
  25. data/opal/browser/dom/element/input.rb +12 -1
  26. data/opal/browser/dom/element/offset.rb +5 -0
  27. data/opal/browser/dom/element/position.rb +11 -2
  28. data/opal/browser/dom/element/scroll.rb +77 -10
  29. data/opal/browser/dom/element/select.rb +36 -0
  30. data/opal/browser/dom/element/size.rb +5 -0
  31. data/opal/browser/dom/element/template.rb +9 -0
  32. data/opal/browser/dom/element/textarea.rb +24 -0
  33. data/opal/browser/dom/mutation_observer.rb +2 -2
  34. data/opal/browser/dom/node.rb +93 -51
  35. data/opal/browser/dom/node_set.rb +66 -48
  36. data/opal/browser/effects.rb +11 -0
  37. data/opal/browser/{dom/event.rb → event.rb} +32 -32
  38. data/opal/browser/{dom/event → event}/animation.rb +2 -2
  39. data/opal/browser/{dom/event → event}/audio_processing.rb +2 -2
  40. data/opal/browser/{dom/event → event}/base.rb +65 -7
  41. data/opal/browser/{dom/event → event}/before_unload.rb +2 -2
  42. data/opal/browser/{dom/event → event}/clipboard.rb +2 -2
  43. data/opal/browser/{dom/event → event}/close.rb +2 -2
  44. data/opal/browser/{dom/event → event}/composition.rb +2 -2
  45. data/opal/browser/{dom/event → event}/custom.rb +2 -2
  46. data/opal/browser/{dom/event → event}/device_light.rb +2 -2
  47. data/opal/browser/{dom/event → event}/device_motion.rb +2 -2
  48. data/opal/browser/{dom/event → event}/device_orientation.rb +2 -2
  49. data/opal/browser/{dom/event → event}/device_proximity.rb +2 -2
  50. data/opal/browser/{dom/event → event}/drag.rb +2 -2
  51. data/opal/browser/{dom/event → event}/focus.rb +2 -2
  52. data/opal/browser/{dom/event → event}/gamepad.rb +2 -2
  53. data/opal/browser/{dom/event → event}/hash_change.rb +2 -2
  54. data/opal/browser/{dom/event → event}/keyboard.rb +2 -2
  55. data/opal/browser/{dom/event → event}/message.rb +2 -2
  56. data/opal/browser/{dom/event → event}/mouse.rb +2 -2
  57. data/opal/browser/{dom/event → event}/page_transition.rb +2 -2
  58. data/opal/browser/{dom/event → event}/pop_state.rb +2 -2
  59. data/opal/browser/{dom/event → event}/progress.rb +2 -2
  60. data/opal/browser/{dom/event → event}/sensor.rb +2 -2
  61. data/opal/browser/{dom/event → event}/storage.rb +2 -2
  62. data/opal/browser/{dom/event → event}/touch.rb +2 -2
  63. data/opal/browser/{dom/event → event}/ui.rb +2 -2
  64. data/opal/browser/{dom/event → event}/wheel.rb +2 -2
  65. data/opal/browser/event_source.rb +1 -1
  66. data/opal/browser/http.rb +25 -0
  67. data/opal/browser/http/binary.rb +1 -0
  68. data/opal/browser/http/headers.rb +16 -2
  69. data/opal/browser/http/request.rb +14 -38
  70. data/opal/browser/immediate.rb +9 -3
  71. data/opal/browser/interval.rb +34 -11
  72. data/opal/browser/navigator.rb +23 -4
  73. data/opal/browser/screen.rb +1 -1
  74. data/opal/browser/socket.rb +5 -1
  75. data/opal/browser/storage.rb +51 -33
  76. data/opal/browser/support.rb +59 -4
  77. data/opal/browser/version.rb +1 -1
  78. data/opal/browser/window.rb +17 -9
  79. data/opal/browser/window/size.rb +17 -3
  80. data/opal/opal-browser.rb +1 -0
  81. data/spec/database/sql_spec.rb +131 -0
  82. data/spec/delay_spec.rb +38 -0
  83. data/spec/dom/attribute_spec.rb +49 -0
  84. data/spec/dom/builder_spec.rb +25 -8
  85. data/spec/dom/document_spec.rb +20 -0
  86. data/spec/dom/element/attributes_spec.rb +52 -0
  87. data/spec/dom/element_spec.rb +139 -4
  88. data/spec/dom/node_set_spec.rb +44 -0
  89. data/spec/interval_spec.rb +50 -0
  90. data/spec/runner.rb +46 -28
  91. data/spec/socket_spec.rb +1 -0
  92. data/spec/spec_helper.rb +0 -4
  93. data/spec/storage_spec.rb +1 -1
  94. metadata +57 -39
  95. data/opal/browser/http/parameters.rb +0 -8
@@ -1,14 +1,40 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Browser::DOM::Element do
4
+ DOM = Browser::DOM
5
+
4
6
  describe '#id' do
5
7
  html <<-HTML
6
- <div id="lol"></div>
8
+ <div id="lol"><div class="wut"></div></div>
7
9
  HTML
8
10
 
9
11
  it 'gets the proper id' do
10
12
  expect($document["lol"].id).to eq('lol')
11
13
  end
14
+
15
+ it 'returns nil when there is no id' do
16
+ expect($document["#lol .wut"].id).to be_nil
17
+ end
18
+ end
19
+
20
+ describe '#id=' do
21
+ html <<-HTML
22
+ <div id="lol"></div>
23
+ HTML
24
+
25
+ it 'sets the id' do
26
+ el = $document["lol"]
27
+ el.id = 'wut'
28
+
29
+ expect(el.id).to eq('wut')
30
+ end
31
+
32
+ it 'removes the id when the value is nil' do
33
+ el = $document["lol"]
34
+ el.id = nil
35
+
36
+ expect(el.id).to be_nil
37
+ end
12
38
  end
13
39
 
14
40
  describe '#class_names' do
@@ -28,7 +54,7 @@ describe Browser::DOM::Element do
28
54
  end
29
55
  end
30
56
 
31
- describe '#matches?' do
57
+ describe '#=~' do
32
58
  html <<-HTML
33
59
  <div id="matches" class="not me">
34
60
  <span class="yes me"></span>
@@ -36,11 +62,120 @@ describe Browser::DOM::Element do
36
62
  HTML
37
63
 
38
64
  it 'matches on class and id' do
39
- expect($document[:matches].matches?('#matches.not.me')).to be_truthy
65
+ expect($document[:matches] =~ '#matches.not.me').to be_truthy
40
66
  end
41
67
 
42
68
  it 'matches on class and name' do
43
- expect($document[:matches].first_element_child.matches?('span.yes')).to be_truthy
69
+ expect($document[:matches].first_element_child =~ 'span.yes').to be_truthy
70
+ end
71
+ end
72
+
73
+ describe '#inner_dom' do
74
+ html <<-HTML
75
+ <div id="lol">
76
+ <div id="wut"></div>
77
+ </div>
78
+ HTML
79
+
80
+ it 'builds the DOM and inserts it' do
81
+ $document["lol"].inner_dom {
82
+ div.omg!
83
+ }
84
+
85
+ expect($document["#lol #omg"]).to be_truthy
86
+ expect($document["#lol #wut"]).to be_falsy
87
+ end
88
+ end
89
+
90
+ describe '#inspect' do
91
+ it 'uses the node name' do
92
+ el = $document.create_element('div')
93
+
94
+ expect(el.inspect).to match(/: div>/)
95
+ end
96
+
97
+ it 'uses the id' do
98
+ el = $document.create_element('div')
99
+ el.id = 'lol'
100
+
101
+ expect(el.inspect).to match(/: div.lol!>/)
102
+ end
103
+
104
+ it 'uses the classes' do
105
+ el = $document.create_element('div')
106
+ el.add_class 'lol', 'wut'
107
+
108
+ expect(el.inspect).to match(/: div.lol.wut>/)
109
+ end
110
+
111
+ it 'uses the id and the classes' do
112
+ el = $document.create_element('div')
113
+ el.id = 'omg'
114
+ el.add_class 'lol', 'wut'
115
+
116
+ expect(el.inspect).to match(/: div.omg!.lol.wut>/)
117
+ end
118
+ end
119
+
120
+ describe '#[]' do
121
+ html <<-HTML
122
+ <label id="lol" class="name" for="hue"></label>
123
+ HTML
124
+
125
+ it 'gets an attribute' do
126
+ expect($document[:lol][:id]).to eq(:lol)
127
+ end
128
+
129
+ it 'gets the class attribute' do
130
+ expect($document[:lol][:class]).to eq(:name)
131
+ end
132
+
133
+ it 'gets the for attribute' do
134
+ expect($document[:lol][:for]).to eq(:hue)
135
+ end
136
+ end
137
+
138
+ describe '#[]=' do
139
+ html <<-HTML
140
+ <label id="lol" class="name" for="hue"></label>
141
+ HTML
142
+
143
+ it 'sets an attribute' do
144
+ $document[:lol][:a] = :foo
145
+
146
+ expect($document[:lol][:a]).to eq(:foo)
147
+ end
148
+
149
+ it 'sets the class attribute' do
150
+ $document[:lol][:class] = :bar
151
+
152
+ expect($document[:lol][:class]).to eq(:bar)
153
+ end
154
+
155
+ it 'sets the for attribute' do
156
+ $document[:lol][:for] = :baz
157
+
158
+ expect($document[:lol][:for]).to eq(:baz)
159
+ end
160
+ end
161
+
162
+ describe '#at_css' do
163
+ html <<-HTML
164
+ <label id="lol" class="name" for="hue"></label>
165
+ HTML
166
+
167
+ it 'checks for all the selectors' do
168
+ expect($document.at_css('div', 'span', '#lol')).to be_a(DOM::Element)
169
+ end
170
+ end
171
+
172
+ describe '#at_xpath' do
173
+ html <<-HTML
174
+ <label id="lol" class="name" for="hue"></label>
175
+ HTML
176
+
177
+ it 'checks for all the paths' do
178
+ expect($document.at_xpath('//div', '//span', '//[@id="lol"]')).to be_a(DOM::Element)
44
179
  end
45
180
  end
46
181
  end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe Browser::DOM::NodeSet do
4
+ NodeSet = Browser::DOM::NodeSet
5
+
6
+ html <<-HTML
7
+ <div id="lol">
8
+ <div class="a">
9
+ <div class="a-a"></div>
10
+ </div>
11
+
12
+ <div class="b"></div>
13
+ <div class="c"></div>
14
+
15
+ <div class="d">
16
+ <div class="d-a"></div>
17
+ </div>
18
+ </div>
19
+ HTML
20
+
21
+ describe '.[]' do
22
+ it 'flattens the nodes' do
23
+ set = NodeSet[[[$document["#lol .a"]]], [[$document["#lol .c"]]]]
24
+
25
+ expect(set[0]).to eq($document["#lol .a"])
26
+ expect(set[1]).to eq($document["#lol .c"])
27
+ end
28
+
29
+ it 'converts the items to DOM' do
30
+ set = NodeSet[`document.getElementById("lol")`]
31
+
32
+ expect(set[0]).to eq($document["#lol"])
33
+ end
34
+ end
35
+
36
+ describe '#filter' do
37
+ it 'filters the set with the given expression' do
38
+ set = $document["lol"].children.filter('.a, .c')
39
+
40
+ expect(set[0]).to eq($document["#lol .a"])
41
+ expect(set[1]).to eq($document["#lol .c"])
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+ require 'browser/interval'
3
+
4
+ describe Browser::Window do
5
+ describe '#every' do
6
+ async 'calls the block multiple times' do
7
+ x = 0
8
+
9
+ $window.every 0.3 do
10
+ x += 1
11
+
12
+ async {
13
+ expect(true).to be_truthy
14
+ } if x == 3
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ describe Kernel do
21
+ describe '#every' do
22
+ async 'calls the block multiple times' do
23
+ x = 0
24
+
25
+ every 0.3 do
26
+ x += 1
27
+
28
+ async {
29
+ expect(true).to be_truthy
30
+ } if x == 3
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ describe Proc do
37
+ describe '#every' do
38
+ async 'calls the block multiple times' do
39
+ x = 0
40
+
41
+ -> {
42
+ x += 1
43
+
44
+ async {
45
+ expect(true).to be_truthy
46
+ } if x == 3
47
+ }.every 0.3
48
+ end
49
+ end
50
+ end
@@ -5,15 +5,17 @@ require 'json'
5
5
 
6
6
  # setup tunnel
7
7
  begin
8
- File.open('tunnel.jar', 'w') {|f|
8
+ File.open('BrowserStackTunnel.jar', 'w') {|f|
9
9
  f.write RestClient.get('http://www.browserstack.com/BrowserStackTunnel.jar').to_str
10
10
  }
11
11
 
12
- tunnel = IO.popen 'java -jar tunnel.jar $BS_AUTHKEY localhost,9292,0 -tunnelIdentifier $TRAVIS_JOB_ID'
12
+ tunnel = IO.popen 'java -jar BrowserStackTunnel.jar $BS_AUTHKEY localhost,9292,0 -tunnelIdentifier $TRAVIS_JOB_ID'
13
13
 
14
14
  loop do
15
15
  break if tunnel.gets.start_with? 'You can now access'
16
16
  end
17
+ rescue
18
+ retry
17
19
  end
18
20
 
19
21
  # configure based on environment variables
@@ -24,10 +26,16 @@ cap = Selenium::WebDriver::Remote::Capabilities.new
24
26
  cap['platform'] = ENV['SELENIUM_PLATFORM'] || 'ANY'
25
27
  cap['browser'] = ENV['SELENIUM_BROWSER'] || 'chrome'
26
28
  cap['browser_version'] = ENV['SELENIUM_VERSION'] if ENV['SELENIUM_VERSION']
29
+ cap['device'] = ENV['SELENIUM_DEVICE'] if ENV['SELENIUM_DEVICE']
27
30
 
28
31
  cap['browserstack.tunnelIdentifier'] = ENV['TRAVIS_JOB_ID']
29
- cap['browserstack.tunnel'] = 'true'
30
- cap['browserstack.debug'] = 'false'
32
+ cap['browserstack.tunnel'] = true
33
+ cap['browserstack.debug'] = true
34
+
35
+ cap['databaseEnabled'] = true
36
+ cap['browserConnectionEnabled'] = true
37
+ cap['locationContextEnabled'] = true
38
+ cap['webStorageEnabled'] = true
31
39
 
32
40
  print 'Loading...'
33
41
 
@@ -82,33 +90,43 @@ rescue Selenium::WebDriver::Error::TimeOutError; end
82
90
 
83
91
  print "\rRunning specs..."
84
92
 
85
- # wait until the specs have finished, thus changing the content of #totals
86
- Selenium::WebDriver::Wait.new(timeout: 1200, interval: 30).until {
87
- print '.'
93
+ begin
94
+ # wait until the specs have finished, thus changing the content of #totals
95
+ Selenium::WebDriver::Wait.new(timeout: 1200, interval: 30).until {
96
+ print '.'
88
97
 
89
- not browser['totals'].text.strip.empty?
90
- }
98
+ not browser['totals'].text.strip.empty?
99
+ }
91
100
 
92
- totals = browser['totals'].text
93
- duration = browser[css: '#duration strong'].text
101
+ totals = browser['totals'].text
102
+ duration = browser[css: '#duration strong'].text
94
103
 
95
- print "\r#{totals} in #{duration}"
104
+ print "\r#{totals} in #{duration}"
96
105
 
97
- # take a screenshot and upload it to imgur
98
- begin
99
- browser.save_screenshot('screenshot.png')
100
- response = RestClient.post('https://api.imgur.com/3/upload',
101
- { image: File.open('screenshot.png') },
102
- { 'Authorization' => 'Client-ID 1979876fe2a097e' })
103
-
104
- print " ("
105
- print JSON.parse(response.to_str)['data']['link']
106
- puts ")"
107
- rescue Exception
108
- puts
106
+ # no failures, happy times
107
+ if totals =~ / 0 failures/
108
+ exit 0
109
+ end
110
+ rescue Selenium::WebDriver::Error::TimeOutError
111
+ if element = browser['rspec-error'] rescue nil
112
+ print "\r#{element.text}"
113
+ else
114
+ print "\rThe specs have timed out."
115
+ end
116
+ ensure
117
+ # take a screenshot and upload it to imgur
118
+ begin
119
+ browser.save_screenshot('screenshot.png')
120
+ response = RestClient.post('https://api.imgur.com/3/upload',
121
+ { image: File.open('screenshot.png') },
122
+ { 'Authorization' => 'Client-ID 1979876fe2a097e' })
123
+
124
+ print " ("
125
+ print JSON.parse(response.to_str)['data']['link']
126
+ puts ")"
127
+ rescue Exception
128
+ puts
129
+ end
109
130
  end
110
131
 
111
- # no failures, happy times
112
- unless totals =~ / 0 failures/
113
- exit 1
114
- end
132
+ exit 1
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'browser/location'
2
3
  require 'browser/socket'
3
4
 
4
5
  describe Browser::Socket do
@@ -1,7 +1,3 @@
1
- require 'json2'
2
- require 'sizzle'
3
- require 'wgxpath.install'
4
-
5
1
  require 'browser'
6
2
  require 'browser/console'
7
3
 
@@ -22,5 +22,5 @@ describe Browser::Window do
22
22
  expect($window.session_storage.name).to eq(:default)
23
23
  expect($window.session_storage(:spec).name).to eq(:spec)
24
24
  end
25
- end
25
+ end if Browser::SessionStorage.supported?
26
26
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-browser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.beta1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - meh.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-28 00:00:00.000000000 Z
11
+ date: 2015-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.0
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: paggio
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +53,7 @@ files:
53
53
  - Rakefile
54
54
  - config.ru
55
55
  - index.html.erb
56
+ - lib/opal-browser.rb
56
57
  - lib/opal/browser.rb
57
58
  - opal-browser.gemspec
58
59
  - opal/browser.rb
@@ -70,6 +71,7 @@ files:
70
71
  - opal/browser/css/rule/style.rb
71
72
  - opal/browser/css/style_sheet.rb
72
73
  - opal/browser/css/unit.rb
74
+ - opal/browser/database/sql.rb
73
75
  - opal/browser/delay.rb
74
76
  - opal/browser/dom.rb
75
77
  - opal/browser/dom/attribute.rb
@@ -80,51 +82,55 @@ files:
80
82
  - opal/browser/dom/document.rb
81
83
  - opal/browser/dom/document_fragment.rb
82
84
  - opal/browser/dom/element.rb
85
+ - opal/browser/dom/element/attributes.rb
86
+ - opal/browser/dom/element/data.rb
83
87
  - opal/browser/dom/element/image.rb
84
88
  - opal/browser/dom/element/input.rb
85
89
  - opal/browser/dom/element/offset.rb
86
90
  - opal/browser/dom/element/position.rb
87
91
  - opal/browser/dom/element/scroll.rb
92
+ - opal/browser/dom/element/select.rb
88
93
  - opal/browser/dom/element/size.rb
89
- - opal/browser/dom/event.rb
90
- - opal/browser/dom/event/animation.rb
91
- - opal/browser/dom/event/audio_processing.rb
92
- - opal/browser/dom/event/base.rb
93
- - opal/browser/dom/event/before_unload.rb
94
- - opal/browser/dom/event/clipboard.rb
95
- - opal/browser/dom/event/close.rb
96
- - opal/browser/dom/event/composition.rb
97
- - opal/browser/dom/event/custom.rb
98
- - opal/browser/dom/event/device_light.rb
99
- - opal/browser/dom/event/device_motion.rb
100
- - opal/browser/dom/event/device_orientation.rb
101
- - opal/browser/dom/event/device_proximity.rb
102
- - opal/browser/dom/event/drag.rb
103
- - opal/browser/dom/event/focus.rb
104
- - opal/browser/dom/event/gamepad.rb
105
- - opal/browser/dom/event/hash_change.rb
106
- - opal/browser/dom/event/keyboard.rb
107
- - opal/browser/dom/event/message.rb
108
- - opal/browser/dom/event/mouse.rb
109
- - opal/browser/dom/event/page_transition.rb
110
- - opal/browser/dom/event/pop_state.rb
111
- - opal/browser/dom/event/progress.rb
112
- - opal/browser/dom/event/sensor.rb
113
- - opal/browser/dom/event/storage.rb
114
- - opal/browser/dom/event/touch.rb
115
- - opal/browser/dom/event/ui.rb
116
- - opal/browser/dom/event/wheel.rb
94
+ - opal/browser/dom/element/template.rb
95
+ - opal/browser/dom/element/textarea.rb
117
96
  - opal/browser/dom/mutation_observer.rb
118
97
  - opal/browser/dom/node.rb
119
98
  - opal/browser/dom/node_set.rb
120
99
  - opal/browser/dom/text.rb
121
100
  - opal/browser/effects.rb
101
+ - opal/browser/event.rb
102
+ - opal/browser/event/animation.rb
103
+ - opal/browser/event/audio_processing.rb
104
+ - opal/browser/event/base.rb
105
+ - opal/browser/event/before_unload.rb
106
+ - opal/browser/event/clipboard.rb
107
+ - opal/browser/event/close.rb
108
+ - opal/browser/event/composition.rb
109
+ - opal/browser/event/custom.rb
110
+ - opal/browser/event/device_light.rb
111
+ - opal/browser/event/device_motion.rb
112
+ - opal/browser/event/device_orientation.rb
113
+ - opal/browser/event/device_proximity.rb
114
+ - opal/browser/event/drag.rb
115
+ - opal/browser/event/focus.rb
116
+ - opal/browser/event/gamepad.rb
117
+ - opal/browser/event/hash_change.rb
118
+ - opal/browser/event/keyboard.rb
119
+ - opal/browser/event/message.rb
120
+ - opal/browser/event/mouse.rb
121
+ - opal/browser/event/page_transition.rb
122
+ - opal/browser/event/pop_state.rb
123
+ - opal/browser/event/progress.rb
124
+ - opal/browser/event/sensor.rb
125
+ - opal/browser/event/storage.rb
126
+ - opal/browser/event/touch.rb
127
+ - opal/browser/event/ui.rb
128
+ - opal/browser/event/wheel.rb
122
129
  - opal/browser/event_source.rb
123
130
  - opal/browser/history.rb
124
131
  - opal/browser/http.rb
125
132
  - opal/browser/http/binary.rb
126
133
  - opal/browser/http/headers.rb
127
- - opal/browser/http/parameters.rb
128
134
  - opal/browser/http/request.rb
129
135
  - opal/browser/http/response.rb
130
136
  - opal/browser/immediate.rb
@@ -141,17 +147,24 @@ files:
141
147
  - opal/browser/window/scroll.rb
142
148
  - opal/browser/window/size.rb
143
149
  - opal/browser/window/view.rb
150
+ - opal/opal-browser.rb
151
+ - spec/database/sql_spec.rb
152
+ - spec/delay_spec.rb
153
+ - spec/dom/attribute_spec.rb
144
154
  - spec/dom/builder_spec.rb
145
155
  - spec/dom/document_spec.rb
156
+ - spec/dom/element/attributes_spec.rb
146
157
  - spec/dom/element_spec.rb
147
158
  - spec/dom/event_spec.rb
148
159
  - spec/dom/mutation_observer_spec.rb
160
+ - spec/dom/node_set_spec.rb
149
161
  - spec/dom/node_spec.rb
150
162
  - spec/dom_spec.rb
151
163
  - spec/event_source_spec.rb
152
164
  - spec/history_spec.rb
153
165
  - spec/http_spec.rb
154
166
  - spec/immediate_spec.rb
167
+ - spec/interval_spec.rb
155
168
  - spec/json2.js
156
169
  - spec/runner.rb
157
170
  - spec/sizzle.js
@@ -175,27 +188,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
188
  version: '0'
176
189
  required_rubygems_version: !ruby/object:Gem::Requirement
177
190
  requirements:
178
- - - ">"
191
+ - - ">="
179
192
  - !ruby/object:Gem::Version
180
- version: 1.3.1
193
+ version: '0'
181
194
  requirements: []
182
195
  rubyforge_project:
183
- rubygems_version: 2.2.0
196
+ rubygems_version: 2.4.5
184
197
  signing_key:
185
198
  specification_version: 4
186
199
  summary: Browser support for Opal.
187
200
  test_files:
201
+ - spec/database/sql_spec.rb
202
+ - spec/delay_spec.rb
203
+ - spec/dom/attribute_spec.rb
188
204
  - spec/dom/builder_spec.rb
189
205
  - spec/dom/document_spec.rb
206
+ - spec/dom/element/attributes_spec.rb
190
207
  - spec/dom/element_spec.rb
191
208
  - spec/dom/event_spec.rb
192
209
  - spec/dom/mutation_observer_spec.rb
210
+ - spec/dom/node_set_spec.rb
193
211
  - spec/dom/node_spec.rb
194
212
  - spec/dom_spec.rb
195
213
  - spec/event_source_spec.rb
196
214
  - spec/history_spec.rb
197
215
  - spec/http_spec.rb
198
216
  - spec/immediate_spec.rb
217
+ - spec/interval_spec.rb
199
218
  - spec/json2.js
200
219
  - spec/runner.rb
201
220
  - spec/sizzle.js
@@ -204,4 +223,3 @@ test_files:
204
223
  - spec/storage_spec.rb
205
224
  - spec/wgxpath.install.js
206
225
  - spec/window_spec.rb
207
- has_rdoc: