Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.50 KB | None | 0 0
  1. #! /usr/bin/env ruby
  2.  
  3. class A
  4.   def foo(arg)
  5.     false
  6.   end
  7.  
  8.   def self.foo_maker(*args)
  9.     args = args.flatten
  10.  
  11.     instance_eval "
  12.      def foo(arg)
  13.        #{args.inspect}.include?(arg)
  14.      end
  15.    "
  16.   end
  17. end
  18.  
  19. class B < A
  20.   foo_maker :a, :b, :c # this fails, undefined method - but if foo_maker is << self, how do I get the instance?
  21. end
  22.  
  23. a = A.new
  24. b = B.new
  25.  
  26. puts a.foo(:a) # expected: false
  27. puts b.foo(:a) # expected: true, actual: false
  28. puts b.foo(:d) # expected: false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement