mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			357 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			357 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'linguist/language'
 | 
						|
 | 
						|
require 'test/unit'
 | 
						|
 | 
						|
class TestLanguage < Test::Unit::TestCase
 | 
						|
  include Linguist
 | 
						|
 | 
						|
  def test_find_by_name
 | 
						|
    ruby = Language['Ruby']
 | 
						|
    assert_equal ruby, Language.find_by_name('Ruby')
 | 
						|
    assert_equal ruby, Language.find_by_name('ruby')
 | 
						|
    assert_equal ruby, Language.find_by_name('RUBY')
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find_all_by_name
 | 
						|
    Language.all.each do |language|
 | 
						|
      assert_equal language, Language.find_by_name(language.name)
 | 
						|
      assert_equal language, Language[language.name]
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find_by_alias
 | 
						|
    assert_equal Language['Perl'],      Language.find_by_alias('perl')
 | 
						|
    assert_equal Language['Python'],    Language.find_by_alias('python')
 | 
						|
    assert_equal Language['Ruby'],      Language.find_by_alias('ruby')
 | 
						|
    assert_equal Language['HTML+ERB'],  Language.find_by_alias('html+erb')
 | 
						|
    assert_equal Language['Max/MSP'],   Language.find_by_alias('max/msp')
 | 
						|
    assert_equal Language['Pure Data'], Language.find_by_alias('pure-data')
 | 
						|
 | 
						|
    assert_equal Language['ASP'],          Language.find_by_alias('asp')
 | 
						|
    assert_equal Language['ASP'],          Language.find_by_alias('aspx')
 | 
						|
    assert_equal Language['ASP'],          Language.find_by_alias('aspx-vb')
 | 
						|
    assert_equal Language['ActionScript'], Language.find_by_alias('as3')
 | 
						|
    assert_equal Language['Assembly'],     Language.find_by_alias('nasm')
 | 
						|
    assert_equal Language['Batchfile'],    Language.find_by_alias('bat')
 | 
						|
 | 
						|
    assert_equal Language['C++'], Language.find_by_alias('c++')
 | 
						|
    assert_equal Language['C++'], Language.find_by_alias('cpp')
 | 
						|
    assert_equal Language['C#'],  Language.find_by_alias('c#')
 | 
						|
    assert_equal Language['C#'],  Language.find_by_alias('csharp')
 | 
						|
 | 
						|
    assert_equal Language['Java'],              Language.find_by_alias('java')
 | 
						|
    assert_equal Language['ChucK'],             Language.find_by_alias('chuck')
 | 
						|
    assert_equal Language['Groovy'],            Language.find_by_alias('groovy')
 | 
						|
    assert_equal Language['Java Server Pages'], Language.find_by_alias('jsp')
 | 
						|
 | 
						|
    assert_equal Language['ColdFusion'],  Language.find_by_alias('cfm')
 | 
						|
    assert_equal Language['Darcs Patch'], Language.find_by_alias('dpatch')
 | 
						|
 | 
						|
    assert_equal Language['Common Lisp'], Language.find_by_alias('common-lisp')
 | 
						|
    assert_equal Language['Common Lisp'], Language.find_by_alias('lisp')
 | 
						|
    assert_equal Language['Emacs Lisp'],  Language.find_by_alias('emacs-lisp')
 | 
						|
    assert_equal Language['Emacs Lisp'],  Language.find_by_alias('elisp')
 | 
						|
    assert_equal Language['Nu'],          Language.find_by_alias('nu')
 | 
						|
    assert_equal Language['Scheme'],      Language.find_by_alias('scheme')
 | 
						|
 | 
						|
    assert_equal Language['OCaml'],           Language.find_by_alias('ocaml')
 | 
						|
    assert_equal Language['F#'],              Language.find_by_alias('f#')
 | 
						|
    assert_equal Language['Gettext Catalog'], Language.find_by_alias('pot')
 | 
						|
    assert_equal Language['IRC log'],         Language.find_by_alias('irc')
 | 
						|
 | 
						|
    assert_equal Language['JavaScript'], Language.find_by_alias('javascript')
 | 
						|
    assert_equal Language['JavaScript'], Language.find_by_alias('js')
 | 
						|
    assert_equal Language['JSON'],       Language.find_by_alias('json')
 | 
						|
 | 
						|
    assert_equal Language['Haskell'],          Language.find_by_alias('haskell')
 | 
						|
    assert_equal Language['Literate Haskell'], Language.find_by_alias('literate-haskell')
 | 
						|
    assert_equal Language['Literate Haskell'], Language.find_by_alias('lhs')
 | 
						|
 | 
						|
    assert_equal Language['Parrot Internal Representation'], Language.find_by_alias('pir')
 | 
						|
 | 
						|
    assert_equal Language['Python traceback'], Language.find_by_alias('pytb')
 | 
						|
 | 
						|
    assert_equal Language['Raw token data'],   Language.find_by_alias('raw')
 | 
						|
    assert_equal Language['reStructuredText'], Language.find_by_alias('rst')
 | 
						|
 | 
						|
    assert_equal Language['Shell'], Language.find_by_alias('shell')
 | 
						|
    assert_equal Language['Shell'], Language.find_by_alias('sh')
 | 
						|
    assert_equal Language['Shell'], Language.find_by_alias('bash')
 | 
						|
    assert_equal Language['Shell'], Language.find_by_alias('zsh')
 | 
						|
 | 
						|
    assert_equal Language['VimL'], Language.find_by_alias('viml')
 | 
						|
    assert_equal Language['VimL'], Language.find_by_alias('vim')
 | 
						|
 | 
						|
    assert_equal Language['XS'], Language.find_by_alias('xs')
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find_all_by_alias
 | 
						|
    Language.all.each do |language|
 | 
						|
      language.aliases.each do |name|
 | 
						|
        assert_equal language, Language.find_by_alias(name)
 | 
						|
        assert_equal language, Language[name]
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find_by_extension
 | 
						|
    assert_equal Language['Ruby'], Language.find_by_extension('.rb')
 | 
						|
    assert_equal Language['Ruby'], Language.find_by_extension('rb')
 | 
						|
    assert_nil Language.find_by_extension('.kt')
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find_all_by_extension
 | 
						|
    Language.all.each do |language|
 | 
						|
      language.extensions.each do |extension|
 | 
						|
        assert_equal language, Language.find_by_extension(extension)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_find
 | 
						|
    assert_equal "Ruby", Language['Ruby'].name
 | 
						|
    assert_equal "Ruby", Language['ruby'].name
 | 
						|
    assert_equal "Ruby", Language['RUBY'].name
 | 
						|
    assert_equal "C++", Language['C++'].name
 | 
						|
    assert_equal "C++", Language['c++'].name
 | 
						|
    assert_equal "C++", Language['cpp'].name
 | 
						|
    assert_equal "C#", Language['C#'].name
 | 
						|
    assert_equal "C#", Language['c#'].name
 | 
						|
    assert_equal "C#", Language['csharp'].name
 | 
						|
    assert_equal "C#", Language['CSHARP'].name
 | 
						|
    assert_equal "Text", Language['defunkt'].name
 | 
						|
  end
 | 
						|
 | 
						|
  def test_name
 | 
						|
    assert_equal "Perl",    Language['Perl'].name
 | 
						|
    assert_equal "Python",  Language['Python'].name
 | 
						|
    assert_equal "Ruby",    Language['Ruby'].name
 | 
						|
  end
 | 
						|
 | 
						|
  # Used for code search indexing. Changing any of these values may
 | 
						|
  # require reindexing repositories.
 | 
						|
  def test_search_term
 | 
						|
    assert_equal "perl",        Language['Perl'].search_term
 | 
						|
    assert_equal "python",      Language['Python'].search_term
 | 
						|
    assert_equal "ruby",        Language['Ruby'].search_term
 | 
						|
    assert_equal "common-lisp", Language['Common Lisp'].search_term
 | 
						|
    assert_equal "html+erb",    Language['HTML+ERB'].search_term
 | 
						|
    assert_equal "max/msp",     Language['Max/MSP'].search_term
 | 
						|
    assert_equal "pure-data",   Language['Pure Data'].search_term
 | 
						|
 | 
						|
    assert_equal "aspx-vb",       Language['ASP'].search_term
 | 
						|
    assert_equal "as3",           Language['ActionScript'].search_term
 | 
						|
    assert_equal "nasm",          Language['Assembly'].search_term
 | 
						|
    assert_equal "bat",           Language['Batchfile'].search_term
 | 
						|
    assert_equal "csharp",        Language['C#'].search_term
 | 
						|
    assert_equal "cpp",           Language['C++'].search_term
 | 
						|
    assert_equal "chuck",         Language['ChucK'].search_term
 | 
						|
    assert_equal "cfm",           Language['ColdFusion'].search_term
 | 
						|
    assert_equal "dpatch",        Language['Darcs Patch'].search_term
 | 
						|
    assert_equal "emacs-lisp",    Language['Emacs Lisp'].search_term
 | 
						|
    assert_equal "ocaml",         Language['F#'].search_term
 | 
						|
    assert_equal "gentoo-ebuild", Language['Gentoo Ebuild'].search_term
 | 
						|
    assert_equal "gentoo-eclass", Language['Gentoo Eclass'].search_term
 | 
						|
    assert_equal "pot",           Language['Gettext Catalog'].search_term
 | 
						|
    assert_equal "irc",           Language['IRC log'].search_term
 | 
						|
    assert_equal "groovy",        Language['Groovy'].search_term
 | 
						|
    assert_equal "javascript",    Language['JSON'].search_term
 | 
						|
    assert_equal "lhs",           Language['Literate Haskell'].search_term
 | 
						|
    assert_equal "ruby",          Language['Mirah'].search_term
 | 
						|
    assert_equal "nu",            Language['Nu'].search_term
 | 
						|
    assert_equal "pir",           Language['Parrot Internal Representation'].search_term
 | 
						|
    assert_equal "pytb",          Language['Python traceback'].search_term
 | 
						|
    assert_equal "raw",           Language['Raw token data'].search_term
 | 
						|
    assert_equal "bash",          Language['Shell'].search_term
 | 
						|
    assert_equal "vim",           Language['VimL'].search_term
 | 
						|
    assert_equal "xs",            Language['XS'].search_term
 | 
						|
    assert_equal "jsp",           Language['Java Server Pages'].search_term
 | 
						|
    assert_equal "rst",           Language['reStructuredText'].search_term
 | 
						|
  end
 | 
						|
 | 
						|
  def test_error_without_name
 | 
						|
    assert_raise ArgumentError do
 | 
						|
      Language.new :name => nil
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def test_lexer
 | 
						|
    assert_equal Lexer['aspx-vb'],           Language['ASP'].lexer
 | 
						|
    assert_equal Lexer['ActionScript 3'],    Language['ActionScript'].lexer
 | 
						|
    assert_equal Lexer['Ada'],               Language['Ada'].lexer
 | 
						|
    assert_equal Lexer['AppleScript'],       Language['AppleScript'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Arc'].lexer
 | 
						|
    assert_equal Lexer['NASM'],              Language['Assembly'].lexer
 | 
						|
    assert_equal Lexer['Batchfile'],         Language['Batchfile'].lexer
 | 
						|
    assert_equal Lexer['Befunge'],           Language['Befunge'].lexer
 | 
						|
    assert_equal Lexer['Boo'],               Language['Boo'].lexer
 | 
						|
    assert_equal Lexer['Brainfuck'],         Language['Brainfuck'].lexer
 | 
						|
    assert_equal Lexer['BlitzMax'],          Language['BlitzMax'].lexer
 | 
						|
    assert_equal Lexer['C'],                 Language['C'].lexer
 | 
						|
    assert_equal Lexer['C#'],                Language['C#'].lexer
 | 
						|
    assert_equal Lexer['C++'],               Language['C++'].lexer
 | 
						|
    assert_equal Lexer['CSS'],               Language['CSS'].lexer
 | 
						|
    assert_equal Lexer['Java'],              Language['ChucK'].lexer
 | 
						|
    assert_equal Lexer['Clojure'],           Language['Clojure'].lexer
 | 
						|
    assert_equal Lexer['CoffeeScript'],      Language['CoffeeScript'].lexer
 | 
						|
    assert_equal Lexer['ColdFusion HTML'],   Language['ColdFusion'].lexer
 | 
						|
    assert_equal Lexer['Common Lisp'],       Language['Common Lisp'].lexer
 | 
						|
    assert_equal Lexer['Gherkin'],           Language['Cucumber'].lexer
 | 
						|
    assert_equal Lexer['Cython'],            Language['Cython'].lexer
 | 
						|
    assert_equal Lexer['D'],                 Language['D'].lexer
 | 
						|
    assert_equal Lexer['Darcs Patch'],       Language['Darcs Patch'].lexer
 | 
						|
    assert_equal Lexer['Delphi'],            Language['Delphi'].lexer
 | 
						|
    assert_equal Lexer['Diff'],              Language['Diff'].lexer
 | 
						|
    assert_equal Lexer['D-ObjDump'],         Language['d-objdump'].lexer
 | 
						|
    assert_equal Lexer['Dylan'],             Language['Dylan'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Eiffel'].lexer
 | 
						|
    assert_equal Lexer['Scheme'],            Language['Emacs Lisp'].lexer
 | 
						|
    assert_equal Lexer['Erlang'],            Language['Erlang'].lexer
 | 
						|
    assert_equal Lexer['OCaml'],             Language['F#'].lexer
 | 
						|
    assert_equal Lexer['Factor'],            Language['Factor'].lexer
 | 
						|
    assert_equal Lexer['Fortran'],           Language['FORTRAN'].lexer
 | 
						|
    assert_equal Lexer['GAS'],               Language['GAS'].lexer
 | 
						|
    assert_equal Lexer['Genshi'],            Language['Genshi'].lexer
 | 
						|
    assert_equal Lexer['Bash'],              Language['Gentoo Ebuild'].lexer
 | 
						|
    assert_equal Lexer['Bash'],              Language['Gentoo Eclass'].lexer
 | 
						|
    assert_equal Lexer['Gettext Catalog'],   Language['Gettext Catalog'].lexer
 | 
						|
    assert_equal Lexer['Go'],                Language['Go'].lexer
 | 
						|
    assert_equal Lexer['Groff'],             Language['Groff'].lexer
 | 
						|
    assert_equal Lexer['HTML'],              Language['HTML'].lexer
 | 
						|
    assert_equal Lexer['HTML+Django/Jinja'], Language['HTML+Django'].lexer
 | 
						|
    assert_equal Lexer['RHTML'],             Language['HTML+ERB'].lexer
 | 
						|
    assert_equal Lexer['HTML+PHP'],          Language['HTML+PHP'].lexer
 | 
						|
    assert_equal Lexer['haXe'],              Language['HaXe'].lexer
 | 
						|
    assert_equal Lexer['Haml'],              Language['Haml'].lexer
 | 
						|
    assert_equal Lexer['Haskell'],           Language['Haskell'].lexer
 | 
						|
    assert_equal Lexer['INI'],               Language['INI'].lexer
 | 
						|
    assert_equal Lexer['IRC logs'],          Language['IRC log'].lexer
 | 
						|
    assert_equal Lexer['Io'],                Language['Io'].lexer
 | 
						|
    assert_equal Lexer['Java'],              Language['Java'].lexer
 | 
						|
    assert_equal Lexer['Java'],              Language['Groovy'].lexer
 | 
						|
    assert_equal Lexer['JavaScript'],        Language['JavaScript'].lexer
 | 
						|
    assert_equal Lexer['JavaScript'],        Language['JSON'].lexer
 | 
						|
    assert_equal Lexer['Literate Haskell'],  Language['Literate Haskell'].lexer
 | 
						|
    assert_equal Lexer['LLVM'],              Language['LLVM'].lexer
 | 
						|
    assert_equal Lexer['Lua'],               Language['Lua'].lexer
 | 
						|
    assert_equal Lexer['Makefile'],          Language['Makefile'].lexer
 | 
						|
    assert_equal Lexer['Mako'],              Language['Mako'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Markdown'].lexer
 | 
						|
    assert_equal Lexer['Matlab'],            Language['Matlab'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Max/MSP'].lexer
 | 
						|
    assert_equal Lexer['Ruby'],              Language['Mirah'].lexer
 | 
						|
    assert_equal Lexer['Moocode'],           Language['Moocode'].lexer
 | 
						|
    assert_equal Lexer['Myghty'],            Language['Myghty'].lexer
 | 
						|
    assert_equal Lexer['Scheme'],            Language['Nu'].lexer
 | 
						|
    assert_equal Lexer['NumPy'],             Language['NumPy'].lexer
 | 
						|
    assert_equal Lexer['OCaml'],             Language['OCaml'].lexer
 | 
						|
    assert_equal Lexer['cpp-objdump'],       Language['Cpp-ObjDump'].lexer
 | 
						|
    assert_equal Lexer['c-objdump'],         Language['C-ObjDump'].lexer
 | 
						|
    assert_equal Lexer['objdump'],           Language['ObjDump'].lexer
 | 
						|
    assert_equal Lexer['Objective-C'],       Language['Objective-C'].lexer
 | 
						|
    assert_equal Lexer['Objective-J'],       Language['Objective-J'].lexer
 | 
						|
    assert_equal Lexer['PHP'],               Language['PHP'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Parrot Internal Representation'].lexer
 | 
						|
    assert_equal Lexer['Perl'],              Language['Perl'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Pure Data'].lexer
 | 
						|
    assert_equal Lexer['Python'],            Language['Python'].lexer
 | 
						|
    assert_equal Lexer['Python Traceback'],  Language['Python traceback'].lexer
 | 
						|
    assert_equal Lexer['S'],                 Language['R'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Racket'].lexer
 | 
						|
    assert_equal Lexer['RHTML'],             Language['RHTML'].lexer
 | 
						|
    assert_equal Lexer['Raw token data'],    Language['Raw token data'].lexer
 | 
						|
    assert_equal Lexer['REBOL'],             Language['Rebol'].lexer
 | 
						|
    assert_equal Lexer['Redcode'],           Language['Redcode'].lexer
 | 
						|
    assert_equal Lexer['Ruby'],              Language['Ruby'].lexer
 | 
						|
    assert_equal Lexer['SQL'],               Language['SQL'].lexer
 | 
						|
    assert_equal Lexer['Sass'],              Language['Sass'].lexer
 | 
						|
    assert_equal Lexer['Scala'],             Language['Scala'].lexer
 | 
						|
    assert_equal Lexer['Scheme'],            Language['Scheme'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Self'].lexer
 | 
						|
    assert_equal Lexer['Bash'],              Language['Shell'].lexer
 | 
						|
    assert_equal Lexer['Smalltalk'],         Language['Smalltalk'].lexer
 | 
						|
    assert_equal Lexer['Smarty'],            Language['Smarty'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['SuperCollider'].lexer
 | 
						|
    assert_equal Lexer['Tcl'],               Language['Tcl'].lexer
 | 
						|
    assert_equal Lexer['Tcsh'],              Language['Tcsh'].lexer
 | 
						|
    assert_equal Lexer['TeX'],               Language['TeX'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Text'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Textile'].lexer
 | 
						|
    assert_equal Lexer['Vala'],              Language['Vala'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['VHDL'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Verilog'].lexer
 | 
						|
    assert_equal Lexer['VimL'],              Language['VimL'].lexer
 | 
						|
    assert_equal Lexer['Text only'],         Language['Visual Basic'].lexer
 | 
						|
    assert_equal Lexer['XML'],               Language['XML'].lexer
 | 
						|
    assert_equal Lexer['XQuery'],            Language['XQuery'].lexer
 | 
						|
    assert_equal Lexer['C'],                 Language['XS'].lexer
 | 
						|
    assert_equal Lexer['YAML'],              Language['YAML'].lexer
 | 
						|
    assert_equal Lexer['Java Server Page'],  Language['Java Server Pages'].lexer
 | 
						|
    assert_equal Lexer['MuPAD'],             Language['mupad'].lexer
 | 
						|
    assert_equal Lexer['Ooc'],               Language['ooc'].lexer
 | 
						|
    assert_equal Lexer['reStructuredText'],  Language['reStructuredText'].lexer
 | 
						|
  end
 | 
						|
 | 
						|
  def test_extensions
 | 
						|
    assert Language['Perl'].extensions.include?('.pl')
 | 
						|
    assert Language['Python'].extensions.include?('.py')
 | 
						|
    assert Language['Ruby'].extensions.include?('.rb')
 | 
						|
  end
 | 
						|
 | 
						|
  def test_eql
 | 
						|
    assert Language['Ruby'].eql?(Language['Ruby'])
 | 
						|
    assert !Language['Ruby'].eql?(Language['Python'])
 | 
						|
    assert !Language['Ruby'].eql?(Language.new(:name => 'Ruby'))
 | 
						|
  end
 | 
						|
 | 
						|
  def test_popular
 | 
						|
    assert Language['Ruby'].popular?
 | 
						|
    assert Language['Perl'].popular?
 | 
						|
    assert Language['Python'].popular?
 | 
						|
    assert Language['Assembly'].unpopular?
 | 
						|
    assert Language['Brainfuck'].unpopular?
 | 
						|
  end
 | 
						|
 | 
						|
  def test_common
 | 
						|
    assert Language['Perl'].common?
 | 
						|
    assert Language['Python'].common?
 | 
						|
    assert Language['Ruby'].common?
 | 
						|
    assert !Language['Brainfuck'].common?
 | 
						|
    assert !Language['Makefile'].common?
 | 
						|
  end
 | 
						|
 | 
						|
  def test_searchable
 | 
						|
    assert Language['Ruby'].searchable?
 | 
						|
    assert !Language['Gettext Catalog'].searchable?
 | 
						|
    assert !Language['SQL'].searchable?
 | 
						|
  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">'foo'</span>
 | 
						|
<span class="k">end</span>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
    HTML
 | 
						|
  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
 | 
						|
end
 |