faster_path 0.0.2

Alternative to Pathname
Documentation
require 'test_helper'

class DirnameTest < Minitest::Test
  def test_it_returns_all_the_components_of_filename_except_the_last_one
    assert_equal('/home', FasterPath.dirname('/home/jason'))
    assert_equal('/home/jason', FasterPath.dirname('/home/jason/poot.txt'))
    assert_equal('.', FasterPath.dirname('poot.txt'))
    assert_equal('/holy///schnikies', FasterPath.dirname('/holy///schnikies//w00t.bin'))
    assert_equal('.', FasterPath.dirname(''))
    assert_equal('/', FasterPath.dirname('/'))
    assert_equal('/foo', FasterPath.dirname('/foo/foo'))
  end

  def test_it_returns_a_string
    assert_kind_of(String, FasterPath.dirname("foo"))
  end

  def test_it_does_not_modify_its_argument
    x = "/usr/bin"
    FasterPath.dirname(x)
    assert_equal("/usr/bin", x)
  end

  def test_it_ignores_a_trailing_slash
    assert_equal('/foo', FasterPath.dirname('/foo/bar/'))
  end

  def test_it_returns_the_return_all_the_components_of_filename_except_the_last_one_unix_format
    assert_equal(".", FasterPath.dirname("foo"))
    assert_equal("/", FasterPath.dirname("/foo"))
    assert_equal("/foo", FasterPath.dirname("/foo/bar"))
    assert_equal("/foo", FasterPath.dirname("/foo/bar.txt"))
    assert_equal("/foo/bar", FasterPath.dirname("/foo/bar/baz"))
  end

  def test_it_returns_the_return_all_the_components_of_filename_except_the_last_one_edge_cases
    assert_equal(".", FasterPath.dirname(""))
    assert_equal(".", FasterPath.dirname("."))
    assert_equal(".", FasterPath.dirname("./"))
    assert_equal("./b", FasterPath.dirname("./b/./"))
    assert_equal(".", FasterPath.dirname(".."))
    assert_equal(".", FasterPath.dirname("../"))
    assert_equal("/", FasterPath.dirname("/"))
    assert_equal("/", FasterPath.dirname("/."))
    assert_equal("/", FasterPath.dirname("/foo/"))
    assert_equal("/foo", FasterPath.dirname("/foo/."))
    assert_equal("/foo", FasterPath.dirname("/foo/./"))
    assert_equal("/foo/..", FasterPath.dirname("/foo/../."))
    assert_equal("foo", FasterPath.dirname("foo/../"))
  end
end