podlove-web-player-rails 0.2.1 → 0.3.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.
- data/Rakefile +0 -5
- data/lib/podlove-web-player-rails.rb +5 -10
- data/lib/podlove-web-player-rails/version.rb +5 -8
- data/lib/podlove-web-player-rails/view_helpers.rb +113 -33
- data/podlove-web-player-rails.gemspec +1 -3
- metadata +4 -41
- data/.rspec +0 -1
- data/spec/podlove-web-player-rails/view_helpers_spec.rb +0 -5
- data/spec/spec_helper.rb +0 -6
data/Rakefile
CHANGED
@@ -1,16 +1,11 @@
|
|
1
1
|
require "podlove-web-player-rails/version"
|
2
2
|
require "podlove-web-player-rails/view_helpers"
|
3
3
|
|
4
|
-
module
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
initializer "podlove-web-player-rails.view_helpers" do |app|
|
10
|
-
ActionView::Base.send :include, ViewHelpers
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
4
|
+
module PodloveWebPlayerRails
|
5
|
+
# Loads all the needed assets and includes the View Helpers
|
6
|
+
class Engine < ::Rails::Engine
|
7
|
+
initializer "podlove-web-player-rails.view_helpers" do |app|
|
8
|
+
ActionView::Base.send :include, ViewHelpers
|
14
9
|
end
|
15
10
|
end
|
16
11
|
end
|
@@ -1,39 +1,119 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
1
|
+
module PodloveWebPlayerRails
|
2
|
+
# View Helpers that generate the needed HTML and JS needed for the Web Player
|
3
|
+
module ViewHelpers
|
4
|
+
# Generates the HTML markup needed for the podlove audio player and calls the podlovewebplayer
|
5
|
+
# js method with given option parameters.
|
6
|
+
#
|
7
|
+
# @param [Hash] options options for the player
|
8
|
+
# @option options [String] :src The location of an audio file, local ore remote.
|
9
|
+
# @option options [String] :type The media type of the resource.
|
10
|
+
# @option options [String] :mp4 The location of an audio file with the type mp4.
|
11
|
+
# @option options [String] :mp3 The location of an audio file with the type mp3.
|
12
|
+
# @option options [String] :ogg The location of an audio file with the type ogg.
|
13
|
+
# @option options [String] :opus The location of an audio file with the type opus.
|
14
|
+
# @option options [String] :poster The location of the cover image for the rich audio player.
|
15
|
+
# @option options [integer] :width (auto) The width of the player.
|
16
|
+
# @option options [integer] :height The height of the player.
|
17
|
+
# @option options [boolean] :loop (false) Loops the audio when it ends.
|
18
|
+
# @option options [boolean] :preload (true) Start loading the audio as soon as possible,
|
19
|
+
# before the user clicks play. This might not work on all browsers.
|
20
|
+
# @option options [boolean] :autoplay (false) Start playing the audio as soon as it's ready.
|
21
|
+
# This might not work on all (mobile) devices.
|
22
|
+
# @option options [String] :duration (false) Enables display of duration without having to load the
|
23
|
+
# media file. Use seconds or timecode as a unit
|
24
|
+
# (e.g. "3522" or "00:58:42")
|
25
|
+
# @option options [boolean] :alwaysShowHours (true) Displays the time in 00:00:00 instead of 00:00.
|
26
|
+
# @option options [boolean] :alwaysShowControls (true) Defines whether the player control bar is
|
27
|
+
# permanently visible.
|
28
|
+
# @option options [boolean] :volume (true) Disables the volume slider.
|
29
|
+
# @option options [boolean] :progress (true) Disables the progress bar.
|
30
|
+
# @option options [String] :captions URL to a WebVTT captions file.
|
31
|
+
# @option options [boolean] :chapters Takes chapter string in JSON format and builds an interactive
|
32
|
+
# chapter table. Chapters must be written in the following format:
|
33
|
+
# !{'start':'00:00:00.000', 'title':'Chapter One', 'image':''}
|
34
|
+
# @option options [String] :chapterlinks (all) Option for the jumplink behaviour in chapter table.
|
35
|
+
# Options are: 'all' (all chapter links are clickable), 'buffered' (only
|
36
|
+
# buffered chapters are clickable), 'false' (chapters are not linked)
|
37
|
+
# @option options [boolean] :chaptersVisible (false) Defines the default visibility status of
|
38
|
+
# toggable chapters module.
|
39
|
+
# @option options [boolean] :timecontrolsVisible (false) Defines the default visibility status of
|
40
|
+
# toggable time controls module.
|
41
|
+
# @option options [boolean] :summaryVisible (false) Defines the default visibility status of
|
42
|
+
# toggable summary module.
|
43
|
+
# @option options [boolean] :downloadbuttonsVisible (false) Defines the default visibility of the
|
44
|
+
# download buttons.
|
45
|
+
# @return [String] HTML markup and JS call.
|
46
|
+
def podloveaudio(options = {})
|
47
|
+
podlove("audio", options)
|
48
|
+
end
|
28
49
|
|
29
|
-
|
50
|
+
# Generates the HTML markup needed for the podlove video player and calls the podlovewebplayer
|
51
|
+
# js method with given option parameters.
|
52
|
+
#
|
53
|
+
# @param [Hash] options options for the player
|
54
|
+
# @option options [String] :src This location of an video file, local ore remote.
|
55
|
+
# @option options [String] :type The media type of the resource.
|
56
|
+
# @option options [String] :mp4 The location of an audio file with the type mp4.
|
57
|
+
# @option options [String] :webm The location of an audio file with the type webm.
|
58
|
+
# @option options [String] :ogg The location of an audio file with the type ogg.
|
59
|
+
# @option options [String] :poster The location of the poster frame for the video.
|
60
|
+
# @option options [integer] :width (auto) The width of the player.
|
61
|
+
# @option options [integer] :height The height of the player.
|
62
|
+
# @option options [boolean] :loop (false) Loops the video when it ends.
|
63
|
+
# @option options [boolean] :preload (true) Start loading the video as soon as possible,
|
64
|
+
# before the user clicks play. This might not work on all browsers.
|
65
|
+
# @option options [boolean] :autoplay (false) Start playing the video as soon as it's ready.
|
66
|
+
# This might not work on all (mobile) devices.
|
67
|
+
# @option options [boolean] :fullscreen (true) Disables the fullscreen button for video.
|
68
|
+
# @option options [string] :duration (false) Enables display of duration without having to load the
|
69
|
+
# media file. Use seconds or timecode as a unit
|
70
|
+
# (e.g. "3522" or "00:58:42")
|
71
|
+
# @option options [boolean] :alwaysShowHours (true) Displays the time in 00:00:00 instead of 00:00.
|
72
|
+
# @option options [boolean] :alwaysShowControls (true) Defines whether the player control bar is
|
73
|
+
# permanently visible. It might be suitable to fade the
|
74
|
+
# controls out when not hovering the video.
|
75
|
+
# @option options [boolean] :volume (true) Disables the volume slider.
|
76
|
+
# @option options [boolean] :progress (true) Disables the progress bar.
|
77
|
+
# @option options [String] :captions URL to a WebVTT captions file.
|
78
|
+
# @option options [boolean] :chapters Takes chapter string in JSON format and builds an interactive
|
79
|
+
# chapter table. Chapters must be written in the following format:
|
80
|
+
# !{'start':'00:00:00.000', 'title':'Chapter One', 'image':''}
|
81
|
+
# @option options [String] :chapterlinks (all) Option for the jumplink behaviour in chapter table.
|
82
|
+
# Options are: 'all' (all chapter links are clickable), 'buffered' (only
|
83
|
+
# buffered chapters are clickable), 'false' (chapters are not linked)
|
84
|
+
# @option options [boolean] :chaptersVisible (false) Defines the default visibility status of
|
85
|
+
# toggable chapters module.
|
86
|
+
# @option options [boolean] :timecontrolsVisible (false) Defines the default visibility status of
|
87
|
+
# toggable time controls module.
|
88
|
+
# @option options [boolean] :summaryVisible (false) Defines the default visibility status of
|
89
|
+
# toggable summary module.
|
90
|
+
# @option options [boolean] :downloadbuttonsVisible (false) Defines the default visibility of the
|
91
|
+
# download buttons.
|
92
|
+
# @return [String] HTML markup and JS call.
|
93
|
+
def podlovevideo(options = {})
|
94
|
+
podlove("video", options)
|
95
|
+
end
|
30
96
|
|
31
|
-
|
97
|
+
private
|
32
98
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
99
|
+
def podlove(type, options = {})
|
100
|
+
id = "player_" + SecureRandom.hex(5)
|
101
|
+
|
102
|
+
html = "<#{type} id='#{id}'>"
|
103
|
+
html << "<source src='#{options[:src]}'"\
|
104
|
+
"" + (options[:type] ? " type='#{options[:type]}'" : "") + "></source>" if options[:src]
|
105
|
+
html << "<source src='#{options[:mp4]}' type='#{type}/mp4'></source>" if options[:mp4]
|
106
|
+
html << "<source src='#{options[:mp3]}' type='#{type}/mpeg'></source>" if options[:mp3]
|
107
|
+
html << "<source src='#{options[:ogg]}' type='#{type}/ogg; codecs=vorbis'></source>" if options[:ogg]
|
108
|
+
html << "<source src='#{options[:opus]}' type='#{type}/ogg; codecs=opus'></source>" if options[:opus]
|
109
|
+
html << "<source src='#{options[:webm]}' type='#{type}/webm'></source>" if options[:webm]
|
110
|
+
html << "</#{type}>"
|
111
|
+
|
112
|
+
[:src, :type, :mp4, :mp3, :ogg, :opus, :webm].each{ |key| options.delete(key) }
|
113
|
+
|
114
|
+
script = "$('##{id}').podlovewebplayer(#{options.to_json});"
|
115
|
+
|
116
|
+
return raw html + "\n" + javascript_tag(script)
|
37
117
|
end
|
38
118
|
end
|
39
119
|
end
|
@@ -5,7 +5,7 @@ require 'podlove-web-player-rails/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "podlove-web-player-rails"
|
8
|
-
gem.version =
|
8
|
+
gem.version = PodloveWebPlayerRails::VERSION
|
9
9
|
gem.authors = ["Bastian Bartmann"]
|
10
10
|
gem.email = ["xarfai27@gmail.com"]
|
11
11
|
gem.description = %q{Podlove Web Player for Rails 3.}
|
@@ -17,7 +17,5 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_development_dependency "rspec"
|
21
|
-
gem.add_development_dependency "coveralls"
|
22
20
|
gem.add_dependency "railties", "~> 3.1"
|
23
21
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: podlove-web-player-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,38 +11,6 @@ bindir: bin
|
|
11
11
|
cert_chain: []
|
12
12
|
date: 2013-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: rspec
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: coveralls
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
14
|
- !ruby/object:Gem::Dependency
|
47
15
|
name: railties
|
48
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,7 +35,6 @@ extensions: []
|
|
67
35
|
extra_rdoc_files: []
|
68
36
|
files:
|
69
37
|
- .gitignore
|
70
|
-
- .rspec
|
71
38
|
- .travis.yml
|
72
39
|
- Gemfile
|
73
40
|
- LICENSE.txt
|
@@ -77,8 +44,6 @@ files:
|
|
77
44
|
- lib/podlove-web-player-rails/version.rb
|
78
45
|
- lib/podlove-web-player-rails/view_helpers.rb
|
79
46
|
- podlove-web-player-rails.gemspec
|
80
|
-
- spec/podlove-web-player-rails/view_helpers_spec.rb
|
81
|
-
- spec/spec_helper.rb
|
82
47
|
- vendor/assets/fonts/podlovefont.eot
|
83
48
|
- vendor/assets/fonts/podlovefont.otf
|
84
49
|
- vendor/assets/fonts/podlovefont.pfa
|
@@ -111,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
76
|
version: '0'
|
112
77
|
segments:
|
113
78
|
- 0
|
114
|
-
hash:
|
79
|
+
hash: 2864029755991511410
|
115
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
81
|
none: false
|
117
82
|
requirements:
|
@@ -120,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
85
|
version: '0'
|
121
86
|
segments:
|
122
87
|
- 0
|
123
|
-
hash:
|
88
|
+
hash: 2864029755991511410
|
124
89
|
requirements: []
|
125
90
|
rubyforge_project:
|
126
91
|
rubygems_version: 1.8.24
|
@@ -128,6 +93,4 @@ signing_key:
|
|
128
93
|
specification_version: 3
|
129
94
|
summary: Integrates the needed javascript and css in the asset pipeline and provides
|
130
95
|
a handy helper method to integrate the player in the view.
|
131
|
-
test_files:
|
132
|
-
- spec/podlove-web-player-rails/view_helpers_spec.rb
|
133
|
-
- spec/spec_helper.rb
|
96
|
+
test_files: []
|
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|