Module: Ramaze::CoreExtensions::String
- Defined in:
- lib/ramaze/snippets/string/esc.rb,
lib/ramaze/snippets/string/ord.rb,
lib/ramaze/snippets/string/each.rb,
lib/ramaze/snippets/string/color.rb,
lib/ramaze/snippets/string/end_with.rb,
lib/ramaze/snippets/string/unindent.rb,
lib/ramaze/snippets/string/camel_case.rb,
lib/ramaze/snippets/string/snake_case.rb,
lib/ramaze/snippets/string/start_with.rb
Overview
Extensions for String
Instance Method Summary collapse
-
#camel_case ⇒ Object
simple transformation to CamelCase from snake_case.
- #each(*args, &block) ⇒ Object
-
#end_with?(other) ⇒ Boolean
Compatibility with 1.9.
-
#escape(which = :html) ⇒ Object
(also: #esc)
String#escape is an extensible escaping mechanism for string.
-
#ord ⇒ Object
compatibility with Ruby 1.9.
-
#snake_case ⇒ Object
convert to snake_case from CamelCase.
-
#start_with?(other) ⇒ Boolean
Compatibility with 1.9.
-
#unindent ⇒ Object
(also: #ui)
Useful for writing indented String and unindent on demand, based on the first line with indentation.
-
#unindent! ⇒ Object
(also: #ui!)
Destructive variant of undindent, replacing the String.
Instance Method Details
#camel_case ⇒ Object
simple transformation to CamelCase from snake_case
'foo_bar'.camel_case # => 'FooBar'
15 16 17 |
# File 'lib/ramaze/snippets/string/camel_case.rb', line 15 def camel_case split('_').map{|e| e.capitalize}.join end |
#each(*args, &block) ⇒ Object
13 14 15 |
# File 'lib/ramaze/snippets/string/each.rb', line 13 def each(*args, &block) each_line(*args, &block) end |
#end_with?(other) ⇒ Boolean
Compatibility with 1.9
12 13 14 15 |
# File 'lib/ramaze/snippets/string/end_with.rb', line 12 def end_with?(other) other = other.to_s self[-other.size, other.size] == other end |
#escape(which = :html) ⇒ Object Also known as: esc
String#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)
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/ramaze/snippets/string/esc.rb', line 17 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 |
#ord ⇒ Object
compatibility with Ruby 1.9
14 15 16 |
# File 'lib/ramaze/snippets/string/ord.rb', line 14 def ord self[0] end |
#snake_case ⇒ Object
convert to snake_case from CamelCase
'FooBar'.snake_case # => 'foo_bar'
15 16 17 |
# File 'lib/ramaze/snippets/string/snake_case.rb', line 15 def snake_case gsub(/\B[A-Z][^A-Z]/, '_\&').downcase.gsub(' ', '_') end |
#start_with?(other) ⇒ Boolean
Compatibility with 1.9
12 13 14 15 |
# File 'lib/ramaze/snippets/string/start_with.rb', line 12 def start_with?(other) other = other.to_s self[0, other.size] == other end |
#unindent ⇒ Object Also known as: ui
Useful for writing indented String and unindent on demand, based on the first line with indentation.
10 11 12 13 14 15 16 17 18 |
# File 'lib/ramaze/snippets/string/unindent.rb', line 10 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 |
#unindent! ⇒ Object Also known as: ui!
Destructive variant of undindent, replacing the String
22 23 24 |
# File 'lib/ramaze/snippets/string/unindent.rb', line 22 def unindent! self.replace unindent end |