Я пишу некоторый код Ruby, не направляющие, и я должен обработать что-то вроде этого:
found 1 match
found 2 matches
Мне установили направляющие поэтому, возможно, я смог добавлять a require
пункт наверху сценария, но кто-либо знает метода Ruby это строки pluralizes? Существует ли класс, я могу потребовать, чтобы это могло иметь дело с этим, если сценарий не является направляющими, но мне установили направляющие?
Править: Все эти ответы были близки, но я пометил тот, который получил его работающий на меня. Попробуйте этот метод как помощника при записи Ruby, не направляющих, кода:
def pluralize(number, text)
return text.pluralize if number != 1
text
end
На самом деле все, что вам нужно сделать, это
require 'active_support/inflector'
, и это расширит тип String .
вы можете затем выполнить
"MyString".pluralize
, который вернет
"MyStrings"
для 2.3.5 try:
require 'rubygems'
require 'active_support/inflector'
должен получить его, если не попробуйте
sudo gem install activesupport
, а затем требует.
require 'active_support'
require 'active_support/inflector'
inf = ActiveSupport::Inflector::Inflections.new
, чтобы получить инфлектор, не знаю, как его использовать
Инфлектор является излишним для большинства ситуаций.
def x(n, singular, plural=nil)
if n == 1
"1 #{singular}"
elsif plural
"#{n} #{plural}"
else
"#{n} #{singular}s"
end
end
Поместите это в common.rb или где угодно, где вы хотите, ваши общие служебные функции и ...
require "common"
puts x(0, 'result') # 0 results
puts x(1, 'result') # 1 result
puts x(2, 'result') # 2 results
puts x(0, 'match', 'matches') # 0 matches
puts x(1, 'match', 'matches') # 1 match
puts x(2, 'match', 'matches') # 2 matches