class M3u8::MediaItem
MediaItem
represents a set of EXT-X-MEDIA attributes
Attributes
assoc_language[RW]
autoselect[RW]
channels[RW]
characteristics[RW]
default[RW]
forced[RW]
group_id[RW]
instream_id[RW]
language[RW]
name[RW]
type[RW]
uri[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/m3u8/media_item.rb, line 10 def initialize(params = {}) params.each do |key, value| instance_variable_set("@#{key}", value) end end
parse(text)
click to toggle source
# File lib/m3u8/media_item.rb, line 16 def self.parse(text) attributes = parse_attributes(text) options = { type: attributes['TYPE'], group_id: attributes['GROUP-ID'], language: attributes['LANGUAGE'], assoc_language: attributes['ASSOC-LANGUAGE'], name: attributes['NAME'], autoselect: parse_yes_no(attributes['AUTOSELECT']), default: parse_yes_no(attributes['DEFAULT']), forced: parse_yes_no(attributes['FORCED']), uri: attributes['URI'], instream_id: attributes['INSTREAM-ID'], characteristics: attributes['CHARACTERISTICS'], channels: attributes['CHANNELS'] } MediaItem.new(options) end
Public Instance Methods
to_s()
click to toggle source
# File lib/m3u8/media_item.rb, line 32 def to_s "#EXT-X-MEDIA:#{formatted_attributes.join(',')}" end
Private Instance Methods
assoc_language_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 66 def assoc_language_format return if assoc_language.nil? %(ASSOC-LANGUAGE="#{assoc_language}") end
autoselect_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 75 def autoselect_format return if autoselect.nil? "AUTOSELECT=#{to_yes_no autoselect}" end
channels_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 105 def channels_format return if channels.nil? %(CHANNELS="#{channels}") end
characteristics_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 100 def characteristics_format return if characteristics.nil? %(CHARACTERISTICS="#{characteristics}") end
default_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 80 def default_format return if default.nil? "DEFAULT=#{to_yes_no default}" end
forced_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 90 def forced_format return if forced.nil? "FORCED=#{to_yes_no forced}" end
formatted_attributes()
click to toggle source
# File lib/m3u8/media_item.rb, line 38 def formatted_attributes [type_format, group_id_format, language_format, assoc_language_format, name_format, autoselect_format, default_format, uri_format, forced_format, instream_id_format, characteristics_format, channels_format].compact end
group_id_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 57 def group_id_format %(GROUP-ID="#{group_id}") end
instream_id_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 95 def instream_id_format return if instream_id.nil? %(INSTREAM-ID="#{instream_id}") end
language_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 61 def language_format return if language.nil? %(LANGUAGE="#{language}") end
name_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 71 def name_format %(NAME="#{name}") end
to_yes_no(boolean)
click to toggle source
# File lib/m3u8/media_item.rb, line 110 def to_yes_no(boolean) boolean == true ? 'YES' : 'NO' end
type_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 53 def type_format "TYPE=#{type}" end
uri_format()
click to toggle source
# File lib/m3u8/media_item.rb, line 85 def uri_format return if uri.nil? %(URI="#{uri}") end