Sha256: e6bb5086ae3e094519811009ec5cedc0ca3486a94e1bebff7fdba3999484f1fd

Contents?: true

Size: 1.15 KB

Versions: 16

Compression:

Stored size: 1.15 KB

Contents

module Assembly
  
  # This class contains generic methods to operate on any file.
  class ObjectFile

    include Assembly::ObjectFileable

    # Class level method that given an array of strings, return the longest common initial path.  Useful for removing a common path from a set of filenames when producing content metadata
    #
    # @param [Array] strings Array of filenames with paths to operate on
    # @return [String] Common part of path of filenames passed in
    #
    # Example:
    # puts Assembly::ObjectFile.common_prefix(['/Users/peter/00/test.tif','/Users/peter/05/test.jp2'])  # '/Users/peter/0'
    def self.common_path(strings)
      return nil if strings.size == 0
      n = 0
      x = strings.last
      n += 1 while strings.all? { |s| s[n] and s[n] == x[n] }
      common_prefix=x[0...n]
      if common_prefix[-1,1] != '/' # check if last element of the common string is the end of a directory
        return common_prefix.split('/')[0..-2].join('/') + "/"  # if not, split string along directories, and reject last one
      else
        return common_prefix # if it was, then return the common prefix directly
      end
    end
        
  end
  
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
assembly-objectfile-1.7.1 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.7.0 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.8 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.7 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.6 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.5 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.7 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.6 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.5 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.4 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.3 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.1 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.5.0 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.4 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.3 lib/assembly-objectfile/object_file.rb
assembly-objectfile-1.6.2 lib/assembly-objectfile/object_file.rb