A / An Artikel in Ruby [Duplikat]

Oct 27 2020

Gibt es so etwas wie [#pluralize in ActiveSupport] [1] außer für a/ anarticles?

Im Grunde brauche ich so etwas wie:

'status'.articleize # => "a status"
'urgent'.articleize # => "an urgent"

Antworten

2 sergioMAGA Oct 28 2020 at 07:11

Sie können festlegen String#articleize, dass der entsprechende englische Artikel zurückgegeben wird :

class String
  def articleize
    if self[0] =~ /[aeiou]/i
      "an #{self}"
    else
      "a #{self}"
    end
  end
end

'status'.articleize # => "a status"
'urgent'.articleize # => "an urgent"
3 Casper Oct 28 2020 at 08:16

Es scheint, dass das Juwel der Linguistik für diesen Job geeignet ist. Versuchen wir die Herausforderung von Cary Swoveland:

require 'linguistics/en'
Linguistics.use(:en)

"one-eyed seaman".en.a
=> "a one-eyed seaman"
"honor".en.a
=> "an honor"

# And OP examples...
"urgent update".en.a
=> "an urgent update"
"status update".en.a
=> "a status update"