Sha256: be1d868e4f14db464ed03ebb80f969c11af8e470e51e6c50512546a3536283c7

Contents?: true

Size: 596 Bytes

Versions: 1

Compression:

Stored size: 596 Bytes

Contents

require 'rubygems'
require 'hashie'

module Hashie
  class Rash < Mash
    
    protected
    
    def convert_key(key) #:nodoc:
      underscore_string(key.to_s)
    end
    
    # converts a camel_cased string to a underscore string
    # subs spaces with underscores, strips whitespace
    # Same way ActiveSupport does string.underscore
    def underscore_string(str)
      str.to_s.strip.
        gsub(' ', '_').
        gsub(/::/, '/').
        gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
        gsub(/([a-z\d])([A-Z])/,'\1_\2').
        tr("-", "_").
        downcase
    end
    
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rash-0.2.0 lib/rash.rb