Module: ASTTransform

Defined in:
lib/ast_transform.rb,
lib/ast_transform/node.rb,
lib/ast_transform/thunk.rb,
lib/ast_transform/layout.rb,
lib/ast_transform/version.rb,
lib/ast_transform/transformer.rb,
lib/ast_transform/kwargs_builder.rb,
lib/ast_transform/thunk_lowering.rb,
lib/ast_transform/transformation.rb,
lib/ast_transform/statement_renderer.rb,
lib/ast_transform/testing/assertions.rb,
lib/ast_transform/instruction_sequence.rb,
lib/ast_transform/line_aligned_emitter.rb,
lib/ast_transform/transformation_helper.rb,
lib/ast_transform/abstract_transformation.rb,
lib/ast_transform/instruction_sequence/mixin.rb,
lib/ast_transform/instruction_sequence/mixin_utils.rb,
lib/ast_transform/instruction_sequence/bootsnap_mixin.rb

Defined Under Namespace

Modules: InstructionSequence, MixinUtils, Testing, TransformationHelper Classes: AbstractTransformation, KwargsBuilder, Layout, LineAlignedEmitter, Node, StatementRenderer, Thunk, ThunkLowering, Transformation, Transformer

Constant Summary collapse

DEFAULT_OUTPUT_PATH =
Pathname.new("").join("tmp", "ast_transform").to_s
VERSION =
"3.0.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.output_pathObject



35
36
37
# File 'lib/ast_transform.rb', line 35

def output_path
  @output_path || DEFAULT_OUTPUT_PATH
end

Class Method Details

.acronym(acronym) ⇒ Object



16
17
18
19
# File 'lib/ast_transform.rb', line 16

def acronym(acronym)
  acronyms << acronym
  acronyms.uniq!
end

.acronymsObject



12
13
14
# File 'lib/ast_transform.rb', line 12

def acronyms
  @acronyms ||= []
end

.installObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ast_transform.rb', line 21

def install
  @installed ||= if defined?(Bootsnap) && ASTTransform::InstructionSequence.using_bootsnap_compilation?
    class << Bootsnap::CompileCache::ISeq
      prepend ::ASTTransform::InstructionSequence::BootsnapMixin
    end
  else
    class << RubyVM::InstructionSequence
      prepend ::ASTTransform::InstructionSequence::Mixin
    end
  end
end