Sha256: 6d7c1e99d4fa3cdbe4b57330583b80f11effed1880315c0c446d3b883b8c0eb7

Contents?: true

Size: 593 Bytes

Versions: 1

Compression:

Stored size: 593 Bytes

Contents

require 'hashie/mash'

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.3.0 lib/hashie/rash.rb