diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2019-12-02 23:35:00 -0700 |
|---|---|---|
| committer | Dan Allen <dan.j.allen@gmail.com> | 2019-12-02 23:35:00 -0700 |
| commit | 6de03d94c275dad81d427d648c44aa640ea3ff2b (patch) | |
| tree | 9407bd4f011d37ee0f2ba614d11f8b2c5232fd4b /spec | |
| parent | 18d7e776f34357e3bba56d121ceb0b0a2aa199d2 (diff) | |
fix lint errors in test suite
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/admonition_spec.rb | 9 | ||||
| -rw-r--r-- | spec/converter_spec.rb | 10 | ||||
| -rw-r--r-- | spec/cover_page_spec.rb | 6 | ||||
| -rw-r--r-- | spec/font_spec.rb | 10 | ||||
| -rw-r--r-- | spec/footnote_spec.rb | 8 | ||||
| -rw-r--r-- | spec/formatted_text_formatter_spec.rb | 28 | ||||
| -rw-r--r-- | spec/formatted_text_transform_spec.rb | 4 | ||||
| -rw-r--r-- | spec/hyphens_spec.rb | 4 | ||||
| -rw-r--r-- | spec/icon_spec.rb | 16 | ||||
| -rw-r--r-- | spec/image_spec.rb | 58 | ||||
| -rw-r--r-- | spec/index_spec.rb | 4 | ||||
| -rw-r--r-- | spec/link_spec.rb | 4 | ||||
| -rw-r--r-- | spec/list_spec.rb | 5 | ||||
| -rw-r--r-- | spec/media_spec.rb | 2 | ||||
| -rw-r--r-- | spec/open_spec.rb | 8 | ||||
| -rw-r--r-- | spec/optimizer_spec.rb | 4 | ||||
| -rw-r--r-- | spec/page_spec.rb | 4 | ||||
| -rw-r--r-- | spec/paragraph_spec.rb | 12 | ||||
| -rw-r--r-- | spec/pdf_info_spec.rb | 2 | ||||
| -rw-r--r-- | spec/running_content_spec.rb | 111 | ||||
| -rw-r--r-- | spec/section_spec.rb | 24 | ||||
| -rw-r--r-- | spec/source_spec.rb | 16 | ||||
| -rw-r--r-- | spec/spec_helper.rb | 35 | ||||
| -rw-r--r-- | spec/table_spec.rb | 43 | ||||
| -rw-r--r-- | spec/title_page_spec.rb | 4 | ||||
| -rw-r--r-- | spec/toc_spec.rb | 8 |
26 files changed, 206 insertions, 233 deletions
diff --git a/spec/admonition_spec.rb b/spec/admonition_spec.rb index 670de98a..1d2d9422 100644 --- a/spec/admonition_spec.rb +++ b/spec/admonition_spec.rb @@ -167,7 +167,7 @@ describe 'Asciidoctor::PDF::Converter - Admonition' do end it 'should warn and fallback to admonition label if image icon cannot be resolved' do - (expect { + (expect do pdf = to_pdf <<~'EOS', attribute_overrides: { 'docdir' => fixtures_dir }, analyze: true :icons: image :iconsdir: @@ -181,7 +181,7 @@ describe 'Asciidoctor::PDF::Converter - Admonition' do note_text = (pdf.find_text 'NOTE')[0] (expect note_text).not_to be_nil (expect note_text[:font_name]).to include 'Bold' - }).to log_message severity: :WARN, message: '~admonition icon not found or not readable' + end).to log_message severity: :WARN, message: '~admonition icon not found or not readable' end it 'should allow theme to specify icon for custom admonition type' do @@ -199,10 +199,7 @@ describe 'Asciidoctor::PDF::Converter - Admonition' do end pdf_theme = { - admonition_icon_question: { - name: 'question-circle', - size: 20, - } + admonition_icon_question: { name: 'question-circle', size: 20 }, } pdf = to_pdf <<~'EOS', pdf_theme: pdf_theme, extensions: extensions, analyze: true diff --git a/spec/converter_spec.rb b/spec/converter_spec.rb index 4c0ee9d0..c0dd85a2 100644 --- a/spec/converter_spec.rb +++ b/spec/converter_spec.rb @@ -55,10 +55,10 @@ describe Asciidoctor::PDF::Converter do input_file = fixture_file 'book.adoc' doc = Asciidoctor.load_file input_file, backend: 'pdf', safe: :safe, attributes: { 'reproducible' => '' } converter = doc.converter - pdf_1 = doc.convert.render + pdf1 = doc.convert.render doc = Asciidoctor.load_file input_file, backend: 'pdf', safe: :safe, attributes: { 'reproducible' => '' }, converter: converter - pdf_2 = doc.convert.render - (expect pdf_1).to eql pdf_2 + pdf2 = doc.convert.render + (expect pdf1).to eql pdf2 end it 'should ensure data-uri attribute is set' do @@ -143,9 +143,9 @@ describe Asciidoctor::PDF::Converter do end it 'should log error if theme cannot be found or loaded' do - (expect { + (expect do Asciidoctor.convert 'foo', backend: 'pdf', attributes: { 'pdf-theme' => 'foo' } - }).to (raise_exception Errno::ENOENT) & (log_message severity: :ERROR, message: '~could not locate or load the built-in pdf theme `foo\'') + end).to (raise_exception Errno::ENOENT) & (log_message severity: :ERROR, message: '~could not locate or load the built-in pdf theme `foo\'') end it 'should not crash if theme does not specify any keys' do diff --git a/spec/cover_page_spec.rb b/spec/cover_page_spec.rb index 1bc41d59..9f796c88 100644 --- a/spec/cover_page_spec.rb +++ b/spec/cover_page_spec.rb @@ -47,14 +47,14 @@ describe 'Asciidoctor::PDF::Converter - Cover Page' do it 'should not crash if front cover image is a URI and the allow-uri-read attribute is not set' do pdf = nil - (expect { + (expect do pdf = to_pdf <<~'EOS', analyze: true = Document Title :front-cover-image: https://example.org/cover.svg content EOS - }).to not_raise_exception & (log_message severity: :WARN, message: '~allow-uri-read is not enabled') + end).to not_raise_exception & (log_message severity: :WARN, message: '~allow-uri-read is not enabled') (expect pdf.pages).to have_size 1 (expect pdf.find_text 'Document Title').to have_size 1 end @@ -181,7 +181,7 @@ describe 'Asciidoctor::PDF::Converter - Cover Page' do pdf = to_pdf input, analyze: :rect rects = pdf.rectangles (expect rects).to have_size 1 - (expect rects[0]).to eql({ point: [0.0, 0.0], width: 612.0, height: 792.0 }) + (expect rects[0]).to eql point: [0.0, 0.0], width: 612.0, height: 792.0 pdf = to_pdf input, analyze: true (expect pdf.pages).to have_size 2 diff --git a/spec/font_spec.rb b/spec/font_spec.rb index 3111f33f..f8765bae 100644 --- a/spec/font_spec.rb +++ b/spec/font_spec.rb @@ -41,17 +41,17 @@ describe 'Asciidoctor::PDF::Converter - Font' do context 'built-in (AFM)' do it 'should warn if document contains glyph not supported by AFM font' do - (expect { + (expect do pdf = to_pdf 'α to ω', analyze: true, attribute_overrides: { 'pdf-theme' => 'base' } not_glyph = ?\u00ac text = pdf.text (expect text).to have_size 1 (expect text[0][:string]).to eql %(#{not_glyph} to #{not_glyph}) - }).to log_message severity: :WARN, message: %(The following text could not be fully converted to the Windows-1252 character set:\n| α to ω) + end).to log_message severity: :WARN, message: %(The following text could not be fully converted to the Windows-1252 character set:\n| α to ω) end it 'should replace essential characters with suitable replacements to avoid warnings' do - (expect { + (expect do pdf = to_pdf <<~'EOS', pdf_theme: { base_font_family: 'Helvetica' }, analyze: true :experimental: @@ -66,7 +66,7 @@ describe 'Asciidoctor::PDF::Converter - Font' do EOS (expect pdf.find_text font_name: 'Helvetica').to have_size pdf.text.size (expect pdf.lines).to eql [%(\u2022disc), '-circle', %(\u00b7square), 'nospace', 'button:[Save]'] - }).to not_log_message + end).to not_log_message end end @@ -217,7 +217,7 @@ describe 'Asciidoctor::PDF::Converter - Font' do it 'should resolve font size of inline element specified in rem' do pdf_theme = { base_font_size: 12, - link_font_size: '0.75rem' + link_font_size: '0.75rem', } pdf = to_pdf 'https://asciidoctor.org[Asciidoctor]', pdf_theme: pdf_theme, analyze: true linked_text = (pdf.find_text 'Asciidoctor')[0] diff --git a/spec/footnote_spec.rb b/spec/footnote_spec.rb index d359c515..f0dd6a11 100644 --- a/spec/footnote_spec.rb +++ b/spec/footnote_spec.rb @@ -53,7 +53,7 @@ describe 'Asciidoctor::PDF::Converter - Footnote' do (expect text[2][:font_size]).to be < text[1][:font_size] # footnote item (expect (pdf.find_text 'Section B')[0][:order]).to be < (pdf.find_text '] More about that thing.')[0][:order] - (expect (strings.slice(-3, 3)).join).to eql '[1] More about that thing.' + (expect strings.slice(-3, 3).join).to eql '[1] More about that thing.' (expect text[-1][:page_number]).to eql 2 (expect text[-1][:font_size]).to eql 8 end @@ -116,12 +116,12 @@ describe 'Asciidoctor::PDF::Converter - Footnote' do text = pdf.text p1 = (pdf.find_text %r/download/)[0] - fn1 = (text.slice p1[:order], 3).reduce('') {|accum, it| accum += it[:string] } + fn1 = (text.slice p1[:order], 3).reduce('') {|accum, it| accum + it[:string] } (expect fn1).to eql '[1]' p2 = (pdf.find_text %r/support request/)[0] - fn2 = (text.slice p2[:order], 3).reduce('') {|accum, it| accum += it[:string] } + fn2 = (text.slice p2[:order], 3).reduce('') {|accum, it| accum + it[:string] } (expect fn2).to eql '[1]' - f1 = (pdf.find_text font_size: 8).reduce('') {|accum, it| accum += it[:string] } + f1 = (pdf.find_text font_size: 8).reduce('') {|accum, it| accum + it[:string] } (expect f1).to eql '[1] Only available if you have an active subscription.' end diff --git a/spec/formatted_text_formatter_spec.rb b/spec/formatted_text_formatter_spec.rb index da6acd2c..d8a33f9e 100644 --- a/spec/formatted_text_formatter_spec.rb +++ b/spec/formatted_text_formatter_spec.rb @@ -42,11 +42,11 @@ describe Asciidoctor::PDF::FormattedText::Formatter do end it 'should ignore unknown named entities' do - (expect { + (expect do output = subject.format '†' (expect output).to have_size 1 (expect output[0][:text]).to eql '†' - }).to log_message severity: :ERROR, message: '~failed to parse formatted text' + end).to log_message severity: :ERROR, message: '~failed to parse formatted text' end it 'should decode decimal character references in link href' do @@ -66,40 +66,40 @@ describe Asciidoctor::PDF::FormattedText::Formatter do context 'integration' do it 'should format constrained strong phrase' do pdf = to_pdf '*strong*', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['strong', 'NotoSerif-Bold'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(strong NotoSerif-Bold) end it 'should format unconstrained strong phrase' do pdf = to_pdf '**super**nova', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['super', 'NotoSerif-Bold'] - (expect pdf.text[1].values_at :string, :font_name).to eql ['nova', 'NotoSerif'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(super NotoSerif-Bold) + (expect pdf.text[1].values_at :string, :font_name).to eql %w(nova NotoSerif) end it 'should format constrained emphasis phrase' do pdf = to_pdf '_emphasis_', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['emphasis', 'NotoSerif-Italic'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(emphasis NotoSerif-Italic) end it 'should format unconstrained emphasis phrase' do pdf = to_pdf '__un__cool', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['un', 'NotoSerif-Italic'] - (expect pdf.text[1].values_at :string, :font_name).to eql ['cool', 'NotoSerif'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(un NotoSerif-Italic) + (expect pdf.text[1].values_at :string, :font_name).to eql %w(cool NotoSerif) end it 'should format constrained monospace phrase' do pdf = to_pdf '`monospace`', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['monospace', 'mplus1mn-regular'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(monospace mplus1mn-regular) end it 'should format unconstrained monospace phrase' do pdf = to_pdf '``install``ed', analyze: true - (expect pdf.text[0].values_at :string, :font_name).to eql ['install', 'mplus1mn-regular'] - (expect pdf.text[1].values_at :string, :font_name).to eql ['ed', 'NotoSerif'] + (expect pdf.text[0].values_at :string, :font_name).to eql %w(install mplus1mn-regular) + (expect pdf.text[1].values_at :string, :font_name).to eql %w(ed NotoSerif) end it 'should format superscript phrase' do pdf = to_pdf 'x^2^', analyze: true - (expect pdf.strings).to eql ['x', '2'] + (expect pdf.strings).to eql %w(x 2) text = pdf.text (expect text[0][:font_size]).to be > text[1][:font_size] (expect text[0][:y]).to be < text[1][:y] @@ -107,7 +107,7 @@ describe Asciidoctor::PDF::FormattedText::Formatter do it 'should format subscript phrase' do pdf = to_pdf 'O~2~', analyze: true - (expect pdf.strings).to eql ['O', '2'] + (expect pdf.strings).to eql %w(O 2) text = pdf.text (expect text[0][:font_size]).to be > text[1][:font_size] (expect text[0][:y]).to be > text[1][:y] @@ -488,7 +488,7 @@ describe Asciidoctor::PDF::FormattedText::Formatter do role_variable_border_color: 'ED398A', role_variable_border_offset: 1.25, role_variable_border_radius: 2, - role_variable_border_width: 1 + role_variable_border_width: 1, } to_file = to_pdf_file '[.variable]#counter#', 'text-formatter-inline-role-bg.pdf', pdf_theme: pdf_theme (expect to_file).to visually_match 'text-formatter-inline-role-bg.pdf' diff --git a/spec/formatted_text_transform_spec.rb b/spec/formatted_text_transform_spec.rb index d352050c..b656d6a7 100644 --- a/spec/formatted_text_transform_spec.rb +++ b/spec/formatted_text_transform_spec.rb @@ -85,7 +85,7 @@ describe Asciidoctor::PDF::FormattedText::Transform do it 'should apply inherited styles' do input = '<a href="https://asciidoctor.org">Asciidoctor</a>' parsed = parser.parse input - fragments = subject.apply parsed.content, [], { styles: [:bold].to_set } + fragments = subject.apply parsed.content, [], styles: [:bold].to_set (expect fragments).to have_size 1 (expect fragments[0][:text]).to eql 'Asciidoctor' (expect fragments[0][:styles].to_a).to eql [:bold] @@ -94,7 +94,7 @@ describe Asciidoctor::PDF::FormattedText::Transform do it 'should apply styles to inherited styles' do input = 'Go <strong>get</strong> them!' parsed = parser.parse input - fragments = subject.apply parsed.content, [], { styles: [:italic].to_set } + fragments = subject.apply parsed.content, [], styles: [:italic].to_set (expect fragments).to have_size 3 get_fragment = fragments.find {|it| it[:text] == 'get' } (expect get_fragment[:styles].to_a.sort).to eql [:bold, :italic] diff --git a/spec/hyphens_spec.rb b/spec/hyphens_spec.rb index b3f76ec5..55062662 100644 --- a/spec/hyphens_spec.rb +++ b/spec/hyphens_spec.rb @@ -77,7 +77,7 @@ describe 'Asciidoctor::PDF::Converter - Hyphens' do end it 'should not mangle formatting when hyphenating text' do - (expect { + (expect do pdf = to_pdf <<~'EOS', analyze: true :icons: font :hyphens: @@ -91,7 +91,7 @@ describe 'Asciidoctor::PDF::Converter - Hyphens' do (expect lines[0].count ?\u00ad).to eql 1 (expect lines[0]).to include ?\uf780 (expect lines[0]).to include ?\uf1b0 - }).to not_log_message + end).to not_log_message end it 'should set hyphenation language based on value of hyphens attribute' do diff --git a/spec/icon_spec.rb b/spec/icon_spec.rb index 850bc6ee..563ea4cc 100644 --- a/spec/icon_spec.rb +++ b/spec/icon_spec.rb @@ -48,7 +48,7 @@ describe 'Asciidoctor::PDF::Converter - Icon' do end it 'should not support icon set as prefix on icon name if explicit icon set is specified' do - (expect { + (expect do pdf = to_pdf <<~'EOS', analyze: true :icons: font @@ -56,7 +56,7 @@ describe 'Asciidoctor::PDF::Converter - Icon' do EOS wink_text = pdf.find_text ?\uf0ad (expect wink_text).to be_empty - }).to log_message severity: :WARN, message: 'fas-wrench is not a valid icon name in the fab icon set' + end).to log_message severity: :WARN, message: 'fas-wrench is not a valid icon name in the fab icon set' end it 'should reserve 1em of space for fw icon' do @@ -88,7 +88,7 @@ describe 'Asciidoctor::PDF::Converter - Icon' do ['icon:no-such-icon@fas[]', 'no such icon@fas'], ['icon:fas-no-such-icon[]', 'fas no such icon'], ].each do |macro, alt| - (expect { + (expect do pdf = to_pdf <<~EOS, analyze: true :icons: font @@ -97,12 +97,12 @@ describe 'Asciidoctor::PDF::Converter - Icon' do text = pdf.text (expect text).to have_size 1 (expect text[0][:string]).to eql %([#{alt}] will surely fail.) - }).to log_message severity: :WARN, message: 'no-such-icon is not a valid icon name in the fas icon set' + end).to log_message severity: :WARN, message: 'no-such-icon is not a valid icon name in the fas icon set' end end it 'should remap legacy icon name if icon set is not specified and report remapping' do - (expect { + (expect do pdf = to_pdf <<~'EOS', analyze: true :icons: font @@ -111,11 +111,11 @@ describe 'Asciidoctor::PDF::Converter - Icon' do hdd_text = pdf.find_text ?\uf0a0 (expect hdd_text).to have_size 1 (expect hdd_text[0][:font_name]).to eql 'FontAwesome5Free-Regular' - }).to log_message severity: :INFO, message: 'hdd-o icon found in deprecated fa icon set; using hdd from far icon set instead', using_log_level: :INFO + end).to log_message severity: :INFO, message: 'hdd-o icon found in deprecated fa icon set; using hdd from far icon set instead', using_log_level: :INFO end it 'should resolve non-legacy icon name if icon set is not specified and report icon set in which it was found' do - (expect { + (expect do pdf = to_pdf <<~'EOS', analyze: true :icons: font @@ -124,7 +124,7 @@ describe 'Asciidoctor::PDF::Converter - Icon' do wink_text = pdf.find_text ?\uf4da (expect wink_text).to have_size 1 (expect wink_text[0][:font_name]).to eql 'FontAwesome5Free-Regular' - }).to log_message severity: :INFO, message: 'smile-wink icon not found in deprecated fa icon set; using match found in far icon set instead', using_log_level: :INFO + end).to log_message severity: :INFO, message: 'smile-wink icon not found in deprecated fa icon set; using match found in far icon set instead', using_log_level: :INFO end it 'should apply styles from role to icon' do diff --git a/spec/image_spec.rb b/spec/image_spec.rb index c9b2b62c..52c551e8 100644 --- a/spec/image_spec.rb +++ b/spec/image_spec.rb @@ -11,41 +11,41 @@ describe 'Asciidoctor::PDF::Converter - Image' do end it 'should replace block image with alt text if image is missing' do - (expect { + (expect do pdf = to_pdf 'image::no-such-image.png[Missing Image]', analyze: true (expect pdf.lines).to eql ['[Missing Image] | no-such-image.png'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' end it 'should be able to customize formatting of alt text using theme' do pdf_theme = { - image_alt_content: '%{alt} (%{target})' + image_alt_content: '%{alt} (%{target})', # rubocop:disable Style/FormatStringToken } - (expect { + (expect do pdf = to_pdf 'image::no-such-image.png[Missing Image]', pdf_theme: pdf_theme, analyze: true (expect pdf.lines).to eql ['Missing Image (no-such-image.png)'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' end it 'should be able to customize formatting of alt text using theme' do pdf_theme = { - image_alt_content: '%{alt} (%{target})' + image_alt_content: '%{alt} (%{target})', # rubocop:disable Style/FormatStringToken } - (expect { + (expect do pdf = to_pdf 'image::no-such-image.png[Missing Image]', pdf_theme: pdf_theme, analyze: true (expect pdf.lines).to eql ['Missing Image (no-such-image.png)'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' end - it 'should warn instead of crash if block image is unreadable' do + it 'wip should warn instead of crash if block image is unreadable' do image_file = fixture_file 'logo.png' old_mode = (File.stat image_file).mode begin - (expect { - FileUtils.chmod 0000, image_file + (expect do + FileUtils.chmod 0o000, image_file pdf = to_pdf 'image::logo.png[Unreadable Image]', analyze: true (expect pdf.lines).to eql ['[Unreadable Image] | logo.png'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' ensure FileUtils.chmod old_mode, image_file end @@ -60,10 +60,10 @@ describe 'Asciidoctor::PDF::Converter - Image' do end it 'should replace inline image with alt text if image is missing' do - (expect { + (expect do pdf = to_pdf 'You cannot see that which is image:not-there.png[not there].', analyze: true (expect pdf.lines).to eql ['You cannot see that which is [not there].'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' end it 'should respect value of imagesdir if changed mid-document' do @@ -84,11 +84,11 @@ describe 'Asciidoctor::PDF::Converter - Image' do image_file = fixture_file 'logo.png' old_mode = (File.stat image_file).mode begin - (expect { - FileUtils.chmod 0000, image_file + (expect do + FileUtils.chmod 0o000, image_file pdf = to_pdf 'image:logo.png[Unreadable Image,16] Company Name', analyze: true (expect pdf.lines).to eql ['[Unreadable Image] Company Name'] - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' ensure FileUtils.chmod old_mode, image_file end @@ -124,9 +124,9 @@ describe 'Asciidoctor::PDF::Converter - Image' do end context 'Width' do - subject { + subject do asciidoctor_2_or_better? ? (Asciidoctor::Converter.create 'pdf') : (Asciidoctor::Converter::Factory.create 'pdf') - } + end it 'should resolve pdfwidth in % to pt' do attrs = { 'pdfwidth' => '25%' } @@ -370,20 +370,20 @@ describe 'Asciidoctor::PDF::Converter - Image' do it 'should fail to embed interlaced PNG image with warning' do { '::' => '[Interlaced PNG] | interlaced.png', ':' => '[Interlaced PNG]' }.each do |macro_delim, alt_text| - (expect { + (expect do pdf = to_pdf %(image#{macro_delim}interlaced.png[Interlaced PNG]), analyze: true (expect pdf.lines).to eql [alt_text] - }).to log_message severity: :WARN, message: %(could not embed image: #{fixture_file 'interlaced.png'}; PNG uses unsupported interlace method; install prawn-gmagick gem to add support) + end).to log_message severity: :WARN, message: %(could not embed image: #{fixture_file 'interlaced.png'}; PNG uses unsupported interlace method; install prawn-gmagick gem to add support) end end end context 'BMP' do it 'should warn and replace block image with alt text if image format is unsupported' do - (expect { + (expect do pdf = to_pdf 'image::waterfall.bmp[Waterfall,240]', analyze: true (expect pdf.lines).to eql ['[Waterfall] | waterfall.bmp'] - }).to log_message severity: :WARN, message: '~could not embed image' + end).to log_message severity: :WARN, message: '~could not embed image' end end @@ -498,10 +498,10 @@ describe 'Asciidoctor::PDF::Converter - Image' do context 'allow-uri-read' do it 'should warn if image is remote and allow-uri-read is not set' do - (expect { + (expect do pdf = to_pdf 'image::https://raw.githubusercontent.com/asciidoctor/asciidoctor-pdf/master/spec/fixtures/logo.png[Remote Image]', analyze: true (expect pdf.lines).to eql ['[Remote Image] | https://raw.githubusercontent.com/asciidoctor/asciidoctor-pdf/master/spec/fixtures/logo.png'] - }).to log_message severity: :WARN, message: '~allow-uri-read is not enabled; cannot embed remote image' + end).to log_message severity: :WARN, message: '~allow-uri-read is not enabled; cannot embed remote image' end it 'should read remote image if allow-uri-read is set' do @@ -512,10 +512,10 @@ describe 'Asciidoctor::PDF::Converter - Image' do end it 'should log warning if remote image cannot be fetched' do - (expect { + (expect do pdf = to_pdf 'image::http://example.org/no-such-image.png[No Such Image]', attribute_overrides: { 'allow-uri-read' => '' }, analyze: true (expect pdf.lines).to eql ['[No Such Image] | http://example.org/no-such-image.png'] - }).to log_message severity: :WARN, message: '~could not retrieve remote image: http://example.org/no-such-image.png; 404 Not Found' + end).to log_message severity: :WARN, message: '~could not retrieve remote image: http://example.org/no-such-image.png; 404 Not Found' end it 'should use image format specified by format attribute' do @@ -611,7 +611,7 @@ describe 'Asciidoctor::PDF::Converter - Image' do end it 'should use link in alt text if image is missing' do - (expect { + (expect do pdf = to_pdf 'image::no-such-image.png[Missing Image,link=https://example.org]' text = (pdf.page 1).text (expect text).to eql '[Missing Image] | no-such-image.png' @@ -620,7 +620,7 @@ describe 'Asciidoctor::PDF::Converter - Image' do link_annotation = annotations[0] (expect link_annotation[:Subtype]).to eql :Link (expect link_annotation[:A][:URI]).to eql 'https://example.org' - }).to log_message severity: :WARN, message: '~image to embed not found or not readable' + end).to log_message severity: :WARN, message: '~image to embed not found or not readable' end it 'should add link around inline image if link attribute is set' do diff --git a/spec/index_spec.rb b/spec/index_spec.rb index a8706e1a..3917c035 100644 --- a/spec/index_spec.rb +++ b/spec/index_spec.rb @@ -216,7 +216,7 @@ describe 'Asciidoctor::PDF::Converter - Index' do == Chapter B ((Asciidoctor)) is an AsciiDoc processor. - + == Chapter C If an element has an ((anchor)), you can link to it. @@ -228,7 +228,7 @@ describe 'Asciidoctor::PDF::Converter - Index' do index_pagenum = (pdf.find_text 'Index')[0][:page_number] index_page_lines = pdf.lines pdf.find_text page_number: index_pagenum terms = index_page_lines.select {|it| it.include? ',' }.map {|it| (it.split ',', 2)[0] } - (expect terms).to eql ['anchor', 'AsciiDoc', 'Asciidoctor', 'authoring'] + (expect terms).to eql %w(anchor AsciiDoc Asciidoctor authoring) end it 'should not combine range if same index entry occurs on sequential pages when media is screen' do diff --git a/spec/link_spec.rb b/spec/link_spec.rb index 5c424f34..94a385f0 100644 --- a/spec/link_spec.rb +++ b/spec/link_spec.rb @@ -61,7 +61,7 @@ describe 'Asciidoctor::PDF::Converter - Link' do it 'should reveal URL of link when media=print or media=prepress' do %w(print prepress).each do |media| - pdf = to_pdf <<~'EOS', attribute_overrides: { 'media' => 'print' }, analyze: true + pdf = to_pdf <<~'EOS', attribute_overrides: { 'media' => media }, analyze: true https://asciidoctor.org[Asciidoctor] is a text processor. EOS @@ -98,7 +98,7 @@ describe 'Asciidoctor::PDF::Converter - Link' do lines = pdf.lines (expect lines).to have_size 1 underline = lines[0] - pdf = to_pdf input, pdf_theme: pdf_theme, analyze: :true + pdf = to_pdf input, pdf_theme: pdf_theme, analyze: true link_text = (pdf.find_text 'https://asciidoctor.org')[0] (expect link_text[:font_color]).to eql underline[:color] (expect underline[:width]).to be_nil diff --git a/spec/list_spec.rb b/spec/list_spec.rb index 9cdb3ff1..83e49970 100644 --- a/spec/list_spec.rb +++ b/spec/list_spec.rb @@ -16,7 +16,7 @@ describe 'Asciidoctor::PDF::Converter - List' do '◦level two', '▪level three', '▪level four', - '•back to level one' + '•back to level one', ] (expect pdf.lines).to eql expected_lines @@ -807,7 +807,7 @@ describe 'Asciidoctor::PDF::Converter - List' do 'An implementation of the AsciiDoc processor in Ruby.', '2.', 'What is the answer to the Ultimate Question?', - '42' + '42', ] end @@ -948,7 +948,6 @@ describe 'Asciidoctor::PDF::Converter - List' do context 'Bibliography' do it 'should reference bibliography entry using ID in square brackets by default' do - pdf = to_pdf <<~EOS, analyze: true The recommended reading includes <<bar>>. diff --git a/spec/media_spec.rb b/spec/media_spec.rb index 4aa2d92c..aae14488 100644 --- a/spec/media_spec.rb +++ b/spec/media_spec.rb @@ -34,7 +34,7 @@ describe 'Asciidoctor::PDF::Converter - media' do (expect (pdf.page 1).text).to be_empty (expect (pdf.page 3).text).to eql 'Document Title' (expect (pdf.page 5).text).to eql 'Chapter Title' - # TODO add helper method to get content stream for page + # TODO: add helper method to get content stream for page title_page_contents = pdf.objects[(pdf.page 1).page_object[:Contents][0]].data (expect (title_page_contents.split ?\n).slice 0, 3).to eql ['q', '/DeviceRGB cs', '0.0 0.0 1.0 scn'] end diff --git a/spec/open_spec.rb b/spec/open_spec.rb index bc3ffb55..8d0c16be 100644 --- a/spec/open_spec.rb +++ b/spec/open_spec.rb @@ -10,9 +10,9 @@ describe 'Asciidoctor::PDF::Converter - Open' do [%unbreakable] -- To install Antora, open a terminal and type: - + $ npm i -g @antora/cli@2.2 @antora/site-generator-default@2.2 - + The `@` at the beginning of the package name is important. It tells `npm` that the `cli` package is located in the `antora` group. If you omit this character, `npm` will assume the package name is the name of a git repository on GitHub. @@ -35,9 +35,9 @@ describe 'Asciidoctor::PDF::Converter - Open' do [%unbreakable] -- To install Antora, open a terminal and type: - + $ npm i -g @antora/cli@2.2 @antora/site-generator-default@2.2 - + The `@` at the beginning of the package name is important. It tells `npm` that the `cli` package is located in the `antora` group. If you omit this character, `npm` will assume the package name is the name of a git repository on GitHub. diff --git a/spec/optimizer_spec.rb b/spec/optimizer_spec.rb index 47828d7e..b9249541 100644 --- a/spec/optimizer_spec.rb +++ b/spec/optimizer_spec.rb @@ -58,9 +58,9 @@ describe 'Asciidoctor::PDF::Optimizer' do it 'should use default quality if specified quality is not recognized' do input_file = Pathname.new example_file 'basic-example.adoc' - (expect { + (expect do to_pdf_file input_file, 'optimizer-fallback-quality.pdf', attribute_overrides: { 'optimize' => 'foobar' } - }).to not_raise_exception + end).to not_raise_exception end it 'should optimize PDF passed to asciidoctor-pdf-optimizer CLI', cli: true do diff --git a/spec/page_spec.rb b/spec/page_spec.rb index d5b6ecf0..ab18c90e 100644 --- a/spec/page_spec.rb +++ b/spec/page_spec.rb @@ -277,14 +277,14 @@ describe 'Asciidoctor::PDF::Converter - Page' do end it 'should not crash if background image is a URI and the allow-uri-read attribute is not set' do - (expect { + (expect do to_pdf <<~'EOS' = Document Title :page-background-image: image:https://example.org/bg.svg[] content EOS - }).to not_raise_exception & (log_message severity: :WARN, message: '~allow-uri-read is not enabled') + end).to not_raise_exception & (log_message severity: :WARN, message: '~allow-uri-read is not enabled') end it 'should set the background image using path specified in page-background-image attribute', visual: true do diff --git a/spec/paragraph_spec.rb b/spec/paragraph_spec.rb index c8b4aabc..0205957e 100644 --- a/spec/paragraph_spec.rb +++ b/spec/paragraph_spec.rb @@ -157,12 +157,12 @@ describe 'Asciidoctor::PDF::Converter - Paragraph' do EOS halfway_point = (pdf.page 1)[:size][0] * 0.5 - abstract_text_1 = pdf.find_text 'Enter stage right.' - (expect abstract_text_1).to have_size 1 - (expect abstract_text_1[0][:x]).to be > halfway_point - abstract_text_2 = pdf.find_text 'Mirror, stage left.' - (expect abstract_text_2).to have_size 1 - (expect abstract_text_2[0][:x]).to be < halfway_point + abstract_text1 = pdf.find_text 'Enter stage right.' + (expect abstract_text1).to have_size 1 + (expect abstract_text1[0][:x]).to be > halfway_point + abstract_text2 = pdf.find_text 'Mirror, stage left.' + (expect abstract_text2).to have_size 1 + (expect abstract_text2[0][:x]).to be < halfway_point end it 'should apply same line height to all paragraphs in abstract' do diff --git a/spec/pdf_info_spec.rb b/spec/pdf_info_spec.rb index a338a48b..a55dac58 100644 --- a/spec/pdf_info_spec.rb +++ b/spec/pdf_info_spec.rb @@ -179,7 +179,7 @@ describe 'Asciidoctor::PDF::Converter - PDF Info' do doctitle = 'Guide de démarrage rapide' pdf = to_pdf %(= #{doctitle}) (expect pdf.info[:Title]).to eql doctitle - encoded_doctitle = (pdf.objects[pdf.objects.trailer[:Info]])[:Title].unpack 'H*' + encoded_doctitle = pdf.objects[pdf.objects.trailer[:Info]][:Title].unpack 'H*' (expect encoded_doctitle).to eql (doctitle.encode Encoding::UTF_16).unpack 'H*' end end diff --git a/spec/running_content_spec.rb b/spec/running_content_spec.rb index 9e6cf9e4..bfea377e 100644 --- a/spec/running_content_spec.rb +++ b/spec/running_content_spec.rb @@ -97,28 +97,28 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do (expect pdf.find_text %r/^\d+$/).to be_empty end - it 'should add footer if theme extends base and footer height is set' do - pdf_theme = { - extends: 'base', - footer_height: 36, - } - pdf = to_pdf <<~'EOS', enable_footer: true, pdf_theme: pdf_theme, analyze: true - = Document Title - :doctype: book - - == Beginning - - == End - EOS - - pagenum_1_text = (pdf.find_text '1')[0] - pagenum_2_text = (pdf.find_text '2')[0] - (expect pagenum_1_text).not_to be_nil - (expect pagenum_1_text[:page_number]).to eql 2 - (expect pagenum_2_text).not_to be_nil - (expect pagenum_2_text[:page_number]).to eql 3 - (expect pagenum_1_text[:x]).to be > pagenum_2_text[:x] - end + it 'should add footer if theme extends base and footer height is set' do + pdf_theme = { + extends: 'base', + footer_height: 36, + } + pdf = to_pdf <<~'EOS', enable_footer: true, pdf_theme: pdf_theme, analyze: true + = Document Title + :doctype: book + + == Beginning + + == End + EOS + + pagenum1_text = (pdf.find_text '1')[0] + pagenum2_text = (pdf.find_text '2')[0] + (expect pagenum1_text).not_to be_nil + (expect pagenum1_text[:page_number]).to eql 2 + (expect pagenum2_text).not_to be_nil + (expect pagenum2_text[:page_number]).to eql 3 + (expect pagenum1_text[:x]).to be > pagenum2_text[:x] + end end context 'Header' do @@ -129,7 +129,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do header_line_height: 1, header_padding: [6, 1, 0, 1], header_recto_right_content: '({document-title})', - header_verso_right_content: '({document-title})' + header_verso_right_content: '({document-title})', } pdf = to_pdf <<~'EOS', enable_footer: true, pdf_theme: (build_pdf_theme theme_overrides), analyze: true @@ -163,7 +163,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do header_line_height: 1, header_padding: [6, 1, 0, 1], header_recto_right_content: '({document-title})', - header_verso_right_content: '({document-title})' + header_verso_right_content: '({document-title})', } pdf = to_pdf <<~'EOS', enable_footer: true, attribute_overrides: { 'noheader' => '' }, pdf_theme: (build_pdf_theme theme_overrides), analyze: true @@ -193,9 +193,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(i ii 1 2 3) end @@ -217,9 +216,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do EOS (expect pdf.find_text page_number: 1).to be_empty - pgnum_labels = (2.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (2.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(ii iii 1 2 3) end @@ -240,9 +238,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(i 1 2 3) end @@ -262,9 +259,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3) end @@ -284,9 +280,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << ((pdf.find_text page_number: page_number, y: 14.263)[-1] || {})[:string] - accum end (expect pgnum_labels).to eq [nil, 'ii', '1', '2', '3'] end @@ -307,9 +302,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << ((pdf.find_text page_number: page_number, y: 14.263)[-1] || {})[:string] - accum end (expect pgnum_labels).to eq %w(i 1 2 3) end @@ -328,9 +322,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << ((pdf.find_text page_number: page_number, y: 14.263)[-1] || {})[:string] - accum end (expect pgnum_labels).to eq [nil, '1', '2', '3'] end @@ -350,9 +343,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3) end @@ -372,9 +364,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(i 1 2 3) end @@ -394,9 +385,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3 4 5) end @@ -417,9 +407,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3 4) end @@ -439,9 +428,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3) end @@ -461,9 +449,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(i 1 2 3 4) end @@ -484,9 +471,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Third Chapter EOS - pgnum_labels = (1.upto pdf.pages.size).reduce([]) do |accum, page_number| + pgnum_labels = (1.upto pdf.pages.size).each_with_object([]) do |page_number, accum| accum << (pdf.find_text page_number: page_number, y: 14.263)[-1][:string] - accum end (expect pgnum_labels).to eq %w(1 2 3 4) end @@ -612,7 +598,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do header_line_height: 1, header_padding: 5, header_recto_right_content: '{page-number}', - header_verso_left_content: '{page-number}' + header_verso_left_content: '{page-number}', } pdf = to_pdf <<~'EOS', pdf_theme: (build_pdf_theme theme_overrides), analyze: true @@ -859,7 +845,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do == Chapter - #{40.times.map {|it| %(=== Section #{it + 1})}.join %(\n\n)} + #{40.times.map {|it| %(=== Section #{it + 1}) }.join %(\n\n)} EOS (expect pdf.find_text page_number: 4, string: 'Chapter').to have_size 1 @@ -964,7 +950,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do footer_verso_left_content: '({doctitle})', } - (expect { + (expect do pdf = to_pdf <<~'EOS', enable_footer: true, attribute_overrides: { 'doctitle' => 'The Chronicles of <Foo> & ¦' }, pdf_theme: (build_pdf_theme theme_overrides), analyze: true :doctype: book @@ -975,7 +961,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do running_text = pdf.find_text %(The Chronicles of <Foo> & \u00a6) (expect running_text).to have_size 1 - }).to not_log_message + end).to not_log_message end it 'should set document-title and document-subtitle based on doctitle' do @@ -1034,9 +1020,8 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do EOS footer_y = (pdf.find_text 'FOOTER')[0][:y] - titles_by_page = (pdf.find_text y: footer_y).reduce({}) do |accum, it| + titles_by_page = (pdf.find_text y: footer_y).each_with_object({}) do |it, accum| accum[it[:page_number]] = it[:string] unless it[:string] == 'FOOTER' - accum end (expect titles_by_page[2]).to eql '[Part I||]' (expect titles_by_page[3]).to eql '[Part I|Chapter A|Detail]' @@ -1306,7 +1291,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do EOS expected_running_content_by_page = { 1 => 'Document Title', 2 => 'Table of Contents', 3 => 'Preface', 4 => 'Chapter 1' } - running_content_by_page = (pdf.find_text y: 14.263).reduce({}) {|accum, text| accum[text[:page_number]] = text[:string]; accum } + running_content_by_page = (pdf.find_text y: 14.263).each_with_object({}) {|text, accum| accum[text[:page_number]] = text[:string] } (expect running_content_by_page).to eql expected_running_content_by_page end @@ -1332,7 +1317,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do [nil, 'Chapter 1. Beginning'], ['document', 'Chapter 1. Beginning'], ['toc', '1. Beginning'], - ['basic', 'Beginning'], + %w(basic Beginning), ].each do |(title_style, expected_title)| pdf_theme = pdf_theme.merge footer_title_style: title_style if title_style pdf = to_pdf input, pdf_theme: pdf_theme, enable_footer: true, analyze: true @@ -1347,7 +1332,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do pdf_theme = { footer_columns: '>50% <50%', footer_recto_left_content: %(image:#{fixture_file 'tux.png'}[fit=contain]), - footer_recto_right_content: %(image:#{fixture_file 'tux.png'}[fit=contain]) + footer_recto_right_content: %(image:#{fixture_file 'tux.png'}[fit=contain]), } to_file = to_pdf_file 'body', 'running-content-image-alignment.pdf', pdf_theme: pdf_theme, enable_footer: true @@ -1518,7 +1503,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do it 'should warn and replace image with alt text if image is not found' do [true, false].each do |block| - (expect { + (expect do pdf_theme = build_pdf_theme \ header_height: 36, header_recto_columns: '=100%', @@ -1528,7 +1513,7 @@ describe 'Asciidoctor::PDF::Converter - Running Content' do alt_text = pdf.find_text '[alt text]' (expect alt_text).to have_size 1 - }).to log_message severity: :WARN, message: %r(image to embed not found or not readable.*data/themes/no-such-image\.png$) + end).to log_message severity: :WARN, message: %r(image to embed not found or not readable.*data/themes/no-such-image\.png$) end end diff --git a/spec/section_spec.rb b/spec/section_spec.rb index 79ff2c86..57346bb1 100644 --- a/spec/section_spec.rb +++ b/spec/section_spec.rb @@ -494,10 +494,10 @@ describe 'Asciidoctor::PDF::Converter - Section' do == Chapter in Part II EOS - part_1_text = (pdf.find_text 'Part I')[0] - part_2_text = (pdf.find_text 'Part II')[0] - (expect part_1_text[:page_number]).to eql 2 - (expect part_2_text[:page_number]).to eql 2 + part1_text = (pdf.find_text 'Part I')[0] + part2_text = (pdf.find_text 'Part II')[0] + (expect part1_text[:page_number]).to eql 2 + (expect part2_text[:page_number]).to eql 2 end it 'should add break after part if heading-part-break-after key in theme is always' do @@ -516,14 +516,14 @@ describe 'Asciidoctor::PDF::Converter - Section' do == Chapter in Part II EOS - part_1_text = (pdf.find_text 'Part I')[0] - part_2_text = (pdf.find_text 'Part II')[0] - chapter_1_text = (pdf.find_text 'Chapter in Part I')[0] - chapter_2_text = (pdf.find_text 'Another Chapter in Part I')[0] - (expect part_1_text[:page_number]).to eql 2 - (expect chapter_1_text[:page_number]).to eql 3 - (expect chapter_2_text[:page_number]).to eql 3 - (expect part_2_text[:page_number]).to eql 4 + part1_text = (pdf.find_text 'Part I')[0] + part2_text = (pdf.find_text 'Part II')[0] + chapter1_text = (pdf.find_text 'Chapter in Part I')[0] + chapter2_text = (pdf.find_text 'Another Chapter in Part I')[0] + (expect part1_text[:page_number]).to eql 2 + (expect chapter1_text[:page_number]).to eql 3 + (expect chapter2_text[:page_number]).to eql 3 + (expect part2_text[:page_number]).to eql 4 end context 'Section indent' do diff --git a/spec/source_spec.rb b/spec/source_spec.rb index 33358d54..faf54c73 100644 --- a/spec/source_spec.rb +++ b/spec/source_spec.rb @@ -111,7 +111,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do end it 'should not crash if source-highlighter attribute is defined outside of document header' do - (expect { + (expect do to_pdf <<~'EOS' = Document Title @@ -122,7 +122,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do puts 'yo, world!' ---- EOS - }).not_to raise_exception + end).not_to raise_exception end end @@ -144,7 +144,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do end it 'should not crash if source-highlighter attribute is defined outside of document header' do - (expect { + (expect do to_pdf <<~'EOS' = Document Title @@ -155,7 +155,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do puts 'yo, world!' ---- EOS - }).not_to raise_exception + end).not_to raise_exception end it 'should expand tabs to preserve indentation' do @@ -195,7 +195,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do end it 'should not crash when adding indentation guards' do - (expect { + (expect do pdf = to_pdf <<~EOS, analyze: true :source-highlighter: pygments @@ -210,7 +210,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do (expect pdf.find_text %(\u00a0 hash:)).to have_size 1 (expect pdf.find_text %(\u00a0 key: )).to have_size 1 (expect pdf.find_text '"value"').to have_size 1 - }).not_to raise_exception + end).not_to raise_exception end it 'should expand tabs to preserve indentation' do @@ -232,7 +232,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do end it 'should not crash when aligning line numbers' do - (expect { + (expect do to_pdf <<~'EOS' :source-highlighter: pygments @@ -251,7 +251,7 @@ describe 'Asciidoctor::PDF::Converter - Source' do </urlset> ---- EOS - }).not_to raise_exception + end).not_to raise_exception end it 'should preserve space before callout on last line' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1e1b31f2..dcebd3a8 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -84,11 +84,10 @@ class EnhancedPDFTextInspector < PDF::Inspector def lines text = @text prev_y = nil - text.reduce [] do |accum, it| + text.each_with_object [] do |it, accum| current_line = prev_y && (prev_y - it[:y]).abs < 6 ? accum.pop : '' accum << %(#{current_line}#{it[:string]}) prev_y = it[:y] - accum end end @@ -108,18 +107,18 @@ class EnhancedPDFTextInspector < PDF::Inspector end # Tf - def set_text_font_and_size *params + def set_text_font_and_size *params # rubocop:disable Naming/AccessorMethodName @state.set_text_font_and_size(*params) @font_settings = { name: @fonts[params[0]], size: params[1], color: @color } end # scn (used for font color in SVG) - def set_color_for_nonstroking_and_special *params + def set_color_for_nonstroking_and_special *params # rubocop:disable Naming/AccessorMethodName @color = params.map {|it| '%02X' % (it.to_f * 255).round }.join end # SCN - def set_color_for_stroking_and_special *params + def set_color_for_stroking_and_special *params # rubocop:disable Naming/AccessorMethodName @color = params.map {|it| '%02X' % (it.to_f * 255).round }.join end @@ -161,13 +160,12 @@ class ImageInspector < PDF::Inspector def page= page @page_number = page.number - @image_xobjects = page.xobjects.reduce({}) do |accum, (name, xobject)| + @image_xobjects = page.xobjects.each_with_object({}) do |(name, xobject), accum| accum[name] = xobject if xobject.hash[:Subtype] == :Image - accum end end - def concatenate_matrix width, p2, p3, height, x, y + def concatenate_matrix width, _p2, _p3, height, x, y @width = width @height = height @x = x @@ -214,33 +212,30 @@ class LineInspector < PDF::Inspector end # SCN - def set_color_for_stroking_and_special *params + def set_color_for_stroking_and_special *params # rubocop:disable Naming/AccessorMethodName @color = params.map {|it| '%02X' % (it.to_f * 255).round }.join end # gs - def set_graphics_state_parameters ref + def set_graphics_state_parameters ref # rubocop:disable Naming/AccessorMethodName if (opacity = @graphic_states[ref][:ca]) @color += '%02X' % (opacity * 255).round end end # w - def set_line_width line_width + def set_line_width line_width # rubocop:disable Naming/AccessorMethodName @width = line_width end end RSpec.configure do |config| - config.before :suite do FileUtils.mkdir_p output_dir end config.after :suite do - unless (ENV.key? 'DEBUG') || config.reporter.failed_examples.find {|it| it.metadata[:visual] } - FileUtils.rm_r output_dir, force: true, secure: true - end + FileUtils.rm_r output_dir, force: true, secure: true unless (ENV.key? 'DEBUG') || config.reporter.failed_examples.find {|it| it.metadata[:visual] } end def asciidoctor_2_or_better? @@ -397,7 +392,7 @@ RSpec.configure do |config| def get_page_labels pdf objects = pdf.objects - Hash[*objects[pdf.catalog[:PageLabels]][:Nums]].reduce([]) {|accum, (idx, val)| accum[idx] = val[:P]; accum } + Hash[*objects[pdf.catalog[:PageLabels]][:Nums]].each_with_object([]) {|(idx, val), accum| accum[idx] = val[:P] } end def get_annotations pdf, page_num = nil @@ -405,7 +400,7 @@ RSpec.configure do |config| if page_num (pdf.page page_num).attributes[:Annots].to_a.map {|ref| objects[ref] } else - pdf.pages.reduce([]) {|accum, page| page.attributes[:Annots].to_a.each {|ref| accum << objects[ref] }; accum } + pdf.pages.each_with_object([]) {|page, accum| page.attributes[:Annots].to_a.each {|ref| accum << objects[ref] } } end end @@ -413,7 +408,7 @@ RSpec.configure do |config| if page_num (pdf.page page_num).xobjects.select {|_, candidate| candidate.hash[:Subtype] == :Image }.values else - pdf.pages.reduce([]) {|accum, page| page.xobjects.each {|_, candidate| candidate.hash[:Subtype] == :Image ? (accum << candidate) : accum }; accum } + pdf.pages.each_with_object([]) {|page, accum| page.xobjects.each {|_, candidate| candidate.hash[:Subtype] == :Image ? (accum << candidate) : accum } } end end @@ -473,11 +468,11 @@ RSpec.configure do |config| actual_image.height.times do |y| actual_image.row(y).each_with_index do |pixel, x| - diff << [x,y] unless pixel == reference_image[x,y] + diff << [x, y] unless pixel == reference_image[x, y] end end - if diff.length > 0 && difference + if !diff.empty? && difference x = diff.map {|xy| xy[0] } y = diff.map {|xy| xy[1] } actual_image.rect x.min, y.min, x.max, y.max, (ChunkyPNG::Color.rgb 0, 255, 0) diff --git a/spec/table_spec.rb b/spec/table_spec.rb index 9bf465dd..a8e8ee25 100644 --- a/spec/table_spec.rb +++ b/spec/table_spec.rb @@ -203,7 +203,7 @@ describe 'Asciidoctor::PDF::Converter - Table' do end it 'should use value of cellbgcolor attribute in table cell to override background color set by theme', visual: true do - to_file = to_pdf_file <<~'EOS','table-cellbgcolor-override.pdf', pdf_theme: { table_body_background_color: 'CCCCCC' } + to_file = to_pdf_file <<~'EOS', 'table-cellbgcolor-override.pdf', pdf_theme: { table_body_background_color: 'CCCCCC' } :attribute-undefined: drop [%autowidth,cols=3*] @@ -220,14 +220,14 @@ describe 'Asciidoctor::PDF::Converter - Table' do context 'Dimensions' do it 'should throw exception if no width is assigned to column' do - (expect { + (expect do to_pdf <<~'EOS' [cols=",50%,50%"] |=== | Column A | Column B | Column C |=== EOS - }).to raise_exception ::Prawn::Errors::CannotFit + end).to raise_exception ::Prawn::Errors::CannotFit end it 'should not fail to fit text in cell' do @@ -446,15 +446,15 @@ describe 'Asciidoctor::PDF::Converter - Table' do it 'should not split cells in head row across pages' do hard_line_break = %( +\n) filler = (['filler'] * 40).join hard_line_break - head_cell_1 = %w(this is a very tall cell in the head row of this table).join hard_line_break - head_cell_2 = %w(this is an even taller cell also in the head row of this table).join hard_line_break + head_cell1 = %w(this is a very tall cell in the head row of this table).join hard_line_break + head_cell2 = %w(this is an even taller cell also in the head row of this table).join hard_line_break pdf = to_pdf <<~EOS, analyze: true #{filler} [%header,cols=2*] |=== - |#{head_cell_1} - |#{head_cell_2} + |#{head_cell1} + |#{head_cell2} |body cell |body cell @@ -485,15 +485,15 @@ describe 'Asciidoctor::PDF::Converter - Table' do |=== EOS - cell_1_text = pdf.find_text 'all one line' - (expect cell_1_text).not_to be_empty - cell_2_text = pdf.find_text %r/^line (?:1|2)/ - (expect cell_2_text).to have_size 2 - (expect cell_2_text[0][:y]).to be > cell_2_text[1][:y] - cell_3_text = pdf.find_text %r/^paragraph (?:1|2)/ - (expect cell_3_text).to have_size 2 - (expect cell_3_text[0][:y]).to be > cell_3_text[1][:y] - (expect cell_3_text[0][:y] - cell_3_text[1][:y]).to be > (cell_2_text[0][:y] - cell_2_text[1][:y]) + cell1_text = pdf.find_text 'all one line' + (expect cell1_text).not_to be_empty + cell2_text = pdf.find_text %r/^line (?:1|2)/ + (expect cell2_text).to have_size 2 + (expect cell2_text[0][:y]).to be > cell2_text[1][:y] + cell3_text = pdf.find_text %r/^paragraph (?:1|2)/ + (expect cell3_text).to have_size 2 + (expect cell3_text[0][:y]).to be > cell3_text[1][:y] + (expect cell3_text[0][:y] - cell3_text[1][:y]).to be > (cell2_text[0][:y] - cell2_text[1][:y]) end it 'should normalize newlines and whitespace' do @@ -535,9 +535,8 @@ describe 'Asciidoctor::PDF::Converter - Table' do |=== EOS - lines_by_page = pdf.lines.reduce ::Hash.new do |accum, line| + lines_by_page = pdf.lines.each_with_object ::Hash.new do |line, accum| (accum[line.delete :page_number] ||= []) << line - accum end (expect lines_by_page[1]).to have_size 4 (2..3).each do |rownum| @@ -636,10 +635,10 @@ describe 'Asciidoctor::PDF::Converter - Table' do (expect pdf.lines.find {|l| l.include? '!' }).to be_nil (expect pdf.lines).to have_size 2 (expect pdf.lines[1]).to eql 'Nested table cell 1Nested table cell 2' - nested_cell_1 = (pdf.find_text 'Nested table cell 1')[0] - nested_cell_2 = (pdf.find_text 'Nested table cell 2')[0] - (expect nested_cell_1[:y]).to eql nested_cell_2[:y] - (expect nested_cell_1[:x]).to be < nested_cell_2[:x] + nested_cell1 = (pdf.find_text 'Nested table cell 1')[0] + nested_cell2 = (pdf.find_text 'Nested table cell 2')[0] + (expect nested_cell1[:y]).to eql nested_cell2[:y] + (expect nested_cell1[:x]).to be < nested_cell2[:x] end it 'should not fail to fit content in table cell and create blank page when margin bottom is 0' do diff --git a/spec/title_page_spec.rb b/spec/title_page_spec.rb index a1675d55..9961d4dd 100644 --- a/spec/title_page_spec.rb +++ b/spec/title_page_spec.rb @@ -44,7 +44,7 @@ describe 'Asciidoctor::PDF::Converter - Title Page' do body EOS - title_page_lines = pdf.lines(pdf.find_text page_number: 1) + title_page_lines = pdf.lines pdf.find_text page_number: 1 (expect title_page_lines).to eql ['Document Title', 'Doc Writer, Junior Writer'] end @@ -321,7 +321,7 @@ describe 'Asciidoctor::PDF::Converter - Title Page' do body EOS - title_page_lines = pdf.lines(pdf.find_text page_number: 1) + title_page_lines = pdf.lines pdf.find_text page_number: 1 (expect title_page_lines).to include %(Doc Writer \uf099) end diff --git a/spec/toc_spec.rb b/spec/toc_spec.rb index 2e733231..c791b548 100644 --- a/spec/toc_spec.rb +++ b/spec/toc_spec.rb @@ -82,9 +82,7 @@ describe 'Asciidoctor::PDF::Converter - TOC' do end (expect pdf.pages[1][:strings]).to include 'Chapter 1' (expect pdf.pages[1][:strings]).to include '2' - if attrs.include? 'preface-title' - (expect pdf.pages[2][:strings]).to include 'Preface' - end + (expect pdf.pages[2][:strings]).to include 'Preface' if attrs.include? 'preface-title' (expect pdf.pages[2][:strings]).to include 'This is the preface.' (expect pdf.pages[3][:strings]).to include 'Chapter 1' end @@ -582,8 +580,8 @@ describe 'Asciidoctor::PDF::Converter - TOC' do == Get Started _Quickly_ EOS - get_started_text = (pdf.find_text page_number: 2, string: %r/^Get Started/)[0] - quickly_text = (pdf.find_text page_number: 2, string: 'Quickly')[0] + get_started_text = (pdf.find_text page_number: 2, string: /^Get Started/)[0] + quickly_text = (pdf.find_text page_number: 2, string: 'Quickly')[0] (expect get_started_text[:font_name]).to eql 'NotoSerif-Bold' (expect quickly_text[:font_name]).to eql 'NotoSerif-Italic' end |
