Guest User

Untitled

a guest
Apr 25th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. class Object
  2. def when(*a, &block)
  3. a.inject(true) {|m, n| m && n} ? block.call(*([self] + a)) : self
  4. end
  5. end
  6.  
  7. upper_limit = nil
  8. puts [1, 2, 3, 4, 5].when(upper_limit) {|array, upper_limit| array.select {|e| e < upper_limit}}.map {|n| n ** 2}.inject(0) {|m, n| m + n}
  9. # => 55
  10.  
  11. # OR
  12.  
  13. upper_limit = 3
  14. puts [1, 2, 3, 4, 5].when(upper_limit) {|array, upper_limit| array.select {|e| e < upper_limit}}.map {|n| n ** 2}.inject(0) {|m, n| m + n}
  15. # => 5
Add Comment
Please, Sign In to add comment