class SyntaxTree::YARV::DefineMethod
~~~
def value = “value”
~~~ruby
### Usage
body of the method.
being defined. The second is the instruction sequence representing the
`self`. It accepts two arguments. The first is the name of the method
`definemethod` defines a method on the class of the current value of
### Summary
def ==(other)
def ==(other) other.is_a?(DefineMethod) && other.method_name == method_name && other.method_iseq == method_iseq end
def call(vm)
def call(vm) name = method_name nesting = vm.frame.nesting iseq = method_iseq vm .frame ._self .__send__(:define_method, name) do |*args, **kwargs, &block| vm.run_method_frame( name, nesting, iseq, self, *args, **kwargs, &block ) end end
def deconstruct_keys(_keys)
def deconstruct_keys(_keys) { method_name: method_name, method_iseq: method_iseq } end
def disasm(fmt)
def disasm(fmt) fmt.enqueue(method_iseq) fmt.instruction( "definemethod", [fmt.object(method_name), method_iseq.name] ) end
def initialize(method_name, method_iseq)
def initialize(method_name, method_iseq) @method_name = method_name @method_iseq = method_iseq end
def length
def length 3 end
def to_a(_iseq)
def to_a(_iseq) [:definemethod, method_name, method_iseq.to_a] end