mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Merge pull request #1999 from github/more-relative-paths
More relative paths
This commit is contained in:
		@@ -14,6 +14,7 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns a FileBlob.
 | 
			
		||||
    def initialize(path, base_path = nil)
 | 
			
		||||
      @fullpath = path
 | 
			
		||||
      @path = base_path ? path.sub("#{base_path}/", '') : path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@@ -35,28 +36,28 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns a String like '100644'
 | 
			
		||||
    def mode
 | 
			
		||||
      File.stat(@path).mode.to_s(8)
 | 
			
		||||
      File.stat(@fullpath).mode.to_s(8)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Public: File name
 | 
			
		||||
    #
 | 
			
		||||
    # Returns a String
 | 
			
		||||
    def name
 | 
			
		||||
      File.basename(path)
 | 
			
		||||
      File.basename(@fullpath)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Public: Read file contents.
 | 
			
		||||
    #
 | 
			
		||||
    # Returns a String.
 | 
			
		||||
    def data
 | 
			
		||||
      File.read(@path)
 | 
			
		||||
      File.read(@fullpath)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Public: Get byte size
 | 
			
		||||
    #
 | 
			
		||||
    # Returns an Integer.
 | 
			
		||||
    def size
 | 
			
		||||
      File.size(@path)
 | 
			
		||||
      File.size(@fullpath)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Public: Get file extension.
 | 
			
		||||
@@ -73,7 +74,7 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns an Array
 | 
			
		||||
    def extensions
 | 
			
		||||
      basename, *segments = File.basename(path).split(".")
 | 
			
		||||
      basename, *segments = name.split(".")
 | 
			
		||||
 | 
			
		||||
      segments.map.with_index do |segment, index|
 | 
			
		||||
        "." + segments[index..-1].join(".")
 | 
			
		||||
 
 | 
			
		||||
@@ -22,22 +22,14 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    File.expand_path("../fixtures", __FILE__)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def sample_blob(name, enforce_relative = false)
 | 
			
		||||
  def sample_blob(name)
 | 
			
		||||
    name = File.join(samples_path, name) unless name =~ /^\//
 | 
			
		||||
    if enforce_relative
 | 
			
		||||
      FileBlob.new(name, samples_path)
 | 
			
		||||
    else
 | 
			
		||||
      FileBlob.new(name)
 | 
			
		||||
    end
 | 
			
		||||
    FileBlob.new(name, samples_path)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def fixture_blob(name, enforce_relative = false)
 | 
			
		||||
  def fixture_blob(name)
 | 
			
		||||
    name = File.join(fixtures_path, name) unless name =~ /^\//
 | 
			
		||||
    if enforce_relative
 | 
			
		||||
      FileBlob.new(name, fixtures_path)
 | 
			
		||||
    else
 | 
			
		||||
      FileBlob.new(name)
 | 
			
		||||
    end
 | 
			
		||||
    FileBlob.new(name, fixtures_path)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def script_blob(name)
 | 
			
		||||
@@ -271,7 +263,7 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert !sample_blob("ext/extconf.rb").vendored?
 | 
			
		||||
 | 
			
		||||
    # Dependencies
 | 
			
		||||
    assert sample_blob("dependencies/windows/headers/GL/glext.h", true).vendored?
 | 
			
		||||
    assert sample_blob("dependencies/windows/headers/GL/glext.h").vendored?
 | 
			
		||||
 | 
			
		||||
    # Node dependencies
 | 
			
		||||
    assert sample_blob("node_modules/coffee-script/lib/coffee-script.js").vendored?
 | 
			
		||||
@@ -296,10 +288,10 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("external/jquery.min.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # C deps
 | 
			
		||||
    assert sample_blob("deps/http_parser/http_parser.c", true).vendored?
 | 
			
		||||
    assert sample_blob("deps/v8/src/v8.h", true).vendored?
 | 
			
		||||
    assert sample_blob("deps/http_parser/http_parser.c").vendored?
 | 
			
		||||
    assert sample_blob("deps/v8/src/v8.h").vendored?
 | 
			
		||||
 | 
			
		||||
    assert sample_blob("tools/something/else.c", true).vendored?
 | 
			
		||||
    assert sample_blob("tools/something/else.c").vendored?
 | 
			
		||||
 | 
			
		||||
    # Chart.js
 | 
			
		||||
    assert sample_blob("some/vendored/path/Chart.js").vendored?
 | 
			
		||||
@@ -309,10 +301,10 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("codemirror/mode/blah.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Debian packaging
 | 
			
		||||
    assert sample_blob("debian/cron.d", true).vendored?
 | 
			
		||||
    assert sample_blob("debian/cron.d").vendored?
 | 
			
		||||
 | 
			
		||||
    # Erlang
 | 
			
		||||
    assert sample_blob("rebar", true).vendored?
 | 
			
		||||
    assert sample_blob("rebar").vendored?
 | 
			
		||||
 | 
			
		||||
    # Minified JavaScript and CSS
 | 
			
		||||
    assert sample_blob("foo.min.js").vendored?
 | 
			
		||||
@@ -323,7 +315,7 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert !sample_blob("foo.min.txt").vendored?
 | 
			
		||||
 | 
			
		||||
    #.osx
 | 
			
		||||
    assert sample_blob(".osx", true).vendored?
 | 
			
		||||
    assert sample_blob(".osx").vendored?
 | 
			
		||||
 | 
			
		||||
    # Prototype
 | 
			
		||||
    assert !sample_blob("public/javascripts/application.js").vendored?
 | 
			
		||||
@@ -333,7 +325,7 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("public/javascripts/dragdrop.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Samples
 | 
			
		||||
    assert sample_blob("Samples/Ruby/foo.rb", true).vendored?
 | 
			
		||||
    assert sample_blob("Samples/Ruby/foo.rb").vendored?
 | 
			
		||||
 | 
			
		||||
    # jQuery
 | 
			
		||||
    assert sample_blob("jquery.js").vendored?
 | 
			
		||||
@@ -398,10 +390,10 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("public/javascripts/modernizr.custom.01009.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Fabric
 | 
			
		||||
    assert sample_blob("fabfile.py", true).vendored?
 | 
			
		||||
    assert sample_blob("fabfile.py").vendored?
 | 
			
		||||
 | 
			
		||||
    # WAF
 | 
			
		||||
    assert sample_blob("waf", true).vendored?
 | 
			
		||||
    assert sample_blob("waf").vendored?
 | 
			
		||||
 | 
			
		||||
    # Visual Studio IntelliSense
 | 
			
		||||
    assert sample_blob("Scripts/jquery-1.7-vsdoc.js").vendored?
 | 
			
		||||
@@ -423,7 +415,7 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("Scripts/jquery.unobtrusive-ajax.min.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # NuGet Packages
 | 
			
		||||
    assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js", true).vendored?
 | 
			
		||||
    assert sample_blob("packages/Modernizr.2.0.6/Content/Scripts/modernizr-2.0.6-development-only.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Font Awesome
 | 
			
		||||
    assert sample_blob("some/asset/path/font-awesome.min.css").vendored?
 | 
			
		||||
@@ -433,15 +425,15 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("some/asset/path/normalize.css").vendored?
 | 
			
		||||
 | 
			
		||||
    # Cocoapods
 | 
			
		||||
    assert sample_blob('Pods/blah', true).vendored?
 | 
			
		||||
    assert sample_blob('Pods/blah').vendored?
 | 
			
		||||
 | 
			
		||||
    # Html5shiv
 | 
			
		||||
    assert sample_blob("Scripts/html5shiv.js").vendored?
 | 
			
		||||
    assert sample_blob("Scripts/html5shiv.min.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Test fixtures
 | 
			
		||||
    assert sample_blob("test/fixtures/random.rkt", true).vendored?
 | 
			
		||||
    assert sample_blob("Test/fixtures/random.rkt", true).vendored?
 | 
			
		||||
    assert sample_blob("test/fixtures/random.rkt").vendored?
 | 
			
		||||
    assert sample_blob("Test/fixtures/random.rkt").vendored?
 | 
			
		||||
 | 
			
		||||
    # Cordova/PhoneGap
 | 
			
		||||
    assert sample_blob("cordova.js").vendored?
 | 
			
		||||
@@ -455,7 +447,7 @@ class TestBlob < Minitest::Test
 | 
			
		||||
    assert sample_blob("foundation.abide.js").vendored?
 | 
			
		||||
 | 
			
		||||
    # Vagrant
 | 
			
		||||
    assert sample_blob("Vagrantfile", true).vendored?
 | 
			
		||||
    assert sample_blob("Vagrantfile").vendored?
 | 
			
		||||
 | 
			
		||||
    # Gradle
 | 
			
		||||
    assert sample_blob("gradlew").vendored?
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user