Sha256: 435c4d4fad15b972bb62bd74a41b1ca406b794a2e14bb9f8fbfbbfb1baa54583

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

class String
  def to_numbers(replace='#')
    gsub(/#{replace}/){ Kernel.rand(10) }
  end

  # Ripped right out of rails
  if !defined?(Rails.root)
    def camelize(first_letter = :upper)
      case first_letter
      when :upper
        to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
      when :lower
        first.downcase + camelize(self)[1..-1]
      end
    end

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

    if Module.method(:const_get).arity == 1
      def constantize
        names = self.split('::')
        names.shift if names.empty? || names.first.empty?

        constant = Object
        names.each do |name|
          constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
        end
        constant
      end
    else
      def constantize
        names = self.split('::')
        names.shift if names.empty? || names.first.empty?

        constant = Object
        names.each do |name|
          constant = constant.const_get(name, false) || constant.const_missing(name)
        end
        constant
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
forgery-0.3.12 lib/forgery/extensions/string.rb