Module: Mongoose::Util

Defined in:
lib/mongoose/util.rb

Class Method Summary collapse

Class Method Details

.class_case_to_us_case(name) ⇒ Object

converts from things like UserName to things like user_name



14
15
16
17
# File 'lib/mongoose/util.rb', line 14

def self.class_case_to_us_case(name)
  decapitalized = name.to_s.sub(/^./) { |match| match.downcase }
  decapitalized.gsub(/[A-Z]/) { |match| "_" + match.downcase }
end

.class_name_for_col(name) ⇒ Object



37
38
39
# File 'lib/mongoose/util.rb', line 37

def self.class_name_for_col(name)
  us_case_to_class_case(name.sub(/_id\z/, ''))
end

.col_name_for_class(name) ⇒ Object



33
34
35
# File 'lib/mongoose/util.rb', line 33

def self.col_name_for_class(name)
  class_case_to_us_case(name) + "_id"
end

.pluralize(name) ⇒ Object

Adds an s



20
21
22
# File 'lib/mongoose/util.rb', line 20

def self.pluralize(name)
  name.to_s + 's'
end

.singularize(name) ⇒ Object

chops an s



25
26
27
28
29
30
31
# File 'lib/mongoose/util.rb', line 25

def self.singularize(name)
  if md = name.to_s.match(/^(.+?)s\z/)
    md[1]
  else
    raise RuntimeError, "#{name} is not plural"
  end
end

.us_case_to_class_case(name) ⇒ Object

converts from things like user_name to things like UserName



7
8
9
10
11
# File 'lib/mongoose/util.rb', line 7

def self.us_case_to_class_case(name)
  name.to_s.split(/_/).map do |word|
    word.capitalize
  end.join
end