Module: M3u8
- Included in:
- ContentSteeringItem, DateRangeItem, DefineItem, KeyItem, MapItem, MapItem, MediaItem, PartInfItem, PartItem, PartItem, PlaybackStart, PlaylistItem, PreloadHintItem, RenditionReportItem, SegmentItem, ServerControlItem, SessionDataItem, SessionKeyItem, SkipItem, TimeItem
- Defined in:
- lib/m3u8.rb,
lib/m3u8/cli.rb,
lib/m3u8/error.rb,
lib/m3u8/codecs.rb,
lib/m3u8/reader.rb,
lib/m3u8/scte35.rb,
lib/m3u8/writer.rb,
lib/m3u8/builder.rb,
lib/m3u8/version.rb,
lib/m3u8/gap_item.rb,
lib/m3u8/key_item.rb,
lib/m3u8/map_item.rb,
lib/m3u8/playlist.rb,
lib/m3u8/part_item.rb,
lib/m3u8/skip_item.rb,
lib/m3u8/time_item.rb,
lib/m3u8/byte_range.rb,
lib/m3u8/media_item.rb,
lib/m3u8/define_item.rb,
lib/m3u8/encryptable.rb,
lib/m3u8/bitrate_item.rb,
lib/m3u8/segment_item.rb,
lib/m3u8/serializable.rb,
lib/m3u8/part_inf_item.rb,
lib/m3u8/playlist_item.rb,
lib/m3u8/playback_start.rb,
lib/m3u8/date_range_item.rb,
lib/m3u8/cli/diff_command.rb,
lib/m3u8/session_key_item.rb,
lib/m3u8/preload_hint_item.rb,
lib/m3u8/scte35_bit_reader.rb,
lib/m3u8/session_data_item.rb,
lib/m3u8/variable_resolver.rb,
lib/m3u8/discontinuity_item.rb,
lib/m3u8/scte35_splice_null.rb,
lib/m3u8/scte35_time_signal.rb,
lib/m3u8/attribute_formatter.rb,
lib/m3u8/cli/inspect_command.rb,
lib/m3u8/server_control_item.rb,
lib/m3u8/cli/validate_command.rb,
lib/m3u8/scte35_splice_insert.rb,
lib/m3u8/content_steering_item.rb,
lib/m3u8/rendition_report_item.rb,
lib/m3u8/scte35_segmentation_descriptor.rb
Overview
M3u8 provides parsing, generation, and validation of m3u8 playlists
Defined Under Namespace
Modules: AttributeFormatter, Codecs, Encryptable, Serializable Classes: BitrateItem, Builder, ByteRange, CLI, ContentSteeringItem, DateRangeItem, DefineItem, DiscontinuityItem, GapItem, InvalidPlaylistError, KeyItem, MapItem, MediaItem, PartInfItem, PartItem, PlaybackStart, Playlist, PlaylistItem, PlaylistTypeError, PreloadHintItem, Reader, RenditionReportItem, Scte35, Scte35BitReader, Scte35SegmentationDescriptor, Scte35SpliceInsert, Scte35SpliceNull, Scte35TimeSignal, SegmentItem, ServerControlItem, SessionDataItem, SessionKeyItem, SkipItem, TimeItem, VariableResolver, Writer
Constant Summary collapse
- VERSION =
'1.9.0'
Instance Method Summary collapse
-
#initialize_with_byterange(params = {}) ⇒ void
Initialize attributes from a params hash, converting any Hash values for :byterange into ByteRange instances.
-
#parse_attributes(line) ⇒ Hash<String, String>
Parse an HLS attribute list string into a Hash.
-
#parse_float(value) ⇒ Float?
Convert a string value to Float, returning nil when nil.
-
#parse_int(value) ⇒ Integer?
Convert a string value to Integer, returning nil when nil.
-
#parse_yes_no(value) ⇒ Boolean
Parse an HLS YES/NO attribute into a boolean.
-
#to_yes_no(boolean) ⇒ String
Convert a boolean into an HLS YES/NO string.
Instance Method Details
#initialize_with_byterange(params = {}) ⇒ void
This method returns an undefined value.
Initialize attributes from a params hash, converting any Hash values for :byterange into ByteRange instances.
15 16 17 18 19 20 |
# File 'lib/m3u8.rb', line 15 def initialize_with_byterange(params = {}) params.each do |key, value| value = ByteRange.new(value) if value.is_a?(Hash) instance_variable_set("@#{key}", value) end end |
#parse_attributes(line) ⇒ Hash<String, String>
Parse an HLS attribute list string into a Hash.
25 26 27 28 |
# File 'lib/m3u8.rb', line 25 def parse_attributes(line) line.delete("\n").scan(/([A-Za-z0-9-]+)\s*=\s*("[^"]*"|[^,]*)/) .to_h { |key, value| [key, value.delete('"')] } end |
#parse_float(value) ⇒ Float?
Convert a string value to Float, returning nil when nil.
33 34 35 |
# File 'lib/m3u8.rb', line 33 def parse_float(value) value&.to_f end |
#parse_int(value) ⇒ Integer?
Convert a string value to Integer, returning nil when nil.
40 41 42 |
# File 'lib/m3u8.rb', line 40 def parse_int(value) value&.to_i end |
#parse_yes_no(value) ⇒ Boolean
Parse an HLS YES/NO attribute into a boolean.
47 48 49 |
# File 'lib/m3u8.rb', line 47 def parse_yes_no(value) value == 'YES' end |
#to_yes_no(boolean) ⇒ String
Convert a boolean into an HLS YES/NO string.
54 55 56 |
# File 'lib/m3u8.rb', line 54 def to_yes_no(boolean) boolean == true ? 'YES' : 'NO' end |