media_controller 1.0.0.pre → 1.0.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.
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