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