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