Module: Henitai::UnparseHelper
- Included in:
- Mutant, Reporter::Terminal, Result
- Defined in:
- lib/henitai/unparse_helper.rb,
sig/henitai.rbs
Overview
Shared safe unparse helpers for user-facing output and report serialization.
Instance Method Summary collapse
Instance Method Details
#fallback_source(node) ⇒ String
20 21 22 23 24 25 |
# File 'lib/henitai/unparse_helper.rb', line 20 def fallback_source(node) return "" if node.nil? return node.type.to_s if node.respond_to?(:type) node.class.name end |
#safe_unparse(node) ⇒ String
10 11 12 13 14 15 16 17 18 |
# File 'lib/henitai/unparse_helper.rb', line 10 def safe_unparse(node) Unparser.unparse(node) rescue Unparser::UnknownNodeError, Unparser::InvalidNodeError, Unparser::UnsupportedNodeError, EncodingError # Unparser does not support all AST node types, and some mutated string # segments carry incompatible encodings; fall back gracefully for those. # Other failures (e.g. NoMethodError) are bugs and must surface. fallback_source(node) end |