Sha256: 7d527c463825a28d51cc82569faa2e6c70099433408dd558126a17a8b076b84d

Contents?: true

Size: 894 Bytes

Versions: 3

Compression:

Stored size: 894 Bytes

Contents

class String
  
  # Camel cases the string.
  # 
  # Examples: 
  #   "user".camelcase # => User
  #   "my_blog".camelcase # => MyBlog
  #   "my/blog".camelcase # => My::Blog
  def camelcase
    self.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
  end
  
  # Returns a constant of the string.
  # 
  # Examples:
  #   "User".constantize # => User
  #   "HomeController".constantize # => HomeController
  #   "Mack::Configuration" # => Mack::Configuration
  def constantize
    Module.instance_eval("::#{self}")
  end
  
  # If the string is empty, this will return true.
  def blank?
    self == ""
  end
  
  # Maps to Mack::Utils::Inflector.instance.pluralize
  def plural
    Mack::Utils::Inflector.instance.pluralize(self)
  end
  
  # Maps to Mack::Utils::Inflector.instance.singularize
  def singular
    Mack::Utils::Inflector.instance.singularize(self)
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mack-0.1.0 lib/core_extensions/string.rb
mack-0.2.0 lib/core_extensions/string.rb
mack-0.2.0.1 lib/core_extensions/string.rb