Sha256: 4b40210733e5ba21bdb0c04fdc2b9a66115cb56cc2beb8ae73cc1ba4aaa53b8b

Contents?: true

Size: 1.19 KB

Versions: 19

Compression:

Stored size: 1.19 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 headerize
    split(/[_-]/)
      .map { |new_str| new_str[0].capitalize + new_str[1..-1] }
      .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.9.3.pre1 lib/volt/extra_core/string.rb
volt-0.9.2 lib/volt/extra_core/string.rb
volt-0.9.1 lib/volt/extra_core/string.rb
volt-0.9.1.pre5 lib/volt/extra_core/string.rb
volt-0.9.1.pre4 lib/volt/extra_core/string.rb
volt-0.9.1.pre3 lib/volt/extra_core/string.rb
volt-0.9.1.pre2 lib/volt/extra_core/string.rb
volt-0.9.1.pre1 lib/volt/extra_core/string.rb
volt-0.9.0 lib/volt/extra_core/string.rb
volt-0.9.0.pre7 lib/volt/extra_core/string.rb
volt-0.9.0.pre6 lib/volt/extra_core/string.rb
volt-0.9.0.pre5 lib/volt/extra_core/string.rb
volt-0.9.0.pre4 lib/volt/extra_core/string.rb
volt-0.9.0.pre3 lib/volt/extra_core/string.rb
volt-0.9.0.pre2 lib/volt/extra_core/string.rb
volt-0.9.0.pre1 lib/volt/extra_core/string.rb
volt-0.8.27.beta9 lib/volt/extra_core/string.rb
volt-0.8.27.beta8 lib/volt/extra_core/string.rb
volt-0.8.27.beta7 lib/volt/extra_core/string.rb