may i know what is the different between Door::new and Door.new
i seem to work the same.
The :: operator and the . operator only behave differently when
constants are involved AFAIK.
Foo::Bar will only look for the constant and raise an exception
otherwise.
Foo::Bar() and Foo::Bar X will only look for a method.
Foo.Bar will only look for a method.
Otherwise the :: operator is equivalent to the . operator, even for
non-module/class objects:
5::to_s # => “5”
5::+ 6 # => 11