Module: Inflector
Overview
The Inflector transforms words from singular to plural, class names to table names, modulized class names to ones without, and class names to foreign keys.
Instance Method Summary collapse
- #camelize(lower_case_and_underscored_word) ⇒ Object
- #demodulize(class_name_in_module) ⇒ Object
- #foreign_key(class_name, separate_class_name_and_id_with_underscore = true) ⇒ Object
- #pluralize(word) ⇒ Object
- #singularize(word) ⇒ Object
- #underscore(camel_cased_word) ⇒ Object
Instance Method Details
#camelize(lower_case_and_underscored_word) ⇒ Object
22 23 24 |
# File 'lib/active_record/support/inflector.rb', line 22 def camelize(lower_case_and_underscored_word) lower_case_and_underscored_word.gsub(/(^|_)(.)/){$2.upcase} end |
#demodulize(class_name_in_module) ⇒ Object
30 31 32 |
# File 'lib/active_record/support/inflector.rb', line 30 def demodulize(class_name_in_module) class_name_in_module.gsub(/^.*::/, '') end |
#foreign_key(class_name, separate_class_name_and_id_with_underscore = true) ⇒ Object
34 35 36 37 |
# File 'lib/active_record/support/inflector.rb', line 34 def foreign_key(class_name, separate_class_name_and_id_with_underscore = true) Inflector.underscore(Inflector.demodulize(class_name)) + (separate_class_name_and_id_with_underscore ? "_id" : "id") end |
#pluralize(word) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/active_record/support/inflector.rb', line 6 def pluralize(word) result = word.dup plural_rules.each do |(rule, replacement)| break if result.gsub!(rule, replacement) end return result end |
#singularize(word) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/active_record/support/inflector.rb', line 14 def singularize(word) result = word.dup singular_rules.each do |(rule, replacement)| break if result.gsub!(rule, replacement) end return result end |
#underscore(camel_cased_word) ⇒ Object
26 27 28 |
# File 'lib/active_record/support/inflector.rb', line 26 def underscore(camel_cased_word) camel_cased_word.gsub(/([A-Z]+)([A-Z])/,'\1_\2').gsub(/([a-z])([A-Z])/,'\1_\2').downcase end |