Sha256: c7a3d0daec2d5b0fae3c037afd14f7b24222eec5b3aabf08994e214689aa26fc

Contents?: true

Size: 698 Bytes

Versions: 10

Compression:

Stored size: 698 Bytes

Contents

module Rouge
  class TextAnalyzer < String
    def shebang
      return @shebang if instance_variable_defined? :@shebang

      self =~ /\A\s*#!(.*)$/
      @shebang = $1
    end

    def shebang?(match)
      match = /\b#{match}(\s|$)/
      match === shebang
    end

    def doctype
      return @doctype if instance_variable_defined? :@doctype

      self =~ %r(\A\s*
        (?:<\?.*?\?>\s*)? # possible <?xml...?> tag
        <!DOCTYPE\s+(.+?)>
      )xm
      @doctype = $1
    end

    def doctype?(type=//)
      type === doctype
    end

    def lexes_cleanly?(lexer)
      lexer.lex(self) do |(tok, _)|
        return false if tok.name == 'Error'
      end

      true
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rouge-0.2.0 lib/rouge/text_analyzer.rb
rouge-0.1.2 lib/rouge/text_analyzer.rb
rouge-0.1.1 lib/rouge/text_analyzer.rb
rouge-0.1.0 lib/rouge/text_analyzer.rb
rouge-0.1.0.rc1 lib/rouge/text_analyzer.rb
rouge-0.0.14 lib/rouge/text_analyzer.rb
rouge-0.0.13 lib/rouge/text_analyzer.rb
rouge-0.0.12 lib/rouge/text_analyzer.rb
rouge-0.0.11 lib/rouge/text_analyzer.rb
rouge-0.0.10 lib/rouge/text_analyzer.rb