diff --git a/lib/linguist/lazy_blob.rb b/lib/linguist/lazy_blob.rb index 1f16999d..dd9e94ab 100644 --- a/lib/linguist/lazy_blob.rb +++ b/lib/linguist/lazy_blob.rb @@ -47,7 +47,7 @@ module Linguist def result_for_key(keyname) key = git_attributes[keyname] - if key == "false" + if key == "false" || key.nil? return false else return true diff --git a/test/test_repository.rb b/test/test_repository.rb index c0269d5d..d2ce510a 100644 --- a/test/test_repository.rb +++ b/test/test_repository.rb @@ -1,7 +1,7 @@ require 'linguist/repository' require 'linguist/lazy_blob' require 'test/unit' -require 'pry' + class TestRepository < Test::Unit::TestCase def rugged_repository @rugged ||= Rugged::Repository.new(File.expand_path("../../.git", __FILE__)) @@ -58,7 +58,6 @@ class TestRepository < Test::Unit::TestCase # Rakefile linguist-generated # test/fixtures/* linguist-vendored=false - attr_commit = 'b533b682d5d4012ca42f4fc998b45169ec41fe33' repo = linguist_repo(attr_commit) @@ -72,8 +71,15 @@ class TestRepository < Test::Unit::TestCase def test_linguist_generated? attr_commit = 'b533b682d5d4012ca42f4fc998b45169ec41fe33' + file = Linguist::LazyBlob.new(rugged_repository, attr_commit, 'Rakefile') + git_attrs = { "linguist-language" => nil, + "linguist-vendored" => nil, + "linguist-generated"=> true } + + # TODO: get rid of this (would like this to come from git data) + file.stubs(:git_attributes).returns(git_attrs) # check we're getting the correct assignment back from .gitattributes assert file.result_for_key('linguist-generated') @@ -87,6 +93,13 @@ class TestRepository < Test::Unit::TestCase attr_commit = 'b533b682d5d4012ca42f4fc998b45169ec41fe33' override_vendored = Linguist::LazyBlob.new(rugged_repository, attr_commit, 'Gemfile') + git_attrs = { "linguist-language" => nil, + "linguist-vendored" => true, + "linguist-generated"=> nil } + + # TODO: get rid of this (would like this to come from git data) + override_vendored.stubs(:git_attributes).returns(git_attrs) + # check we're getting the correct assignment back from .gitattributes assert override_vendored.result_for_key('linguist-vendored') # overridden .gitattributes @@ -101,6 +114,13 @@ class TestRepository < Test::Unit::TestCase # lib/linguist/vendor.yml defines this as vendored. override_unvendored = Linguist::LazyBlob.new(rugged_repository, attr_commit, 'test/fixtures/foo.rb') + git_attrs = { "linguist-language" => nil, + "linguist-vendored" => "false", + "linguist-generated"=> nil } + + # TODO: get rid of this (would like this to come from git data) + override_unvendored.stubs(:git_attributes).returns(git_attrs) + # check we're getting the correct assignment back from .gitattributes assert !override_unvendored.result_for_key('linguist-vendored') # overridden .gitattributes