Advertisement
Guest User

Call Error

a guest
Nov 27th, 2011
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.85 KB | None | 0 0
  1. -- CODE
  2. class Subs
  3.     def initialize(name, &block)
  4.         @@subs = {} if @@subs == nil
  5.         @@subs[name.to_sym] = {:code => block}
  6.     end
  7.  
  8.     def Subs.call(name, *args)
  9.         sym = name.to_sym
  10.         @@subs[sym][:args] = args.reverse
  11.         @@subs[sym][:args_const] = args.reverse
  12.         @@subs[sym][:code].call(args)
  13.         @@calling = sym
  14.     end
  15.  
  16.     def shift
  17.         ret   = @@subs[@@calling][:args].last
  18.         @@subs[@@calling][:args] = @@subs[@@calling][:args_const].take @@subs[@@calling][:args].length - 2
  19.         return ret
  20.     end
  21.  
  22. end
  23.  
  24. -- ERROR
  25.  
  26. irb(main):148:0> Subs.new 'test', { puts 'lol'}
  27. SyntaxError: (irb):148: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
  28. Subs.new 'test', { puts 'lol'}
  29.                          ^
  30. (irb):148: syntax error, unexpected '}', expecting $end
  31.     from /usr/bin/irb:12:in `<main>'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement