string-text 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d954b59921214f791a82b0e1d07eb5ff770005d512fbdf231eb9e0d8c5ff7d3
4
- data.tar.gz: 79350075e64dd1277b5a2b5610b8df9fb7c05a3e64ea90c1c4e5a6460e2f4471
3
+ metadata.gz: ef4d50e5bf3891bbbeb0e9c85550bfe11b978843594f5ce6473800c7aa0b8da7
4
+ data.tar.gz: 6092c921901c893fbdfdb523a979003af64bbee0e57c1c31018d9f17f5d3c73a
5
5
  SHA512:
6
- metadata.gz: 18c9a7a0ed48c3ab51257983bb245a5087770594bbd9d20e283611846a6fce42f52af5976ef8157e572e0b6f772aa3746b321ea5d2968cfc28776775d77ae055
7
- data.tar.gz: 037437d4642ac34a171127bce254162d230437047870847216322eed0be5b3269a6242a55f5cc00c0fe453cedb710a35874413693be8f22e8e1ff39da229075c
6
+ metadata.gz: 611f496cdc55ecfb9adff70ee277782f0e8a948563efb2041d97f61b597722e9e9b091baa3d9955d69d6363e2c4bd1e55ba7df28c10ec3042b45f3961dfad9e5
7
+ data.tar.gz: 53a0a44cca61fcd5fe7c88ebf4c953dfa84e3e0a95fef9829cdb85d609a28e6ed2113fa3a2bdd3beb3c54761f0960847eab1f71637a0ddb7a642b830dcaeb783
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module String::Text
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/string-text.rb CHANGED
@@ -8,10 +8,11 @@ module String::Text
8
8
  refine String do
9
9
  # Indent or outdent a block of text to the given column. It uses the indent
10
10
  # of the non-empty line as the indent of the whole block that is then
11
- # aligned as a whole (including internal indents) to the given column
11
+ # aligned as a whole (including internal indents) to the given column.
12
+ # Initial and final empty lines are ignored
12
13
  #
13
- # It is often handy when you're calling methods with a %(...) argument and
14
- # don't want weird indentation in your output
14
+ # #align is often handy when you call methods with a %(...) argument
15
+ # and don't want weird indentation in your output
15
16
  #
16
17
  # puts %(
17
18
  # This line will start at column 1
@@ -21,17 +22,11 @@ module String::Text
21
22
  def align(column = 1)
22
23
  column == 1 or raise NotImplementedError
23
24
  lines = self.split(/\n/)
25
+ lines.pop while !lines.empty? && !(lines.last =~ /^\s*\S/)
24
26
  lines.shift while !lines.empty? && !(lines.first =~ /^(\s*)\S/)
25
27
  return "" if lines.empty?
26
28
  indent = $1.size
27
- r = []
28
- while line = lines.shift&.rstrip
29
- r << (line[indent..-1] || "")
30
- end
31
- while !r.empty? && r.last =~ /^\s*$/
32
- r.pop
33
- end
34
- r.join("\n").chomp
29
+ lines.map { |line| line[indent..-1].rstrip || "" }.join("\n")
35
30
  end
36
31
 
37
32
  # Converts a string to a boolean so that "true" becomes true and that
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string-text
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen