Module: MP4::Source
- Defined in:
- lib/mp4/source.rb,
lib/mp4/source/s3.rb,
lib/mp4/source/url.rb,
lib/mp4/source/base.rb,
lib/mp4/source/local.rb
Defined Under Namespace
Modules: Base Classes: Local, S3, Url
Constant Summary collapse
- SCHEMES =
{ 'local' => 'MP4::Source::Local', 'http' => 'MP4::Source::Url', 'https' => 'MP4::Source::Url', 's3' => 'MP4::Source::S3', }.freeze
Class Method Summary collapse
Class Method Details
.build(uri, base_dir: nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/mp4/source.rb', line 9 def self.build(uri, base_dir: nil) raise ArgumentError, 'uri must be a String' unless uri.is_a?(String) scheme = uri.split(':', 2).first klass_name = SCHEMES[scheme] raise ArgumentError, "unknown source scheme: #{scheme.inspect}" unless klass_name klass = Object.const_get(klass_name) if scheme == 'local' klass.from_uri(uri, base_dir: base_dir) else klass.from_uri(uri) end end |