Module: Kernel

Defined in:
lib/missinglisp.rb

Constant Summary collapse

WHITE_LIST =

For irb

I[gets to_ary to_io to_str to_hash translate]

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Object



161
162
163
164
165
166
167
# File 'lib/missinglisp.rb', line 161

def method_missing(m, *args, &block)
  if WHITE_LIST.include? m
    base_method_missing(m, args, block)
  end

  eval_lisp m.to_s
end

Instance Method Details

#base_method_missingObject



153
# File 'lib/missinglisp.rb', line 153

alias_method :base_method_missing, :method_missing

#eval_lisp(s) ⇒ Object



155
156
157
158
159
# File 'lib/missinglisp.rb', line 155

def eval_lisp(s)
  @l ||= Lisp.new
  @e ||= @l.initial_env
  @l.eval(@l.parse(s), @e)
end