mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Replace Lexer with Pygments::Lexer
This commit is contained in:
		
							
								
								
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							| @@ -1,2 +1,4 @@ | |||||||
| source :rubygems | source :rubygems | ||||||
| gemspec | gemspec | ||||||
|  |  | ||||||
|  | gem 'pygments.rb', :git => 'git://github.com/tmm1/pygments.rb.git' | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								Rakefile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Rakefile
									
									
									
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
| require 'rake/clean' |  | ||||||
| require 'rake/testtask' | require 'rake/testtask' | ||||||
|  |  | ||||||
| task :default => :test | task :default => :test | ||||||
| @@ -6,16 +5,3 @@ task :default => :test | |||||||
| Rake::TestTask.new do |t| | Rake::TestTask.new do |t| | ||||||
|   t.warning = true |   t.warning = true | ||||||
| end | end | ||||||
|  |  | ||||||
| CLOBBER.include 'lib/linguist/lexers.yml' |  | ||||||
|  |  | ||||||
| file 'lib/linguist/lexers.yml' do |f| |  | ||||||
|   # GitHub vendored pygments path |  | ||||||
|   #   vendor/python/pygments |  | ||||||
|   path = File.expand_path('../../../python/pygments', __FILE__) |  | ||||||
|   ENV['PYTHONPATH'] = path if File.directory?(path) |  | ||||||
|  |  | ||||||
|   sh "python ./bin/pygments-lexers > #{f.name}" |  | ||||||
| end |  | ||||||
|  |  | ||||||
| task :lexers => 'lib/linguist/lexers.yml' |  | ||||||
|   | |||||||
| @@ -1,27 +0,0 @@ | |||||||
| #!/usr/bin/env python |  | ||||||
|  |  | ||||||
| from pygments import __version__ |  | ||||||
| from pygments.lexers import get_all_lexers |  | ||||||
|  |  | ||||||
| print "# AUTOMATICALLY GENERATED BY bin/pygments-lexers" |  | ||||||
| print "# DO NOT MODIFIY. YOUR PULL WILL BE REJECTED." |  | ||||||
| print "# Pygments version %s" % __version__ |  | ||||||
| print "---" |  | ||||||
|  |  | ||||||
| for name, aliases, filenames, mimetypes in get_all_lexers(): |  | ||||||
|     print "%s:" % name |  | ||||||
|  |  | ||||||
|     if any(aliases): |  | ||||||
|         print "  aliases:" |  | ||||||
|         for alias in aliases: |  | ||||||
|             print "  - '%s'" % alias |  | ||||||
|  |  | ||||||
|     if any(filenames): |  | ||||||
|         print "  filenames:" |  | ||||||
|         for filename in filenames: |  | ||||||
|             print "  - '%s'" % filename |  | ||||||
|  |  | ||||||
|     if any(mimetypes): |  | ||||||
|         print "  mimetypes:" |  | ||||||
|         for mimetype in mimetypes: |  | ||||||
|             print "  - '%s'" % mimetype |  | ||||||
| @@ -3,6 +3,7 @@ require 'linguist/mime' | |||||||
| require 'linguist/pathname' | require 'linguist/pathname' | ||||||
|  |  | ||||||
| require 'escape_utils' | require 'escape_utils' | ||||||
|  | require 'pygments' | ||||||
| require 'yaml' | require 'yaml' | ||||||
|  |  | ||||||
| module Linguist | module Linguist | ||||||
| @@ -343,7 +344,7 @@ module Linguist | |||||||
|     # |     # | ||||||
|     # Returns a Lexer. |     # Returns a Lexer. | ||||||
|     def lexer |     def lexer | ||||||
|       language ? language.lexer : Lexer['Text only'] |       language ? language.lexer : Pygments::Lexer.find_by_name('Text only') | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Internal: Disambiguates between multiple language extensions. |     # Internal: Disambiguates between multiple language extensions. | ||||||
| @@ -512,19 +513,27 @@ module Linguist | |||||||
|  |  | ||||||
|     # Public: Highlight syntax of blob |     # Public: Highlight syntax of blob | ||||||
|     # |     # | ||||||
|  |     # options - A Hash of options (defaults to {}) | ||||||
|  |     # | ||||||
|     # Returns html String |     # Returns html String | ||||||
|     def colorize |     def colorize(options = {}) | ||||||
|       return if !text? || large? |       return if !text? || large? | ||||||
|       lexer.colorize(data) |       lexer.highlight(data, options) | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Highlight syntax of blob without the outer highlight div |     # Public: Highlight syntax of blob without the outer highlight div | ||||||
|     # wrapper. |     # wrapper. | ||||||
|     # |     # | ||||||
|  |     # options - A Hash of options (defaults to {}) | ||||||
|  |     # | ||||||
|     # Returns html String |     # Returns html String | ||||||
|     def colorize_without_wrapper |     def colorize_without_wrapper(options = {}) | ||||||
|       return if !text? || large? |       return if !text? || large? | ||||||
|       lexer.colorize_without_wrapper(data) |       if text = lexer.highlight(data, options) | ||||||
|  |         text[%r{<div class="highlight"><pre>(.*?)</pre>\s*</div>}m, 1] | ||||||
|  |       else | ||||||
|  |         '' | ||||||
|  |       end | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     Language.overridden_extensions.each do |extension| |     Language.overridden_extensions.each do |extension| | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| require 'linguist/lexer' |  | ||||||
|  |  | ||||||
| require 'yaml' | require 'yaml' | ||||||
|  | require 'pygments' | ||||||
|  |  | ||||||
| module Linguist | module Linguist | ||||||
|   # Language names that are recognizable by GitHub. Defined languages |   # Language names that are recognizable by GitHub. Defined languages | ||||||
| @@ -211,7 +210,7 @@ module Linguist | |||||||
|       @aliases = [default_alias_name] + (attributes[:aliases] || []) |       @aliases = [default_alias_name] + (attributes[:aliases] || []) | ||||||
|  |  | ||||||
|       # Lookup Lexer object |       # Lookup Lexer object | ||||||
|       @lexer = Lexer.find_by_name(attributes[:lexer] || name) || |       @lexer = Pygments::Lexer.find_by_name(attributes[:lexer] || name) || | ||||||
|         raise(ArgumentError, "#{@name} is missing lexer") |         raise(ArgumentError, "#{@name} is missing lexer") | ||||||
|  |  | ||||||
|       # Set legacy search term |       # Set legacy search term | ||||||
| @@ -370,21 +369,12 @@ module Linguist | |||||||
|  |  | ||||||
|     # Public: Highlight syntax of text |     # Public: Highlight syntax of text | ||||||
|     # |     # | ||||||
|     # text - String of code to be highlighted |     # text    - String of code to be highlighted | ||||||
|  |     # options - A Hash of options (defaults to {}) | ||||||
|     # |     # | ||||||
|     # Returns html String |     # Returns html String | ||||||
|     def colorize(text) |     def colorize(text, options = {}) | ||||||
|       lexer.colorize(text) |       lexer.highlight(text, options = {}) | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Highlight syntax of text without the outer highlight div |  | ||||||
|     # wrapper. |  | ||||||
|     # |  | ||||||
|     # text - String of code to be highlighted |  | ||||||
|     # |  | ||||||
|     # Returns html String |  | ||||||
|     def colorize_without_wrapper(text) |  | ||||||
|       lexer.colorize_without_wrapper(text) |  | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Return name as String representation |     # Public: Return name as String representation | ||||||
|   | |||||||
| @@ -1,167 +0,0 @@ | |||||||
| require 'pygments' |  | ||||||
| require 'yaml' |  | ||||||
|  |  | ||||||
| module Linguist |  | ||||||
|   # Mirror of Pygments Lexer structure. |  | ||||||
|   # |  | ||||||
|   # name      - Proper lexer name (JavaScript, Ruby, Python) |  | ||||||
|   # aliases   - Aliases for lookup (js, javascript) |  | ||||||
|   # filenames - Filename globs (*.js) |  | ||||||
|   # mimetypes - Mime types (application/javascript) |  | ||||||
|   class Lexer < Struct.new(:name, :aliases, :filenames, :mimetypes) |  | ||||||
|     @lexers          = [] |  | ||||||
|     @index           = {} |  | ||||||
|     @name_index      = {} |  | ||||||
|     @alias_index     = {} |  | ||||||
|     @mimetypes_index = {} |  | ||||||
|  |  | ||||||
|     # Internal: Create a new Lexer object |  | ||||||
|     # |  | ||||||
|     # name  - Name of Lexer |  | ||||||
|     # attrs - A hash of attributes |  | ||||||
|     # |  | ||||||
|     # Returns a Lexer object |  | ||||||
|     def self.create(name, attrs) |  | ||||||
|       name      = name |  | ||||||
|       aliases   = attrs['aliases']   || [] |  | ||||||
|       filenames = attrs['filenames'] || [] |  | ||||||
|       mimetypes = attrs['mimetypes'] || [] |  | ||||||
|  |  | ||||||
|       @lexers << lexer = new(name, aliases, filenames, mimetypes) |  | ||||||
|  |  | ||||||
|       # All Lexer names should be unique. Warn if there is a duplicate. |  | ||||||
|       if @name_index.key?(lexer.name) |  | ||||||
|         warn "Duplicate lexer name: #{lexer.name}" |  | ||||||
|       end |  | ||||||
|  |  | ||||||
|       @index[lexer.name] = @name_index[lexer.name] = lexer |  | ||||||
|  |  | ||||||
|       lexer.aliases.each do |name| |  | ||||||
|         # All Lexer aliases should be unique. Warn if there is a duplicate. |  | ||||||
|         if @alias_index.key?(name) |  | ||||||
|           warn "Duplicate alias: #{name}" |  | ||||||
|         end |  | ||||||
|  |  | ||||||
|         @index[name] = @alias_index[name] = lexer |  | ||||||
|       end |  | ||||||
|  |  | ||||||
|       lexer.mimetypes.each do |type| |  | ||||||
|         # All Lexer mimetypes should be unique. Warn if there is a duplicate. |  | ||||||
|         if @mimetypes_index.key?(name) |  | ||||||
|           warn "Duplicate mimetype: #{name}" |  | ||||||
|         end |  | ||||||
|  |  | ||||||
|         @mimetypes_index[type] = lexer |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Get all Lexers |  | ||||||
|     # |  | ||||||
|     # Returns an Array of Lexers |  | ||||||
|     def self.all |  | ||||||
|       @lexers |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Look up Lexer by name or alias. |  | ||||||
|     # |  | ||||||
|     # name - A String name or alias |  | ||||||
|     # |  | ||||||
|     #   Lexer['Ruby'] |  | ||||||
|     #   => #<Lexer name="Ruby"> |  | ||||||
|     # |  | ||||||
|     # Returns the Lexer or nil if none was found. |  | ||||||
|     def self.[](name) |  | ||||||
|       @index[name] |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Look up Lexer by its proper name. |  | ||||||
|     # |  | ||||||
|     # name - The String name of the Lexer |  | ||||||
|     # |  | ||||||
|     # Examples |  | ||||||
|     # |  | ||||||
|     #   Lexer.find_by_name('Ruby') |  | ||||||
|     #   # => #<Lexer name="Ruby"> |  | ||||||
|     # |  | ||||||
|     # Returns the Lexer or nil if none was found. |  | ||||||
|     def self.find_by_name(name) |  | ||||||
|       @name_index[name] |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Look up Lexer by one of its aliases. |  | ||||||
|     # |  | ||||||
|     # name - A String alias of the Lexer |  | ||||||
|     # |  | ||||||
|     # Examples |  | ||||||
|     # |  | ||||||
|     #   Lexer.find_by_alias('rb') |  | ||||||
|     #   # => #<Lexer name="Ruby"> |  | ||||||
|     # |  | ||||||
|     # Returns the Lexer or nil if none was found. |  | ||||||
|     def self.find_by_alias(name) |  | ||||||
|       @alias_index[name] |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Look up Lexer by one of it's mime types. |  | ||||||
|     # |  | ||||||
|     # type - A mime type String. |  | ||||||
|     # |  | ||||||
|     # Examples |  | ||||||
|     # |  | ||||||
|     #  Lexer.find_by_mimetype('application/x-ruby') |  | ||||||
|     #  # => #<Lexer name="Ruby"> |  | ||||||
|     # |  | ||||||
|     # Returns the Lexer or nil if none was found. |  | ||||||
|     def self.find_by_mimetype(type) |  | ||||||
|       @mimetypes_index[type] |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Return a alias of the Lexer to pass to Pygments. |  | ||||||
|     # |  | ||||||
|     # The alias we choose is arbitrary. |  | ||||||
|     # |  | ||||||
|     # Returns the alias String |  | ||||||
|     def to_s |  | ||||||
|       aliases.first |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Highlight syntax of text |  | ||||||
|     # |  | ||||||
|     # text - String of code to be highlighted |  | ||||||
|     # |  | ||||||
|     # Returns html String |  | ||||||
|     def colorize(text) |  | ||||||
|       Pygments.highlight(text, :lexer => aliases.first, :options => {:stripnl => false}) |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Public: Highlight syntax of text without the outer highlight div |  | ||||||
|     # wrapper. |  | ||||||
|     # |  | ||||||
|     # text - String of code to be highlighted |  | ||||||
|     # |  | ||||||
|     # Returns html String |  | ||||||
|     def colorize_without_wrapper(text) |  | ||||||
|       if text = colorize(text) |  | ||||||
|         text[%r{<div class="highlight"><pre>(.*?)</pre>\s*</div>}m, 1] |  | ||||||
|       else |  | ||||||
|         '' |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     def ==(other) |  | ||||||
|       eql?(other) |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     def eql?(other) |  | ||||||
|       equal?(other) |  | ||||||
|     end |  | ||||||
|  |  | ||||||
|     # Load lexers from lexers.yml |  | ||||||
|     # |  | ||||||
|     # `bin/pygments-lexers` dumps a YAML list of all the available |  | ||||||
|     # Pygments lexers. |  | ||||||
|     YAML.load_file(File.expand_path("../lexers.yml", __FILE__)).each do |name, attrs| |  | ||||||
|       Lexer.create(name, attrs) |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,5 +1,6 @@ | |||||||
| require 'linguist/language' | require 'linguist/language' | ||||||
| require 'linguist/mime' | require 'linguist/mime' | ||||||
|  | require 'pygments' | ||||||
|  |  | ||||||
| module Linguist | module Linguist | ||||||
|   # Similar to ::Pathname, Linguist::Pathname wraps a path string and |   # Similar to ::Pathname, Linguist::Pathname wraps a path string and | ||||||
| @@ -61,7 +62,7 @@ module Linguist | |||||||
|     # |     # | ||||||
|     # Returns a Lexer. |     # Returns a Lexer. | ||||||
|     def lexer |     def lexer | ||||||
|       language ? language.lexer : Lexer['Text only'] |       language ? language.lexer : Pygments::Lexer.find_by_name('Text only') | ||||||
|     end |     end | ||||||
|  |  | ||||||
|     # Public: Get the mime type |     # Public: Get the mime type | ||||||
|   | |||||||
| @@ -2,10 +2,13 @@ require 'linguist/file_blob' | |||||||
|  |  | ||||||
| require 'test/unit' | require 'test/unit' | ||||||
| require 'mime/types' | require 'mime/types' | ||||||
|  | require 'pygments' | ||||||
|  |  | ||||||
| class TestBlob < Test::Unit::TestCase | class TestBlob < Test::Unit::TestCase | ||||||
|   include Linguist |   include Linguist | ||||||
|  |  | ||||||
|  |   Lexer = Pygments::Lexer | ||||||
|  |  | ||||||
|   def fixtures_path |   def fixtures_path | ||||||
|     File.expand_path("../fixtures", __FILE__) |     File.expand_path("../fixtures", __FILE__) | ||||||
|   end |   end | ||||||
|   | |||||||
| @@ -1,10 +1,13 @@ | |||||||
| require 'linguist/language' | require 'linguist/language' | ||||||
|  |  | ||||||
| require 'test/unit' | require 'test/unit' | ||||||
|  | require 'pygments' | ||||||
|  |  | ||||||
| class TestLanguage < Test::Unit::TestCase | class TestLanguage < Test::Unit::TestCase | ||||||
|   include Linguist |   include Linguist | ||||||
|  |  | ||||||
|  |   Lexer = Pygments::Lexer | ||||||
|  |  | ||||||
|   def test_ambiguous_extensions |   def test_ambiguous_extensions | ||||||
|     assert Language.ambiguous?('.h') |     assert Language.ambiguous?('.h') | ||||||
|     assert_equal Language['C'], Language.find_by_extension('h') |     assert_equal Language['C'], Language.find_by_extension('h') | ||||||
| @@ -311,26 +314,4 @@ class TestLanguage < Test::Unit::TestCase | |||||||
| </div> | </div> | ||||||
|     HTML |     HTML | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def test_colorize_without_wrapper |  | ||||||
|     assert_equal <<-HTML, Language['Text'].colorize_without_wrapper("Hello") |  | ||||||
| Hello |  | ||||||
|     HTML |  | ||||||
|  |  | ||||||
|     assert_equal <<-HTML, Language['Ruby'].colorize_without_wrapper("def foo\n  'foo'\nend\n") |  | ||||||
| <span class="k">def</span> <span class="nf">foo</span> |  | ||||||
|   <span class="s1">'foo'</span> |  | ||||||
| <span class="k">end</span> |  | ||||||
|     HTML |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_colorize_doesnt_strip_newlines |  | ||||||
|     assert_equal <<-HTML, Language['Ruby'].colorize_without_wrapper("\n\n# Foo\ndef 'foo'\nend\n") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <span class="c1"># Foo</span> |  | ||||||
| <span class="k">def</span> <span class="s1">'foo'</span> |  | ||||||
| <span class="k">end</span> |  | ||||||
|     HTML |  | ||||||
|   end |  | ||||||
| end | end | ||||||
|   | |||||||
| @@ -1,91 +0,0 @@ | |||||||
| require 'linguist/lexer' |  | ||||||
|  |  | ||||||
| require 'test/unit' |  | ||||||
|  |  | ||||||
| class TestLexer < Test::Unit::TestCase |  | ||||||
|   include Linguist |  | ||||||
|  |  | ||||||
|   def test_find_by_name |  | ||||||
|     assert_equal Lexer['Ruby'], Lexer.find_by_name('Ruby') |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_find_all_by_name |  | ||||||
|     Lexer.all.each do |lexer| |  | ||||||
|       assert_equal lexer, Lexer.find_by_name(lexer.name) |  | ||||||
|       assert_equal lexer, Lexer[lexer.name] |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_find_by_alias |  | ||||||
|     assert_equal Lexer['Ruby'], Lexer.find_by_alias('rb') |  | ||||||
|     assert_equal Lexer['Ruby'], Lexer.find_by_alias('ruby') |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_find_all_by_alias |  | ||||||
|     Lexer.all.each do |lexer| |  | ||||||
|       lexer.aliases.each do |name| |  | ||||||
|         assert_equal lexer, Lexer.find_by_alias(name) |  | ||||||
|         assert_equal lexer, Lexer[name] |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_find_by_mimetype |  | ||||||
|     assert_equal Lexer['Ruby'], Lexer.find_by_mimetype('text/x-ruby') |  | ||||||
|     assert_equal Lexer['Ruby'], Lexer.find_by_mimetype('application/x-ruby') |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_find_all_by_mimetype |  | ||||||
|     Lexer.all.each do |lexer| |  | ||||||
|       lexer.mimetypes.each do |type| |  | ||||||
|         assert_equal lexer, Lexer.find_by_mimetype(type) |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_name |  | ||||||
|     assert_equal 'Ruby',   Lexer['Ruby'].name |  | ||||||
|     assert_equal 'Python', Lexer['Python'].name |  | ||||||
|     assert_equal 'Perl',   Lexer['Perl'].name |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_aliases |  | ||||||
|     assert_equal ['rb', 'ruby', 'duby'], Lexer['Ruby'].aliases |  | ||||||
|     assert_equal ['python', 'py'],       Lexer['Python'].aliases |  | ||||||
|     assert_equal ['perl', 'pl'],         Lexer['Perl'].aliases |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_eql |  | ||||||
|     assert Lexer['Ruby'].eql?(Lexer['Ruby']) |  | ||||||
|     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">'foo'</span> |  | ||||||
| <span class="k">end</span> |  | ||||||
| </pre> |  | ||||||
| </div> |  | ||||||
|     HTML |  | ||||||
|   end |  | ||||||
|  |  | ||||||
|   def test_colorize_without_wrapper |  | ||||||
|     assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello") |  | ||||||
| Hello |  | ||||||
|     HTML |  | ||||||
|  |  | ||||||
|     assert_equal <<-HTML, Lexer['Ruby'].colorize_without_wrapper("def foo\n  'foo'\nend\n") |  | ||||||
| <span class="k">def</span> <span class="nf">foo</span> |  | ||||||
|   <span class="s1">'foo'</span> |  | ||||||
| <span class="k">end</span> |  | ||||||
|     HTML |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| @@ -1,10 +1,13 @@ | |||||||
| require 'linguist/pathname' | require 'linguist/pathname' | ||||||
|  |  | ||||||
| require 'test/unit' | require 'test/unit' | ||||||
|  | require 'pygments' | ||||||
|  |  | ||||||
| class TestPathname < Test::Unit::TestCase | class TestPathname < Test::Unit::TestCase | ||||||
|   include Linguist |   include Linguist | ||||||
|  |  | ||||||
|  |   Lexer = Pygments::Lexer | ||||||
|  |  | ||||||
|   def test_to_s |   def test_to_s | ||||||
|     assert_equal "file.rb", Pathname.new("file.rb").to_s |     assert_equal "file.rb", Pathname.new("file.rb").to_s | ||||||
|   end |   end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user