Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/indentation/string_mod.rb
Instance Method Summary collapse
-
#find_least_indentation(options = {:ignore_blank_lines => true, :ignore_empty_lines => true}) ⇒ Object
Split across newlines and return the fewest number of indentation characters found on each line.
-
#indent(num = nil, i_char = ' ') ⇒ Object
Return an indented copy of this string Arguments: * num - How many of the specified indentation to use.
-
#indent!(num = nil, i_char = ' ') ⇒ Object
Indents this string Arguments: * num - How many of the specified indentation to use.
-
#reset_indentation(modifier = 0) ⇒ Object
Find the least indentation of all lines within this string and remove that amount (if any) Can pass an optional modifier that changes the indentation amount removed.
-
#reset_indentation!(modifier = 0) ⇒ Object
Replaces the current string with one that has had its indentation reset Can pass an optional modifier that changes the indentation amount removed.
Instance Method Details
#find_least_indentation(options = {:ignore_blank_lines => true, :ignore_empty_lines => true}) ⇒ Object
Split across newlines and return the fewest number of indentation characters found on each line
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/indentation/string_mod.rb', line 25 def find_least_indentation( = {:ignore_blank_lines => true, :ignore_empty_lines => true}) # Cannot ignore empty lines unless we're also ignoring blank lines [:ignore_blank_lines] = [:ignore_empty_lines] ? true : [:ignore_blank_lines] empty? ? 0 : split("\n", -1).reject{|line| if [:ignore_empty_lines] line.strip.empty? elsif [:ignore_blank_lines] line.empty? else false end }.collect{|substr| substr.match(/^[ \t]*/).to_s.length}.min end |
#indent(num = nil, i_char = ' ') ⇒ Object
Return an indented copy of this string Arguments:
-
num - How many of the specified indentation to use.
Default for spaces is 2. Default for other is 1. If set to a negative value, removes that many of the specified indentation character, tabs, or spaces from the beginning of the string
-
i_char - Character (or string) to use for indentation
9 10 11 |
# File 'lib/indentation/string_mod.rb', line 9 def indent(num = nil, i_char = ' ') _indent(num, i_char) end |
#indent!(num = nil, i_char = ' ') ⇒ Object
Indents this string Arguments:
-
num - How many of the specified indentation to use.
Default for spaces is 2. Default for other is 1. If set to a negative value, removes that many of the specified indentation character, tabs, or spaces from the beginning of the string
-
i_char - Character (or string) to use for indentation
20 21 22 |
# File 'lib/indentation/string_mod.rb', line 20 def indent!(num = nil, i_char = ' ') replace(_indent(num, i_char)) end |
#reset_indentation(modifier = 0) ⇒ Object
Find the least indentation of all lines within this string and remove that amount (if any) Can pass an optional modifier that changes the indentation amount removed
41 42 43 |
# File 'lib/indentation/string_mod.rb', line 41 def reset_indentation(modifier = 0) indent(-find_least_indentation + modifier) end |
#reset_indentation!(modifier = 0) ⇒ Object
Replaces the current string with one that has had its indentation reset Can pass an optional modifier that changes the indentation amount removed
47 48 49 |
# File 'lib/indentation/string_mod.rb', line 47 def reset_indentation!(modifier = 0) indent!(-find_least_indentation + modifier) end |