Sha256: 6d0fa9a8d30df078f5d54f0d03485e177bba8dfa37bffcf8030730391798fd51

Contents?: true

Size: 553 Bytes

Versions: 35

Compression:

Stored size: 553 Bytes

Contents

class FormatParser::M3UParser
  include FormatParser::IOUtils

  HEADER = '#EXTM3U'
  M3U8_MIME_TYPE = 'application/vnd.apple.mpegurl' # https://en.wikipedia.org/wiki/M3U#Internet_media_types

  def likely_match?(filename)
    filename =~ /\.m3u8?$/i
  end

  def call(io)
    io = FormatParser::IOConstraint.new(io)

    header = safe_read(io, 7)
    return unless HEADER.eql?(header)

    FormatParser::Text.new(
      format: :m3u,
      content_type: M3U8_MIME_TYPE,
    )
  end
  FormatParser.register_parser new, natures: :text, formats: :m3u
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
format_parser-2.10.0 lib/parsers/m3u_parser.rb
format_parser-2.9.0 lib/parsers/m3u_parser.rb
format_parser-2.8.0 lib/parsers/m3u_parser.rb
format_parser-2.7.2 lib/parsers/m3u_parser.rb
format_parser-2.7.1 lib/parsers/m3u_parser.rb
format_parser-2.7.0 lib/parsers/m3u_parser.rb
format_parser-2.6.0 lib/parsers/m3u_parser.rb
format_parser-2.5.0 lib/parsers/m3u_parser.rb
format_parser-2.4.5 lib/parsers/m3u_parser.rb
format_parser-2.4.4 lib/parsers/m3u_parser.rb
format_parser-2.4.3 lib/parsers/m3u_parser.rb
format_parser-2.3.0 lib/parsers/m3u_parser.rb
format_parser-2.2.1 lib/parsers/m3u_parser.rb
format_parser-2.2.0 lib/parsers/m3u_parser.rb
format_parser-2.1.0 lib/parsers/m3u_parser.rb
format_parser-2.0.0 lib/parsers/m3u_parser.rb
format_parser-2.0.0.pre.4 lib/parsers/m3u_parser.rb
format_parser-2.0.0.pre.3 lib/parsers/m3u_parser.rb
format_parser-2.0.0.pre.2 lib/parsers/m3u_parser.rb
format_parser-2.0.0.pre lib/parsers/m3u_parser.rb