Add colorize

This commit is contained in:
Joshua Peek
2011-05-20 14:01:12 -05:00
parent cf9dd8f8fd
commit bebae09fde
6 changed files with 55 additions and 0 deletions

View File

@@ -132,5 +132,10 @@ module Linguist
end
end
end
def colorize
return if !text? || large?
lexer.colorize(data)
end
end
end

View File

@@ -77,6 +77,10 @@ module Linguist
!popular?
end
def colorize(text)
lexer.colorize(text)
end
def ==(other)
eql?(other)
end

View File

@@ -1,3 +1,4 @@
require 'albino'
require 'yaml'
module Linguist
@@ -21,6 +22,10 @@ module Linguist
aliases.first
end
def colorize(text)
Albino.colorize(text, to_s)
end
def ==(other)
eql?(other)
end

View File

@@ -170,4 +170,13 @@ class TestBlob < Test::Unit::TestCase
assert_equal nil, blob("script.foo").shebang_language
assert_equal nil, blob("foo.rb").shebang_language
end
def test_colorize
assert_equal <<-HTML, blob("foo.rb").colorize
<div class="highlight"><pre><span class="k">module</span> <span class="nn">Foo</span>
<span class="k">end</span>
</pre>
</div>
HTML
end
end

View File

@@ -95,4 +95,20 @@ class TestLanguage < Test::Unit::TestCase
assert Language['Assembly'].unpopular?
assert Language['Brainfuck'].unpopular?
end
def test_colorize
assert_equal <<-HTML, Language['Text'].colorize("Hello")
<div class="highlight"><pre>Hello
</pre>
</div>
HTML
assert_equal <<-HTML, Language['Ruby'].colorize("def foo\n 'foo'\nend\n")
<div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span>
<span class="k">end</span>
</pre>
</div>
HTML
end
end

View File

@@ -34,4 +34,20 @@ class TestLexer < Test::Unit::TestCase
assert !Lexer['Ruby'].eql?(Lexer['Python'])
assert !Lexer['Ruby'].eql?(Lexer.new('Ruby'))
end
def test_colorize
assert_equal <<-HTML, Lexer['Text only'].colorize("Hello")
<div class="highlight"><pre>Hello
</pre>
</div>
HTML
assert_equal <<-HTML, Lexer['Ruby'].colorize("def foo\n 'foo'\nend\n")
<div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span>
<span class="k">end</span>
</pre>
</div>
HTML
end
end