{"record":{"id":"8affe23b98b4192b","repo":"rouge-ruby/rouge","slug":"abstract","errorCode":null,"errorMessage":"abstract","messagePattern":"abstract","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"lib/rouge/formatter.rb","lineNumber":88,"sourceCode":"\n      return stream(tokens, &b) if block_given?\n\n      out = String.new('')\n      stream(tokens) { |piece| out << piece }\n\n      out\n    end\n\n    # @deprecated Use {#format} instead.\n    def render(tokens)\n      warn 'Formatter#render is deprecated, use #format instead.'\n      format(tokens)\n    end\n\n    # @abstract\n    # yield strings that, when concatenated, form the formatted output\n    def stream(tokens, &b)\n      raise 'abstract'\n    end\n\n  protected\n    def token_lines(tokens, &b)\n      return enum_for(:token_lines, tokens) unless block_given?\n\n      out = []\n      tokens.each do |tok, val|\n        val.scan %r/\\n|[^\\n]+/ do |s|\n          if s == \"\\n\"\n            yield out\n            out = []\n          else\n            out << [tok, s]\n          end\n        end\n      end\n","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/rouge-ruby/rouge/blob/bd7dad7b0939c556e582a0370686f6fc022c8af5/lib/rouge/formatter.rb#L70-L106","documentation":"Error \"abstract\" thrown in rouge-ruby/rouge.","triggerScenarios":"Thrown at lib/rouge/formatter.rb:88 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bd7dad7b0939c556e582a0370686f6fc022c8af5","analyzedAt":"2026-08-23T11:34:50.713Z","schemaVersion":2},"datasetVersion":"2026-08-23T16:17:53.355Z"}