class Rouge::Lexers::JSON

def self.analyze_text(text)

could mean doing two full lexes.
so I'd think this wouldn't be too bad, but for large documents this
TODO: is this too much of a performance hit? JSON is quite simple,
def self.analyze_text(text)
  return 0.8 if text =~ /\A\s*{/m && text.lexes_cleanly?(self)
end