Class: Rubino::Compression::RubyCodeSkeleton

Inherits:
LineSkeleton show all
Defined in:
lib/rubino/compression/ruby_code_skeleton.rb

Overview

The Ruby strategy for LineSkeleton: every ‘require`, comment, constant, `attr_*`, module/class structure and method SIGNATURE is kept VERBATIM; only LARGE method bodies are elided behind a pointer (see LineSkeleton for the pointer format and the drill-in invariant).

We work at LINE granularity and only elide a body when its signature line, body and closing ‘end` sit on distinct lines (a true multi-line def). A one-line `def x = 1` / `def x; 1; end` is left whole — there is nothing to point at, and eliding it could not round-trip cleanly.

Method Summary

Methods inherited from LineSkeleton

#build, #initialize

Constructor Details

This class inherits a constructor from Rubino::Compression::LineSkeleton