First of all the thing about ruby is that it allows a different syntax which is used widely by ruby coders. Capitalized identifiers are Classes or Constants (thanks to sepp2k for his comment), but you try to make it an object. And almost nobody uses {}
do mark a multiline block.
a = Object.new
if (something happens)
# do something
end
I'm not sure what your question is, but I have an idea, and this would be the solution:
If you know what attributes that class can have, and it's limited you should use
class YourClass
attr_accessor :age
end
attr_accessor :age
is short for:
def age
@age
end
def age=(new_age)
@age = new_age
end
Now you can do something like this:
a = YourClass.new
if (some condition)
a.age = new_value
end
If you want to do it completely dynamical you can do something like this:
a = Object.new
if (something happens)
a.class.module_eval { attr_accesor :age}
a.age = new_age_value
end