Sha256: 99e041821f936b088af8a230b9b158e8292e66cd510de5ac3f7db33963770803

Contents?: true

Size: 1002 Bytes

Versions: 14

Compression:

Stored size: 1002 Bytes

Contents

# Finds a suitable importer for the chosen file path. Or at least tries to, based on the file extension.
# Will then examine all the importers and ask them if they can handle the specified file
class Tracksperanto::FormatDetector
  def initialize(with_path)
    perform_detection(with_path)
    freeze
  end
  
  private
    def perform_detection(for_path)
      ext = File.extname(for_path.downcase)
      @importer_klass = Tracksperanto.importers.find{ |i| i.distinct_file_ext == ext }
    end
  public
    
    # Tells if an importer has been found for this extension
    def match?
      !!@importer_klass
    end
    
    # Returns the importer if there is one
    def importer_klass
      @importer_klass
    end
    
    # Tells if comp size needs to be provided
    def auto_size?
      match? ? importer_klass.autodetects_size? : false
    end
    
    # Returns the human name of the importer
    def human_importer_name
      match? ? importer_klass.human_name : "Unknown format"
    end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
tracksperanto-1.5.4 lib/tracksperanto/format_detector.rb
tracksperanto-1.5.3 lib/tracksperanto/format_detector.rb
tracksperanto-1.5.2 lib/tracksperanto/format_detector.rb
tracksperanto-1.5.1 lib/tracksperanto/format_detector.rb
tracksperanto-1.5.0 lib/tracksperanto/format_detector.rb
tracksperanto-1.4.0 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.6 lib/tracksperanto/format_detector.rb
tracksperanto-1.3.1 lib/tracksperanto/format_detector.rb
tracksperanto-1.3.0 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.4 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.3 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.2 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.1 lib/tracksperanto/format_detector.rb
tracksperanto-1.2.0 lib/tracksperanto/format_detector.rb