Sha256: 572a90d3c12eddb11aac5b0d689ec86bffe431b88ee3183ed3a560d611ae389e

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 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

      # 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

7 entries across 7 versions & 1 rubygems

Version Path
rest-ftp-daemon-0.400.0 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.306.4 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.306.3 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.306.1 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.306.0 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.305.0 lib/rest-ftp-daemon/path.rb
rest-ftp-daemon-0.304.0 lib/rest-ftp-daemon/path.rb