Sha256: 26acbb6480545addfb3f52fb2d25b687ba59850353fa164e67bf7b922dabba47

Contents?: true

Size: 837 Bytes

Versions: 6

Compression:

Stored size: 837 Bytes

Contents

module Geokit
  module Inflector
    require 'cgi'

    extend self

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

    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

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

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

    def url_escape(s)
      CGI.escape(s)
    end

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
geokit-1.8.5 lib/geokit/inflectors.rb
geokit-1.8.4 lib/geokit/inflectors.rb
geokit-1.8.3 lib/geokit/inflectors.rb
geokit-1.8.2 lib/geokit/inflectors.rb
geokit-1.8.1 lib/geokit/inflectors.rb
geokit-1.8.0 lib/geokit/inflectors.rb