formatador 1.1.1 → 1.2.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: 9f775eb2a13c13d00ecb5b23150628a0336716adcf9b3125c35b6d6ca3e12827
4
- data.tar.gz: f9cfbb270ef4f89f465bbc09711329e379329c84ba603721c736c8ea59146c42
3
+ metadata.gz: cf29b39c71a7f045ff085d5a31127c714b96e2c59b8fbaebff931084a1499a4d
4
+ data.tar.gz: 4b165f7014636a0e333c2140fb89667d9203862d960f1fc7f91ca6d8087cb929
5
5
  SHA512:
6
- metadata.gz: 39fe3363f0bb482dc4709c37323f13cfd4422d6e3ad493f4913d9da7f76683c629c61e1d4cf8bc02e89e0bbad6d72b3fa9d4dab6abcab124f7e1289ad0ee9255
7
- data.tar.gz: 30d4ea6d8fd9acb1908c39851fd288b215ae11c8c4aebb089e0b1564fa0ee6a93939252f2c4a15e8ecc23e744e21850aaa0f56cb8a345d01ed43eeab96527ae2
6
+ metadata.gz: 611aebde13dcc7ce85d0f9033bcd42519d19a94ea6427aacf4f43c5800ecc2d655660fa5de146e4acd0c3106dc9f383def09d57ca4dcdbd6016bbc5831cd2411
7
+ data.tar.gz: 5ba6a7f4bb3fb80e95c8b941ad12f2d937819b65cfa651d985bc080affe30723447309bb5ce0c1baf02777f70e849ba3108ed60d6f22c1e75cf0db3fcb92306c
data/changelog.txt CHANGED
@@ -1,3 +1,8 @@
1
+ v1.2.0 08/08/25
2
+ ===============
3
+
4
+ switch to reline for table-width calculations
5
+
1
6
  v1.1.1 07/11/25
2
7
  ===============
3
8
 
data/formatador.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'formatador'
16
- s.version = '1.1.1'
17
- s.date = '2025-07-11'
16
+ s.version = '1.2.0'
17
+ s.date = '2025-08-08'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
@@ -49,6 +49,7 @@ Gem::Specification.new do |s|
49
49
  ## List your runtime dependencies here. Runtime dependencies are those
50
50
  ## that are needed for an end user to actually USE your code.
51
51
  # s.add_dependency('DEPNAME', [">= 1.1.0", "< 2.0.0"])
52
+ s.add_dependency('reline')
52
53
 
53
54
  ## List your development dependencies here. Development dependencies are
54
55
  ## those that are only needed during development
@@ -80,11 +80,7 @@ class Formatador
80
80
  private
81
81
 
82
82
  def length(value)
83
- if Module.const_defined?(:Unicode) && Unicode.respond_to?(:width)
84
- Unicode.width(value.to_s.gsub(PARSE_REGEX, ''))
85
- else
86
- value.to_s.gsub(PARSE_REGEX, '').chars.reduce(0) { |sum, char| sum += char.bytesize > 1 ? 2 : 1 }
87
- end
83
+ Reline::Unicode.calculate_width(value.to_s.gsub(PARSE_REGEX, ''))
88
84
 
89
85
  rescue NotImplementedError
90
86
  value.to_s.gsub(PARSE_REGEX, '').chars.reduce(0) { |sum, char| sum += char.bytesize > 1 ? 2 : 1 }
data/lib/formatador.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  require File.join(File.dirname(__FILE__), 'formatador', 'table')
2
2
  require File.join(File.dirname(__FILE__), 'formatador', 'progressbar')
3
3
 
4
+ require 'reline' # for table char width calculations
5
+
4
6
  class Formatador
5
7
 
6
- VERSION = '1.1.1'
8
+ VERSION = '1.2.0'
7
9
 
8
10
  STYLES = {
9
11
  :"\/" => "0",
data/tests/table_tests.rb CHANGED
@@ -153,4 +153,22 @@ OUTPUT
153
153
  end
154
154
  end
155
155
 
156
+ output = <<-OUTPUT
157
+ +----+
158
+ | [bold]a[/] |
159
+ +----+
160
+ | 1 |
161
+ +----+
162
+ | 🤷 |
163
+ +----+
164
+ OUTPUT
165
+ output = Formatador.parse(output)
166
+
167
+ tests("#display_table([{:a => 1}, {:a => '🤷'}])").returns(output) do
168
+ capture_stdout do
169
+ Formatador.display_table([{:a => 1}, {:a => '🤷'}])
170
+ end
171
+ end
172
+
173
+
156
174
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formatador
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - geemus (Wesley Beary)
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-11 00:00:00.000000000 Z
10
+ date: 2025-08-08 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: reline
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: rake
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -92,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
106
  - !ruby/object:Gem::Version
93
107
  version: '0'
94
108
  requirements: []
95
- rubygems_version: 3.6.9
109
+ rubygems_version: 3.7.1
96
110
  specification_version: 2
97
111
  summary: Ruby STDOUT text formatting
98
112
  test_files: []