Class: RubyTransform::Transformers::Custom

Inherits:
RubyTransform::Transformer show all
Defined in:
lib/ruby_transform/transformers/custom.rb

Overview

Custom Transformer

Allows for implementation of the transform to happen in-line through a block passed to the initializer.

Example:

# This contrived example reverses all string literals
RubyTransform::Transformers::Custom.new do |expression|
  if sexp?(expression) && expression.kind == :str
    s(:str, expression.body[0].reverse)
  else
    super
  end
end

Instance Method Summary collapse

Methods inherited from RubyTransform::Transformer

#transform

Methods included from RubyTransform::TransformerHelpers

#sexp?

Constructor Details

#initialize(&block) ⇒ Custom

Returns a new instance of Custom.



19
20
21
22
23
# File 'lib/ruby_transform/transformers/custom.rb', line 19

def initialize(&block)
  class_eval do
    define_method(:transform, &block)
  end
end