Bug #10209
Updated by nobu (Nobuyoshi Nakada) over 9 years ago
It is possible to change a read_only class attribute: ~~~ruby ~~~ require 'pp' class Attributes attr_reader :string, :array, :hash def initialize @string = 'value' @array = [1, 2, 3, 4] @hash = { name: 'Carlos', age: 25 } end end instance = Attributes.new pp 'Original atributes:' pp '-------------------------' pp instance.string pp instance.array pp instance.hash pp '-------------------------' # bang!! # this should not afect the original atribute. instance.string.gsub!(/.*/, '') instance.array.clear instance.hash.clear pp 'After Hacking attributes:' pp '-------------------------' pp instance.string pp instance.array pp instance.hash pp '-------------------------' ~~~