class RELI::Abstract
Public Class Methods
change(new, old)
click to toggle source
# File lib/reli/abstract.rb, line 29 def self.change(new, old) old_method = instance_method("exec_#{old}") define_method("exec_#{new}", old_method) end
new(options = {})
click to toggle source
# File lib/reli/abstract.rb, line 4 def initialize(options = {}) @memory = [] @buffer = [] @pointer = @memory[0] = 0 @size = 1 @break = 0 end
on(char, &block)
click to toggle source
# File lib/reli/abstract.rb, line 25 def self.on(char, &block) define_method "exec_#{char}", &block end
Public Instance Methods
run(code)
click to toggle source
# File lib/reli/abstract.rb, line 12 def run(code) @code = code.split(//u) @index = 0 code_length = @code.length while @index < code_length do method_name = "exec_#{@code[@index, @size].join}" @index += @break next unless respond_to?(method_name) send(method_name) end @buffer.join end