Sha256: 149a0474be7eae52e011ec4c9a8c0d630a365ef0cfde0811af138147972ab741

Contents?: true

Size: 664 Bytes

Versions: 5

Compression:

Stored size: 664 Bytes

Contents

class String
  def blank?
    empty? || /\A[[:space:]]*\z/.match?(self)
  end

  # Convert string to CamelCase
  def to_camel_case(uppercase_first_letter = false)
    string = self
    if uppercase_first_letter
      string = string.sub(/^[a-z\d]*/) { |match| match.capitalize }
    else
      string = string.sub(/^(?:(?=\b|[A-Z_])|\w)/) { |match| match.downcase }
    end
    string.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.gsub("/", "::")
  end

  # Convert string to snake_case
  def to_snake_case
    self.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
business-central-1.0.3 lib/core_ext/string.rb
sms-global-0.1.0 lib/core_ext/string.rb
business-central-1.0.2 lib/core_ext/string.rb
business-central-1.0.1 lib/core_ext/string.rb
business-central-1.0.0 lib/core_ext/string.rb