Sha256: 1082fcf49e78fe04bdd9705a6a0cefe265c380670426b8baf6d18bdbaad313cc

Contents?: true

Size: 1.12 KB

Versions: 6

Compression:

Stored size: 1.12 KB

Contents

require_relative 'identification_tool'

module Libis
  module Format
    module Tool

      class ExtensionIdentification < Libis::Format::Tool::IdentificationTool

        def run_list(filelist, _options = {})

          output = runner(nil, filelist)

          process_output(output)

        end

        def run_dir(dir, recursive = true, _options = {})

          filelist = find_files(dir, recursive)

          output = runner(nil, filelist)

          process_output(output)

        end

        def run(file, _options)

          output = runner(file)

          process_output(output)

        end

        protected

        def runner(*args)

          args.map do |file|
            info = ::Libis::Format::Library.get_info_by(:extension, File.extname(file))
            if info
              {
                  filepath: file,
                  mimetype: (info[:mimetypes].first rescue nil),
                  puid: (info[:puids].first rescue nil),
                  matchtype: 'extension',
                  tool: :format_library
              }
            end
          end.cleanup

        end

      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
libis-format-2.0.5 lib/libis/format/tool/extension_identification.rb
libis-format-2.0.4 lib/libis/format/tool/extension_identification.rb
libis-format-2.0.3 lib/libis/format/tool/extension_identification.rb
libis-format-2.0.2 lib/libis/format/tool/extension_identification.rb
libis-format-2.0.1 lib/libis/format/tool/extension_identification.rb
libis-format-2.0.0 lib/libis/format/tool/extension_identification.rb