module Ramaze::CoreExtensions::String

Extensions for String

Extensions for String

Extensions for String

Extensions for String

Extensions for String

Public Instance Methods

camel_case() click to toggle source

Simple transformation to CamelCase from #snake_case

@example

'foo_bar'.camel_case # => 'FooBar'
# File lib/ramaze/snippets/string/camel_case.rb, line 14
def camel_case
  split('_').map{|e| e.capitalize}.join
end
escape(which = :html) click to toggle source

#escape is an extensible escaping mechanism for string. currently it suports

'<div>foo bar</div>'.esc(:html)
'foo bar'.esc(:uri)
'foo bar'.esc(:cgi)
# File lib/ramaze/snippets/string/esc.rb, line 13
def escape which = :html
  case which
  when :html
    Rack::Utils.escape_html(self)
  when :cgi
    Rack::Utils.escape(self)
  when :uri
    ::URI.escape(self)
  else
    raise ArgumentError, "do not know how to escape '#{ which }'"
  end
end
snake_case() click to toggle source

convert to #snake_case from CamelCase

@example

'FooBar'.snake_case # => 'foo_bar'
# File lib/ramaze/snippets/string/snake_case.rb, line 13
def snake_case
  gsub(/\B[A-Z][^A-Z]/, '_\&').downcase.gsub(' ', '_')
end
ui()
Alias for: unindent
ui!()
Alias for: unindent!
unindent() click to toggle source

Useful for writing indented String and unindent on demand, based on the first line with indentation.

# File lib/ramaze/snippets/string/unindent.rb, line 7
def unindent
  find_indent = proc{ |l| l.find{|l| !l.strip.empty?}.to_s[/^(\s+)/, 1] }

  lines = self.split("\n")
  space = find_indent[lines]
  space = find_indent[lines.reverse] unless space

  strip.gsub(/^#{space}/, '')
end
Also aliased as: ui
unindent!() click to toggle source

Destructive variant of undindent, replacing the String

# File lib/ramaze/snippets/string/unindent.rb, line 19
def unindent!
  self.replace unindent
end
Also aliased as: ui!