string-text 0.3.0 → 0.4.0

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: a0aca29ea9d4de27eee11ec5fcbc58a7a0daad9fb2ed31507bb919b1bca3b9e2
4
- data.tar.gz: a01a8670c95fca9090d484a6defd0fed7b02dc81c8175d10450f6dff03be6c3e
3
+ metadata.gz: bbebbdbd77112e3f5322cd1bc2e1296c06cc0e4106dbb2b59cfa71e41e869f93
4
+ data.tar.gz: 883ad7d37349a4a0b7851006d19292e46c4a9628a63daba9011fd8283b782bde
5
5
  SHA512:
6
- metadata.gz: 5f9ec6576c3c0ecd16637cc8e7f9e806d08c8478480f87812a362831677cd7abc1287d979d200e010d7b9ff2f9954495e279436482362eaff1c1f703ccb27e2d
7
- data.tar.gz: d441c56ceefd09be12f512c34e72cb15787719a25107e3aef186206eb8d8fa1962884bc9549de6fa16b6bc4e85be151ee5fc5c5c07e92808c2dcbcc04b725548
6
+ metadata.gz: 37879cfee303951695df37ba4a110a3020a3d8b769fb0e1ed48607aea1912d8c1ef4085bed452b881422e2a687e2e46a050f33bb8adc577a3eaaeafdbd1b8f45
7
+ data.tar.gz: f32f7e8b5146b90f763e8a68301be62d37354f640b6882364334ba64d741f56ee2eac35cb78a37e8b319cf2d679c94ec90fa0bb0a16d1d4ed3381556f4eb27d2
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module String::Text
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/string-text.rb CHANGED
@@ -20,13 +20,17 @@ module String::Text
20
20
  # ).align
21
21
  #
22
22
  def align(column = 1)
23
- column == 1 or raise NotImplementedError
23
+ column > 0 or raise ArgumentError "Illegal column: #{column}"
24
+ initial = " " * (column - 1)
24
25
  lines = self.split(/\n/)
25
26
  lines.pop while !lines.empty? && !(lines.last =~ /^\s*\S/)
26
27
  lines.shift while !lines.empty? && !(lines.first =~ /^\s*\S/)
27
28
  return "" if lines.empty?
28
29
  indent = lines.map { _1 =~ /^(\s*)/; $1.size }.select { _1 > 0 }.min || 0
29
- lines.map { |line| line[indent..-1]&.rstrip || "" }.join("\n")
30
+ lines.map { |line|
31
+ l = line[indent..-1]&.rstrip
32
+ l ? initial + l : ""
33
+ }.join("\n")
30
34
  end
31
35
 
32
36
  # Like #align but replaces the string
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.3.0
4
+ version: 0.4.0
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-09-22 00:00:00.000000000 Z
11
+ date: 2024-09-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Gem string-text
14
14
  email: