string-text 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef4d50e5bf3891bbbeb0e9c85550bfe11b978843594f5ce6473800c7aa0b8da7
4
- data.tar.gz: 6092c921901c893fbdfdb523a979003af64bbee0e57c1c31018d9f17f5d3c73a
3
+ metadata.gz: 966183d6fa9a4ab3f04278e9f0e22c5c85cc704b3a82c5d9271f065d5968905b
4
+ data.tar.gz: 0bc9b6cf81c86bc1e0104b3fbe95e000c14a4983ce8ed311eb2a9dfc0b21063c
5
5
  SHA512:
6
- metadata.gz: 611f496cdc55ecfb9adff70ee277782f0e8a948563efb2041d97f61b597722e9e9b091baa3d9955d69d6363e2c4bd1e55ba7df28c10ec3042b45f3961dfad9e5
7
- data.tar.gz: 53a0a44cca61fcd5fe7c88ebf4c953dfa84e3e0a95fef9829cdb85d609a28e6ed2113fa3a2bdd3beb3c54761f0960847eab1f71637a0ddb7a642b830dcaeb783
6
+ metadata.gz: 185b584f5adabc6a82bcfcb191cd2ea6ba6e2fb364e95ab273c3f4beb20a581dfe859a1c08788946539369c008770f14cb4e600be23ea78484c69651d98aaa0a
7
+ data.tar.gz: c446c492db325e861e86f308cb924d2adfdc3f2a6320e0a4aa771d61621302c92a5bdcd7c8814d272c6cc98895ed8712f95f4c93e704dfe58559c8d6db258d14
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module String::Text
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.3"
5
5
  end
data/lib/string-text.rb CHANGED
@@ -6,10 +6,10 @@ module String::Text
6
6
  class Error < StandardError; end
7
7
 
8
8
  refine String do
9
- # Indent or outdent a block of text to the given column. It uses the indent
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.
12
- # Initial and final empty lines are ignored
9
+ # Indent or outdent a block of text to the given column (default 1). It
10
+ # uses the indent of the least indented non-empty line as the indent of the
11
+ # whole block that is then aligned as a whole (including internal indents)
12
+ # to the given column. Initial and final empty lines are ignored
13
13
  #
14
14
  # #align is often handy when you call methods with a %(...) argument
15
15
  # and don't want weird indentation in your output
@@ -23,10 +23,10 @@ module String::Text
23
23
  column == 1 or raise NotImplementedError
24
24
  lines = self.split(/\n/)
25
25
  lines.pop while !lines.empty? && !(lines.last =~ /^\s*\S/)
26
- lines.shift while !lines.empty? && !(lines.first =~ /^(\s*)\S/)
26
+ lines.shift while !lines.empty? && !(lines.first =~ /^\s*\S/)
27
27
  return "" if lines.empty?
28
- indent = $1.size
29
- lines.map { |line| line[indent..-1].rstrip || "" }.join("\n")
28
+ indent = lines.map { _1 =~ /^(\s*)/; $1.size }.select { _1 > 0 }.min || 0
29
+ lines.map { |line| line[indent..-1]&.rstrip || "" }.join("\n")
30
30
  end
31
31
 
32
32
  # Converts a string to a boolean so that "true" becomes true and that
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string-text
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-05 00:00:00.000000000 Z
11
+ date: 2024-06-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Gem string-text
14
14
  email: