From fcc2bc172f9aa4b993183ac5cda2dbefb3b44dba Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 13 May 2011 16:20:15 -0500 Subject: [PATCH] Separate Blob name and pathname --- lib/linguist/blob.rb | 21 +++++++++++++-------- test/test_blob.rb | 6 +++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/linguist/blob.rb b/lib/linguist/blob.rb index 88d9ffb6..43dc7d8a 100644 --- a/lib/linguist/blob.rb +++ b/lib/linguist/blob.rb @@ -8,19 +8,24 @@ module Linguist class Blob def initialize(blob) @blob = blob - @name = Pathname.new(blob.name || "") end - attr_reader :name + def name + @blob.name + end + + def pathname + Pathname.new(name || "") + end def mime_type - Mime.lookup(name.extname) + Mime.lookup(pathname.extname) end def disposition case mime_type when 'application/octet-stream', 'application/java-archive' - "attachment; filename=#{EscapeUtils.escape_url(name.basename)}" + "attachment; filename=#{EscapeUtils.escape_url(pathname.basename)}" else 'inline' end @@ -61,12 +66,12 @@ module Linguist def text? return false if submodule? - name.media_type == 'text' || - name.mime_type == 'application/json' + pathname.media_type == 'text' || + pathname.mime_type == 'application/json' end def image? - ['.png', '.jpg', '.jpeg', '.gif'].include?(name.extname) + ['.png', '.jpg', '.jpeg', '.gif'].include?(pathname.extname) end MEGABYTE = 1024 * 1024 @@ -81,7 +86,7 @@ module Linguist def language if text? - shebang_language || name.language + shebang_language || pathname.language else Language['Text'] end diff --git a/test/test_blob.rb b/test/test_blob.rb index 1b3ed47e..35078e34 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -30,7 +30,11 @@ class TestBlob < Test::Unit::TestCase end def test_name - assert_equal Pathname.new("foo.rb"), blob("foo.rb").name + assert_equal "foo.rb", blob("foo.rb").name + end + + def test_pathname + assert_equal Pathname.new("foo.rb"), blob("foo.rb").pathname end def test_mime_type