fork download
  1. class Command
  2. def foo(arg)
  3. puts "#{arg}: foo"
  4. arg == 1 ? nil : self
  5. end
  6.  
  7. def bar(arg)
  8. puts "#{arg}: bar"
  9. arg == 2 ? nil : self
  10. end
  11.  
  12. def baz(arg)
  13. puts "#{arg}: baz"
  14. arg == 3 ? nil : self
  15. end
  16. end
  17.  
  18.  
  19. command = Command.new()
  20. [0,1,2,3,4].each do |x|
  21. command.foo(x)&.bar(x)&.baz(x)
  22. end
  23.  
Success #stdin #stdout 0.01s 6432KB
stdin
Standard input is empty
stdout
0: foo
0: bar
0: baz
1: foo
2: foo
2: bar
3: foo
3: bar
3: baz
4: foo
4: bar
4: baz