Sha256: 0753365a05df6880a0d4b4fed3512be54c0cddd7be25c8d3184bfbee4e3d2929

Contents?: true

Size: 626 Bytes

Versions: 3

Compression:

Stored size: 626 Bytes

Contents

# frozen_string_literal: true

require "core/pipeline/compiler"

require_relative "result"

module Core
  module Operation
    class Compiler < Pipeline::Compiler
      class << self
        private def compile_call(callable, object)
          code = +"result = Core::Operation::Result.new\n"
          code += "object.localize(:result, result) do\n"
          code += super
          code += "end\n"
          code += "result.finalize\n"
          code
        end

        private def compile_action(action, object)
          "result.set(#{action[:object].name.inspect}, #{super})\n"
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
core-operation-0.1.1 lib/core/operation/compiler.rb
core-operation-0.1.0 lib/core/operation/compiler.rb
core-operation-0.0.0 lib/core/operation/compiler.rb