andela-oojewale/matrack

View on GitHub
lib/matrack/utility.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ::String
  def to_snake_case
    gsub("::", "/").
      gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
      gsub(/([a-z\d])([A-Z])/, '\1_\2').tr("-", "_").downcase
  end

  def to_camel_case
    return self if self !~ /_/ && self =~ /[A-Z]+.*/
    split("_").map(&:capitalize).join
  end

  def to_b
    return true if !self.nil? && (self == true || downcase == "true")
    return false if self.nil? || downcase == "false" || self == false
    false
  end

  def titleize
    split.map!(&:capitalize).join(" ")
  end

  def pluralize
    self + "s" unless self.end_with? "s"
  end

end

class ::Array
  def hash_getter
    first.select{|k| k.is_a? String}
  end
end