Almirah 0.2.6 → 0.2.7

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: 163089850b213b2d22e6f4eacb5497d86afa143ecd5f2c02f1b9f2985e8b22cf
4
- data.tar.gz: b6c93f44780216b6d8f898c7f037efe22ebdcf92978d68ab907fc6794e6bdac1
3
+ metadata.gz: 295ea4bad4cbe143c6a83632c8b745baa893ad40de1f310f1b42d25108d1e09e
4
+ data.tar.gz: a0251ebf5f4626f764fe588a09a1f1b865941945850064ae46cdde02f8f694db
5
5
  SHA512:
6
- metadata.gz: dfb26159036daa64ab4107352aab6f1e4ae0f92945050945d46a4742d59eddc223a23e6108189595120ec63e44ad85e07a198222574f238391ac091c903965a3
7
- data.tar.gz: fe7a12729f62b9b5faee456c2d6ce9fe31d1730da4e9cd0c1057ad4420043eb8628f79b67b4bc38f57aafc49b890f9ec7627814c4fae44cb0d7486b5c5821b05
6
+ metadata.gz: 52a8f6612cd84debb4d47069a0412446b8cff83411931890ed7e60c00dbb4f1dfe0b56ccf1a439683f612879b50f57aca28ee253789d824127f7b00c4b050f58
7
+ data.tar.gz: 5eec4d032bca113e06f6fe3a4cdbc4fbffe508bcf09c23b6ac67ff9dfeed61eeab5a9568b307caa5fac8c8dac61823151d426d5843d357cf0b58ba590c2ad5ef
@@ -3,7 +3,7 @@
3
3
  require_relative 'doc_item'
4
4
 
5
5
  class MarkdownTable < DocItem
6
- attr_accessor :column_names, :rows, :heading_row, :is_separator_detected
6
+ attr_accessor :column_names, :rows, :heading_row, :is_separator_detected, :column_aligns
7
7
 
8
8
  def initialize(doc, heading_row)
9
9
  super(doc)
@@ -17,6 +17,33 @@ class MarkdownTable < DocItem
17
17
  end
18
18
  @rows = []
19
19
  @is_separator_detected = false
20
+ @column_aligns = []
21
+ end
22
+
23
+ def add_separator(line)
24
+ res = /^[|](.*[|])/.match(line)
25
+ columns = if res
26
+ res[1].split('|')
27
+ else
28
+ ['# ERROR# ']
29
+ end
30
+
31
+ columns.each do |c|
32
+ res = /(:?)(-{3,})(:?)/.match(c)
33
+ @column_aligns << if res.length == 4
34
+ if (res[1] != '') && (res[2] != '') && (res[3] != '')
35
+ 'center'
36
+ elsif (res[1] != '') && (res[2] != '') && (res[3] == '')
37
+ 'left'
38
+ elsif (res[1] == '') && (res[2] != '') && (res[3] != '')
39
+ 'right'
40
+ else
41
+ 'default'
42
+ end
43
+ else
44
+ 'default'
45
+ end
46
+ end
20
47
  end
21
48
 
22
49
  def add_row(row)
@@ -43,12 +70,21 @@ class MarkdownTable < DocItem
43
70
 
44
71
  @rows.each do |row|
45
72
  s += "\t<tr>\n"
46
- row.each do |col|
73
+ row.each_with_index do |col, index|
47
74
  if col.to_i.positive? && col.to_i.to_s == col # autoalign cells with numbers
48
75
  s += "\t\t<td style=\"text-align: center;\">#{col}</td>\n"
49
76
  else
77
+ align = ''
78
+ case @column_aligns[index]
79
+ when 'left'
80
+ align = 'style="text-align: left;"'
81
+ when 'right'
82
+ align = 'style="text-align: right;"'
83
+ when 'center'
84
+ align = 'style="text-align: center;"'
85
+ end
50
86
  f_text = format_string(col)
51
- s += "\t\t<td>#{f_text}</td>\n"
87
+ s += "\t\t<td #{align}>#{f_text}</td>\n"
52
88
  end
53
89
  end
54
90
  s += "\t</tr>\n"
@@ -227,11 +227,12 @@ class DocParser # rubocop:disable Metrics/ClassLength,Style/Documentation
227
227
  temp_md_list = nil
228
228
  end
229
229
 
230
- if res = /^[|](-{3,})[|]/.match(s) # check if it is a separator first
230
+ if res = /^[|]\s?(:?)(-{3,})(:?)\s?[|]/.match(s) # check if it is a separator first
231
231
 
232
232
  if temp_md_table
233
233
  # separator is found after heading
234
234
  temp_md_table.is_separator_detected = true
235
+ temp_md_table.add_separator(s)
235
236
  else
236
237
  # separator out of table scope consider it just as a regular paragraph
237
238
  item = Paragraph.new(doc, s)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Almirah
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleksandr Ivanov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-17 00:00:00.000000000 Z
11
+ date: 2024-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor