equivalent:
cookie.bake
cookie.send(:bake)
method_name = "bake"
cookie.send(method_name)
```
Duping and freezing and cloning
-
dup
makes a copy of the object's data, so you can change it without affecting the original
-
freeze
makes it so when you try to modify an object, it raises an exception instead
-
clone
is like dup
, but cloning a frozen object freezes the new clone too
- also
clone
copies the singleton methods
>> cookie.methods(false)
=> [:bake, :yell]
>> cookie.clone.methods(false)
=> [:bake, :yell]
>> cookie.dup.methods(false)
=> []