class Event
@event_list = {}
attr_reader :name, :value
def initialize(name, value)
@name = name
@value = value
end
def to_s
"#{@value}"
end
class << self
def event_list
@event_list
end
def event_list=(value); end
def register_event(name, value)
@event_list[name] = Event.new(name, value)
end
def registered_events
event_list
end
end
end
In the above code snippet I can access @event_list using Event.event_list, interesting thing is I am able to modify this variable from outside
Event.event_list[:name] = "hello"
Event.event_list # => { :name => 'hello' }
How can I avoid this ?, I don't want to modify @event_list from outside.