Sha256: f8cc17f4b6510cee9669355bd6b725b20341f17e4583ae964c2d1a09f3357c95
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
module M3u8 # Writer provides generation of text output of playlists in m3u8 format class Writer attr_accessor :io def initialize(io) self.io = io end def write(playlist) validate playlist io.puts '#EXTM3U' write_header(playlist) unless playlist.master? playlist.items.each do |item| io.puts item.to_s end return if playlist.master? io.puts '#EXT-X-ENDLIST' end private def validate(playlist) return if playlist.valid? fail PlaylistTypeError, 'Playlist is invalid.' end def write_header(playlist) io.puts "#EXT-X-PLAYLIST-TYPE:#{playlist.type}" unless playlist.type.nil? io.puts "#EXT-X-VERSION:#{playlist.version}" io.puts '#EXT-X-I-FRAMES-ONLY' if playlist.iframes_only io.puts "#EXT-X-MEDIA-SEQUENCE:#{playlist.sequence}" io.puts "#EXT-X-ALLOW-CACHE:#{cache(playlist)}" io.puts target_duration_format(playlist) end def cache(playlist) playlist.cache ? 'YES' : 'NO' end def target_duration_format(playlist) format('#EXT-X-TARGETDURATION:%d', playlist.target) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
m3u8-0.6.9 | lib/m3u8/writer.rb |
m3u8-0.6.8 | lib/m3u8/writer.rb |
m3u8-0.6.7 | lib/m3u8/writer.rb |