Module: Mongoose::Util
- Defined in:
- lib/mongoose/util.rb
Constant Summary collapse
- SINGULAR_TO_PLURAL =
Hash.new { |h, k| h[k] = k.to_s + 's' }
- PLURAL_TO_SINGULAR =
Hash.new do |h, k| h[k] = if md = k.to_s.match(/\A(.*)s\z/) md[1] else raise(ArgumentError, "Please use " + "plural_form for this special case") end end
- SPECIAL_PLURALIZATION_CASES =
{ "child" => "children", "person" => "people", "mouse" => "mice" }
Class Method Summary collapse
-
.class_case_to_us_case(name) ⇒ Object
converts from things like UserName to things like user_name.
- .class_name_for_col(name) ⇒ Object
- .col_name_for_class(name) ⇒ Object
-
.pluralize(name) ⇒ Object
Adds an s.
-
.singularize(name) ⇒ Object
chops an s.
-
.us_case_to_class_case(name) ⇒ Object
converts from things like user_name to things like UserName.
Class Method Details
.class_case_to_us_case(name) ⇒ Object
converts from things like UserName to things like user_name
32 33 34 |
# File 'lib/mongoose/util.rb', line 32 def self.class_case_to_us_case(name) name.split(/(?=[A-Z])/).map { |s| s.downcase }.join('_') end |
.class_name_for_col(name) ⇒ Object
50 51 52 |
# File 'lib/mongoose/util.rb', line 50 def self.class_name_for_col(name) us_case_to_class_case(name.sub(/_id\z/, '')) end |
.col_name_for_class(name) ⇒ Object
46 47 48 |
# File 'lib/mongoose/util.rb', line 46 def self.col_name_for_class(name) class_case_to_us_case(name) + "_id" end |
.pluralize(name) ⇒ Object
Adds an s
37 38 39 |
# File 'lib/mongoose/util.rb', line 37 def self.pluralize(name) SINGULAR_TO_PLURAL[name] end |
.singularize(name) ⇒ Object
chops an s
42 43 44 |
# File 'lib/mongoose/util.rb', line 42 def self.singularize(name) PLURAL_TO_SINGULAR[name] end |
.us_case_to_class_case(name) ⇒ Object
converts from things like user_name to things like UserName
25 26 27 28 29 |
# File 'lib/mongoose/util.rb', line 25 def self.us_case_to_class_case(name) name.to_s.split(/_/).map do |word| word.capitalize end.join end |