Sha256: 836850075df52ac75a4f31d3b126c3be279a1cf79460aa80f041b3f4aceed1e8
Contents?: true
Size: 1.58 KB
Versions: 5
Compression:
Stored size: 1.58 KB
Contents
module ToSource class Emitter # Emitter for define singleton nodes class DefineSingleton < self handle(Rubinius::AST::DefineSingleton) private delegate(:receiver, :body) # Perform dispatch # # @return [undefined] # # @api private # def dispatch emit('def ') visit(receiver) emit('.') visit(body) end end # Base class for define emitters class Define < self private delegate(:name, :body) # Perform dispatch # # @return [undefined] # # @api private # def shared_dispatch emit(name) emit_arguments indented do visit(body) end emit_end end # Emit arguments # # @return [undefined] # # @api private # def emit_arguments run(FormalArguments::Method) end # Emitter for singeton level defines class Singleton < self handle(Rubinius::AST::DefineSingletonScope) private # Perform dispatch # # @return [undefined] # # @api private # def dispatch shared_dispatch end end # Emitter for instance level defines class Instance < self handle(Rubinius::AST::Define) private # Perform dispatch # # @return [undefined] # # @api private # def dispatch emit('def ') shared_dispatch end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems