Method: Wolfram::Util#delegate

Defined in:
lib/wolfram/util.rb

#delegate(*meths) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
30
31
# File 'lib/wolfram/util.rb', line 23

def delegate(*meths)
  raise ArgumentError unless meths[-1].is_a?(Hash) && meths[-1].key?(:to)
  to_meth = meths.pop[:to]
  meths.each do |meth|
    define_method(meth) do |*args, &block|
      self.send(to_meth).send(meth, *args, &block)
    end
  end
end