Sha256: d70e96e1e0bec840b5c3a76bda8d9ca4ec50850f5be153ceba78a1816c6b8122

Contents?: true

Size: 1.07 KB

Versions: 19

Compression:

Stored size: 1.07 KB

Contents

require 'volt/extra_core/inflector'

class String
  # TODO: replace with better implementations
  # NOTE: strings are currently immutable in Opal, so no ! methods

  # Turns a string into the camel case version.  If it is already camel case, it should
  # return the same string.
  def camelize(first_letter = :upper)
    new_str = gsub(/_[a-z]/) { |a| a[1].upcase }
    new_str = new_str[0].capitalize + new_str[1..-1] if first_letter == :upper

    new_str
  end

  # Returns the underscore version of a string.  If it is already underscore, it should
  # return the same string.
  def underscore
    gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
  end

  def dasherize
    gsub('_', '-')
  end

  def pluralize
    Volt::Inflector.pluralize(self)
  end

  def singularize
    Volt::Inflector.singularize(self)
  end

  def titleize
    gsub('_', ' ').split(' ').map(&:capitalize).join(' ')
  end

  def plural?
    # TODO: Temp implementation
    pluralize == self
  end

  def singular?
    # TODO: Temp implementation
    singularize == self
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
volt-0.8.27.beta6 lib/volt/extra_core/string.rb
volt-0.8.27.beta5 lib/volt/extra_core/string.rb
volt-0.8.27.beta4 lib/volt/extra_core/string.rb
volt-0.8.27.beta3 lib/volt/extra_core/string.rb
volt-0.8.27.beta2 lib/volt/extra_core/string.rb
volt-0.8.27.beta1 lib/volt/extra_core/string.rb
volt-0.8.26.beta1 lib/volt/extra_core/string.rb
volt-0.8.26 lib/volt/extra_core/string.rb
volt-0.8.24 lib/volt/extra_core/string.rb
volt-0.8.23 lib/volt/extra_core/string.rb
volt-0.8.22 lib/volt/extra_core/string.rb
volt-0.8.22.beta2 lib/volt/extra_core/string.rb
volt-0.8.22.beta1 lib/volt/extra_core/string.rb
volt-0.8.21 lib/volt/extra_core/string.rb
volt-0.8.20 lib/volt/extra_core/string.rb
volt-0.8.19 lib/volt/extra_core/string.rb
volt-0.8.18 lib/volt/extra_core/string.rb
volt-0.8.17 lib/volt/extra_core/string.rb
volt-0.8.16 lib/volt/extra_core/string.rb