singularize, pluralizeで文字列の単数形・複数形変換
ExcelシートからCakePHPのモデルを自動生成するのに単数形・複数形変換が自動でできたら、と思って調べてみたらsingularize, pluralizeを使えばいいということが分かったので試してみました。Win32OLEで簡単にExcelデータが読めるのでRubyで書いています。最近rooに乗り換えました。こちらも簡単にスプレッドシートが読めて OpenOffice, Google spreadsheet, Excel(xls, xlsx) に対応しています。
文字列の後に .singularize .pluralize を付けると複数形・単数形への変換ができます。
singularize.rb
require 'active_support/inflector' p "People".singularize p "Person".pluralize
$ ruby singularize.rb "Person" "People"
require 'active_support' だけだと undefined method `singularize' for "People":String (NoMethodError) になるので require 'active_support/inflector' とします。これでしばらくはまりました。
active_support::inflector にはその他、キャメルケースへの変換(camelize)等便利な関数が用意されています。
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html
@Ruby 1.9.3