pluralize(count, string) in model (and h?!)


Snack Recipe 10 in Chad Fowler's /Rails Recipes/ sez:

<%= pluralize @recipes.size, 'unread recipe' %>

I pluralize up in my model. (I generate a lot of HTML there. Sue me!)

I can get to the Aspect Oriented Programming version that Inflector adds to strings:

    type = type.pluralize unless count == 1
    return count.to_s + ' ' + type

I want to dry that up; one line for two. But one line...

    Inflector.pluralize count, (' ' + type).pluralize

    ArgumentError: wrong number of arguments (2 for 1)

Why am I asking about such a trivial method?? Because, while we are on the topic, I also want to abuse^W exploit h() in my models, and those naughty single-letter methods are super-hard to Google for!

That would be because the pluralize() method as implemented in
ActionView::Helpers::TextHelper adds a bunch of stuff:

  # File vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb, line 62
62: def pluralize(count, singular, plural = nil)
63: "#{count} " + if count == 1
64: singular
65: elsif plural
66: plural
67: elsif Object.const_defined?("Inflector")
68: Inflector.pluralize(singular)
69: else
70: singular + "s"
71: end
72: end

If you have already made the decision to generate html in your model
classes, it may not be such a stretch to include TextHelper in your
model classes as well, even though that is a bit ugly...

Don't know where the h() method is implemented though.