Class: Rouge::TextAnalyzer
- Inherits:
-
String
- Object
- String
- Rouge::TextAnalyzer
- Defined in:
- lib/rouge/text_analyzer.rb
Instance Method Summary collapse
-
#doctype ⇒ Object
Return the contents of the doctype tag if present, nil otherwise.
-
#doctype?(type = //) ⇒ Boolean
Check if the doctype matches a given regexp or string.
-
#lexes_cleanly?(lexer) ⇒ Boolean
Return true if the result of lexing with the given lexer contains no error tokens.
-
#shebang ⇒ Object
Find a shebang.
-
#shebang?(match) ⇒ Boolean
Check if the given shebang is present.
Instance Method Details
#doctype ⇒ Object
Return the contents of the doctype tag if present, nil otherwise.
25 26 27 28 29 30 31 32 33 |
# File 'lib/rouge/text_analyzer.rb', line 25 def doctype return @doctype if instance_variable_defined? :@doctype self =~ %r(\A\s* (?:<\?.*?\?>\s*)? # possible <?xml...?> tag <!DOCTYPE\s+(.+?)> )xm @doctype = $1 end |
#doctype?(type = //) ⇒ Boolean
Check if the doctype matches a given regexp or string
36 37 38 |
# File 'lib/rouge/text_analyzer.rb', line 36 def doctype?(type=//) type === doctype end |
#lexes_cleanly?(lexer) ⇒ Boolean
Return true if the result of lexing with the given lexer contains no error tokens.
42 43 44 45 46 47 48 |
# File 'lib/rouge/text_analyzer.rb', line 42 def lexes_cleanly?(lexer) lexer.lex(self) do |(tok, _)| return false if tok.name == 'Error' end true end |
#shebang ⇒ Object
Find a shebang. Returns nil if no shebang is present.
7 8 9 10 11 12 |
# File 'lib/rouge/text_analyzer.rb', line 7 def shebang return @shebang if instance_variable_defined? :@shebang self =~ /\A\s*#!(.*)$/ @shebang = $1 end |
#shebang?(match) ⇒ Boolean
Check if the given shebang is present.
This normalizes things so that text.shebang?('bash')
will detect
#!/bash
, '#!/bin/bash', '#!/usr/bin/env bash', and '#!/bin/bash -x'
18 19 20 21 22 |
# File 'lib/rouge/text_analyzer.rb', line 18 def shebang?(match) return false unless shebang match = /\b#{match}(\s|$)/ match === shebang end |