# File lib/core/facets/string/margin.rb, line 32 def margin(num=nil, opts={}) # TODO: temporary to help people transition raise ArgumentError, "String#margin has been renamed to #trim." unless num tab = opts[:tab] || 2 str = gsub("\t", " " * tab) # TODO: only leading tabs ? if opts[:lead] if self =~ /^( *)\S/ indent(num - $1.length) else self end else min = [] str.each_line do |line| next if line.strip.empty? min << line.index(/\S/) end min = min.min str.indent(num - min) end end