Module: Forwardable

Defined in:
lib/forwardable/impl.rb

Overview

:stopdoc:

Class Method Summary collapse

Class Method Details

._compile_method(src, file, line) ⇒ Object


11
12
13
14
15
# File 'lib/forwardable/impl.rb', line 11

def self._compile_method(src, file, line)
  RubyVM::InstructionSequence.compile(src, file, file, line,
             trace_instruction: false)
    .eval
end

._valid_method?(method) ⇒ Boolean


3
4
5
6
7
8
9
# File 'lib/forwardable/impl.rb', line 3

def self._valid_method?(method)
  iseq = RubyVM::InstructionSequence.compile("().#{method}", nil, nil, 0, false)
rescue SyntaxError
  false
else
  iseq.to_a.dig(-1, 1, 1, :mid) == method.to_sym
end