E
Eric Mahurin
I was thinking how in seems a little asymmetric that many
classes have #to_s method, but when you want to make one of
those objects from a String, you have to clutter the String
class with yet another #to_* method. So the String class gets
the burden of all those #to_* methods. Instead, what if we
would have the convention that creating an object from a string
would be a class method (for the class of that object) instead
of another String#to_* method. So, instead of these:
String#to_i
String#to_f
String#to_sym
String#to_<c> # where c is a abbreviation for the class
you'd have these:
Integer.from_s(str)
Float.from_s(str)
Symbol.from_s(str)
klass.from_s(str)
Maybe you'd even want to be able to convert from an inspect
string:
klass.from_inspect(str)
I'm not saying that we should replace all obj.to_ methods with
klass.from_ methods. I'm just saying to make them come in
pairs. If you have a klass#to_* method, you should have a
corresponding klass.from_* method if appropriate. This would
make your class more encapsulated, instead of having some of it
in String (or whatever class you are converting from).
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around=20
http://mail.yahoo.com=20
classes have #to_s method, but when you want to make one of
those objects from a String, you have to clutter the String
class with yet another #to_* method. So the String class gets
the burden of all those #to_* methods. Instead, what if we
would have the convention that creating an object from a string
would be a class method (for the class of that object) instead
of another String#to_* method. So, instead of these:
String#to_i
String#to_f
String#to_sym
String#to_<c> # where c is a abbreviation for the class
you'd have these:
Integer.from_s(str)
Float.from_s(str)
Symbol.from_s(str)
klass.from_s(str)
Maybe you'd even want to be able to convert from an inspect
string:
klass.from_inspect(str)
I'm not saying that we should replace all obj.to_ methods with
klass.from_ methods. I'm just saying to make them come in
pairs. If you have a klass#to_* method, you should have a
corresponding klass.from_* method if appropriate. This would
make your class more encapsulated, instead of having some of it
in String (or whatever class you are converting from).
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around=20
http://mail.yahoo.com=20