Module: Geokit::Inflector

Extended by:
Inflector
Included in:
Inflector
Defined in:
lib/geokit/geocoders.rb

Instance Method Summary collapse

Instance Method Details

#camelize(str) ⇒ Object



44
45
46
# File 'lib/geokit/geocoders.rb', line 44

def camelize(str)
  str.split('_').map {|w| w.capitalize}.join
end

#humanize(lower_case_and_underscored_word) ⇒ Object



27
28
29
# File 'lib/geokit/geocoders.rb', line 27

def humanize(lower_case_and_underscored_word)
  lower_case_and_underscored_word.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize
end

#snake_case(s) ⇒ Object



31
32
33
34
35
36
# File 'lib/geokit/geocoders.rb', line 31

def snake_case(s)
  return s.downcase if s =~ /^[A-Z]+$/u
  s.gsub(/([A-Z]+)(?=[A-Z][a-z]?)|\B[A-Z]/u, '_\&') =~ /_*(.*)/
    return $+.downcase
  
end

#titleize(word) ⇒ Object



15
16
17
# File 'lib/geokit/geocoders.rb', line 15

def titleize(word)
  humanize(underscore(word)).gsub(/\b([a-z])/u) { $1.capitalize }
end

#underscore(camel_cased_word) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/geokit/geocoders.rb', line 19

def underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/u,'\1_\2').
  gsub(/([a-z\d])([A-Z])/u,'\1_\2').
  tr("-", "_").
  downcase
end

#url_escape(s) ⇒ Object



38
39
40
41
42
# File 'lib/geokit/geocoders.rb', line 38

def url_escape(s)
s.gsub(/([^ a-zA-Z0-9_.-]+)/nu) do
  '%' + $1.unpack('H2' * $1.size).join('%').upcase
  end.tr(' ', '+')
end