Bug #9041
closedPlease add alias "starts_with?" to class String
Description
Hi.
We can do these:
FileUtils.touch 'test' # => ["test"]
File.exist? 'test' # => true
File.exists? 'test' # => true
'test'.start_with? 't' # => true
However, we can not use .starts_with?
'test'.starts_with? 't' NoMethodError: undefined method `starts_with?' for "test":String
I propose that, for proper english, and consistency with the duality of File.exist? and File.exists?
to also add alias starts_with? so that we can use proper english.
The proper english way to query such a question would be:
"Does the word abc start with an a?"
and in short form as factual, affirmative statement:
"abc starts with a."
whereas this here would be not proper english:
"abc start with a."
Updated by shevegen (Robert A. Heiler) about 11 years ago
I forgot to add - I was told that the reason for this is that we should use the 2nd person, as in:
"Word, do you start with character a?"
This is fine for me, however had in that case, either File.exist? or File.exists? should be removed.
Updated by naruse (Yui NARUSE) about 11 years ago
- Status changed from Open to Rejected
shevegen (markus heiler) wrote:
I forgot to add - I was told that the reason for this is that we should use the 2nd person, as in:
"Word, do you start with character a?"
This is fine for me, however had in that case, either File.exist? or File.exists? should be removed.
Yes, File.exists? should be removed for consistency.
But the removing breaks compatibility, and its benefit is less than its cost to fix.
So we keep it.
we sometimes remove old API to add new better API.¶
but this is not the case.¶
Updated by Anonymous about 11 years ago
@naruse (Yui NARUSE): Thanks for responding and explaining. Yet, 3rd person forms
#starts_with?, #ends_with?, #exists? etc. seem to be preferred in other
computer langugages.
@shevegen: As you probably know, ActiveSupport provides those aliases:
require 'active_support/core_ext/string/starts_ends_with'