Sha256: c3ba180b350595629c8f5c7ed58beae1cc181d9f9a863220414945f5759bb1e4

Contents?: true

Size: 898 Bytes

Versions: 25

Compression:

Stored size: 898 Bytes

Contents

module Perennial
  class Inflector
    class << self

      def underscore(camel_cased_word)
        camel_cased_word.to_s.gsub(/::/, '/').
          gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
          gsub(/([a-z\d])([A-Z])/,'\1_\2').
          tr("-", "_").
          downcase
      end
    
      def camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true)
        if first_letter_in_uppercase
          lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
        else
          lower_case_and_underscored_word.first.downcase + camelize(lower_case_and_underscored_word)[1..-1]
        end
      end
    
    end
  end
end

class String
  def underscore
    Perennial::Inflector.underscore(self)
  end
  
  def camelize(capitalize_first_letter = true)
    Perennial::Inflector.camelize(self, capitalize_first_letter)
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
Sutto-perennial-0.2.3.2 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.3.3 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.3.4 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.3.5 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.3.6 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.3.7 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.4.0 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.4.1 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.4.5 lib/perennial/core_ext/inflections.rb
Sutto-perennial-0.2.4.6 lib/perennial/core_ext/inflections.rb
Sutto-perennial-1.0.0.0 lib/perennial/core_ext/inflections.rb
Sutto-perennial-1.0.0.1 lib/perennial/core_ext/inflections.rb
Sutto-perennial-1.0.0.2 lib/perennial/core_ext/inflections.rb
perennial-1.2.5 lib/perennial/core_ext/inflections.rb
perennial-1.2.4 lib/perennial/core_ext/inflections.rb
perennial-1.2.3 lib/perennial/core_ext/inflections.rb
perennial-1.2.2 lib/perennial/core_ext/inflections.rb
perennial-1.2.1 lib/perennial/core_ext/inflections.rb
perennial-1.2.0 lib/perennial/core_ext/inflections.rb
perennial-1.1.0 lib/perennial/core_ext/inflections.rb