Sha256: 34c94a791f0aa7cdb2ba26875dc5b0658b5b9c2ca5bd063369a3e78e6c750bfd

Contents?: true

Size: 551 Bytes

Versions: 6

Compression:

Stored size: 551 Bytes

Contents

# frozen_string_literal: true

module Mutant
  # Base class for code loaders
  class Loader
    include Anima.new(:binding, :kernel, :node, :subject)

    # Call loader
    #
    # @return [self]
    def self.call(*arguments)
      new(*arguments).call
    end

    # Call loader
    #
    # One off the very few valid uses of eval
    #
    # @return [undefined]
    def call
      kernel.eval(
        Unparser.unparse(node),
        binding,
        subject.source_path.to_s,
        subject.source_line
      )
    end
  end # Loader
end # Mutant

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mutant-0.8.22 lib/mutant/loader.rb
mutant-0.8.21 lib/mutant/loader.rb
mutant-0.8.20 lib/mutant/loader.rb
mutant-0.8.19 lib/mutant/loader.rb
mutant-0.8.18 lib/mutant/loader.rb
mutant-0.8.17 lib/mutant/loader.rb