Project

General

Profile

Actions

Bug #9041

closed

Please add alias "starts_with?" to class String

Added by shevegen (Robert A. Heiler) about 11 years ago. Updated about 11 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
all
[ruby-core:57953]

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'

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0