summaryrefslogtreecommitdiff
path: root/lib/coderay/helpers
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2009-10-20 10:10:00 +0000
committermurphy <murphy@rubychan.de>2009-10-20 10:10:00 +0000
commita8163c39206fd11ef30ef8efb2c73a6f6a97e424 (patch)
tree33323edcb67c4d3e14572fd789313aa68f080839 /lib/coderay/helpers
parent33e60373f5e19a70b3e5b7b6af29308555c628ec (diff)
downloadcoderay-a8163c39206fd11ef30ef8efb2c73a6f6a97e424.tar.gz
Made FileType work with Pathname (closes #118).
Diffstat (limited to 'lib/coderay/helpers')
-rw-r--r--lib/coderay/helpers/file_type.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/coderay/helpers/file_type.rb b/lib/coderay/helpers/file_type.rb
index 1715fee..f9cdd36 100644
--- a/lib/coderay/helpers/file_type.rb
+++ b/lib/coderay/helpers/file_type.rb
@@ -35,7 +35,7 @@ module FileType
def [] filename, read_shebang = false
name = File.basename filename
ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
- ext2 = filename[/\.(.*)/, 1] # from first dot
+ ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
type =
TypeFromExt[ext.downcase] ||
@@ -82,7 +82,7 @@ module FileType
TypeFromExt = {
'c' => :c,
- 'cpp' => :c,
+ 'cpp' => :cpp,
'css' => :css,
'diff' => :diff,
'dpr' => :delphi,
@@ -139,7 +139,7 @@ end
__END__
require 'test/unit'
-class TC_FileType < Test::Unit::TestCase
+class FileTypeTests < Test::Unit::TestCase
include CodeRay
@@ -169,6 +169,8 @@ class TC_FileType < Test::Unit::TestCase
def test_ruby
assert_equal :ruby, FileType['test.rb']
+ assert_equal :ruby, FileType['test.java.rb']
+ assert_equal :java, FileType['test.rb.java']
assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
@@ -203,6 +205,15 @@ class TC_FileType < Test::Unit::TestCase
assert_not_equal :yaml, FileType['YAML']
end
+ def test_pathname
+ require 'pathname'
+ pn = Pathname.new 'test.rb'
+ assert_equal :ruby, FileType[pn]
+ dir = Pathname.new '/etc/var/blubb'
+ assert_equal :ruby, FileType[dir + pn]
+ assert_equal :cpp, FileType[dir + 'test.cpp']
+ end
+
def test_no_shebang
dir = './test'
if File.directory? dir