media_controller 1.0.0.pre → 1.0.0

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: 29ef0d8df02c84e4bccb9830e8a8b56fa856f395
4
- data.tar.gz: 43d1c4c8fdb43ea7e8f9ae9f36b7f41aa7ae4201
3
+ metadata.gz: 9d5a33a294f5799f9645149057efea56557cd790
4
+ data.tar.gz: 5b1f84aff4a86876559de635bca8ff00abe79e00
5
5
  SHA512:
6
- metadata.gz: d2e5abe1b4c7dff73febe333a357d1273f986e168504f935991a568adeade513d9f4b1b58b1df570e016df6af13f75bf58ad204c06448c21173ac63e2b5a64a1
7
- data.tar.gz: 31378d698a9c3f0fba7faf235f61bf2879de6df34e98193431960abc6d265db06e0d40f8c043a827d5a59b5fa1a39842b9799797903320101f2d2c27b2849f72
6
+ metadata.gz: 47b3bca8a94da0a0261ba9341ad1e220d5d14db5bd839b8bcfbdf048f9f98a8682e9704a0edf093547b1ea291fa616d154177fcad10e1802b82f62bcdb4b186e
7
+ data.tar.gz: ba5ff932eb2ad5ebbef9688fd63db944d6cf2c3d7b8a7fffb9bf9e6bdd81bc06fb06aa599a1fe71b4ee3eb2971d7363e2b6860eb3f35453c4b9126a8d08a7e4e
@@ -1,13 +1,3 @@
1
- module MediaController
2
-
3
- class Media
4
- def self.hi
5
- puts "Media"
6
- end
7
- end
8
-
9
- end
10
-
11
1
  require 'media_controller/media'
12
2
  require 'media_controller/audio'
13
- require 'media_controller/video'
3
+ require 'media_controller/video'
@@ -1,9 +1,6 @@
1
1
  module MediaController
2
2
 
3
- class Audio < MediaController::Media
4
- def self.hi
5
- "Audio"
6
- end
3
+ class Audio < Media
7
4
  end
8
5
 
9
6
  end
@@ -1,12 +1,59 @@
1
1
  module MediaController
2
2
 
3
3
  class Media
4
- def self.awesome?
5
- "very awesome indeed!"
4
+
5
+ attr :page, :id
6
+
7
+ def initialize(capybara_page, options)
8
+ raise "Please supply an ID" unless options[:id]
9
+ @id = options[:id]
10
+ @page = capybara_page
11
+ @ref = "window['media-#{@id}']"
12
+ @page.execute_script("#{@ref} = document.getElementById('#{@id}')")
13
+ end
14
+
15
+ def play
16
+ @page.execute_script "#{@ref}.play();"
17
+ end
18
+
19
+ def pause
20
+ @page.execute_script "#{@ref}.pause();"
21
+ end
22
+
23
+ def seek_to(seconds)
24
+ @page.execute_script "#{@ref}.currentTime = #{seconds.to_i};"
25
+ end
26
+
27
+ def current_time
28
+ @page.evaluate_script "#{@ref}.currentTime;"
29
+ end
30
+
31
+ def duration
32
+ @page.evaluate_script "#{@ref}.duration;"
33
+ end
34
+
35
+ def event_count(event_name)
36
+ @page.evaluate_script "window['media-#{@id}-#{event_name}-count'];"
37
+ end
38
+
39
+ def add_event_listener(event_name)
40
+ @page.execute_script "window['media-#{@id}-#{event_name}-count'] = 0;"
41
+ @page.execute_script "window['media-#{@id}-#{event_name}-count-function'] = function() { window['media-#{@id}-#{event_name}-count'] += 1; };"
42
+ @page.execute_script "#{@ref}.addEventListener('#{event_name}', window['media-#{@id}-#{event_name}-count-function']);"
43
+ end
44
+
45
+ def remove_event_listener(event_name)
46
+ @page.execute_script "#{@ref}.removeEventListener('#{event_name}', window['media-#{@id}-#{event_name}-count-function']);"
47
+ @page.execute_script "window['media-#{@id}-#{event_name}-count-function'] = null;"
48
+ @page.execute_script "window['media-#{@id}-#{event_name}-count'] = null;"
6
49
  end
7
50
 
8
- def self.hi
9
- "Media"
51
+ def playing?
52
+ add_event_listener('timeupdate')
53
+ sleep 3
54
+ playing = event_count('timeupdate') > 3
55
+ remove_event_listener('timeupdate')
56
+ return playing
10
57
  end
11
58
  end
12
59
 
@@ -1,9 +1,6 @@
1
1
  module MediaController
2
2
 
3
- class Video < MediaController::Media
4
- def self.hi
5
- "Video"
6
- end
3
+ class Video < Media
7
4
  end
8
5
 
9
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: media_controller
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aimee Rivers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-12 00:00:00.000000000 Z
11
+ date: 2018-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -63,9 +63,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.3.1
68
+ version: '0'
69
69
  requirements: []
70
70
  rubyforge_project:
71
71
  rubygems_version: 2.5.2.3