Sha256: fc84c59005cae6db3ab0c438ee149f9f89001324d3aaca4fe0bf5e42b240686c

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

module RestFtpDaemon
  class Path

    # Class options
    attr_accessor :name
    attr_accessor :dir

    def initialize full, strip_leading_slash = false
      # Extract path parts
      @name = extract_filename full.to_s

      @dir = extract_dirname full.to_s
      # puts "Path full.to_s: #{full.to_s}"
      # puts "Path extract_dirname: #{@dir}"

      # Remove leading slash if needed
      strip_leading_slash_from_dir! if strip_leading_slash
    end

    def full
      if @dir.nil? || @dir.empty?
        return @name
      else
        return File.join @dir, @name
      end
    end

    def size
      File.size full if File.exist? full
    end

  private

    def extract_filename path
      # match everything that's after a slash at the end of the string
      m = path.match(/\/?([^\/]+)$/)
      return m[1].to_s unless m.nil?
    end

    def extract_dirname path
      # match all the beginning of the string up to the last slash
      m = path.match(/^(.*)\/[^\/]*$/)
      return m[1].to_s unless m.nil?
    end

    def strip_leading_slash_from_dir!
      @dir.to_s.gsub!(/^\//, '')
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rest-ftp-daemon-0.410.2 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.410.1 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.410.0.pre.1 lib/rest-ftp-daemon/path.rb