fork download
  1. class Squares
  2. class << self
  3. def []=(k, v)
  4. puts "Squares[#{k.inspect}] = #{v.inspect}"
  5. end
  6.  
  7. def [](k)
  8. puts "Squares[#{k.inspect}]"
  9. k
  10. end
  11. end
  12. end
  13.  
  14. Attribute = Struct.new(:result) do
  15. def value=(v)
  16. puts "Attribute{#{result.inspect}}#value = #{v.inspect}"
  17. end
  18.  
  19. def value
  20. puts "Attribute{#{result.inspect}}#value"
  21. result
  22. end
  23. end
  24.  
  25. # Array accessor
  26. Squares[true] ||= nil
  27. Squares[false] ||= nil
  28.  
  29. # Getter+setter methods
  30. Attribute.new(true).value ||= nil
  31. Attribute.new(false).value ||= nil
  32.  
Success #stdin #stdout 0.01s 5840KB
stdin
Standard input is empty
stdout
Squares[true]
Squares[false]
Squares[false] = nil
Attribute{true}#value
Attribute{false}#value
Attribute{false}#value = nil