вывод массива отображается на одной строке вместо отдельных строк - PullRequest
0 голосов
/ 06 апреля 2019

Я работаю с гемом docx, пытаюсь получить вывод, соответствующий формату, но у меня возникли некоторые проблемы.

Вывод элементов массива всегда отображается в одной строке, например: item 1 item 2 item 3

Я хочу, чтобы вывод отображался в одной строке для каждого, как это

item 1
item 2
item 3

Вот мой код

require 'docx'
require 'origami'
require 'nokogiri'
require 'date'
require 'libreconv'



todaysDate = Time.now.strftime("%Y%m%d")
todaysDateSigned = Time.now.strftime("%m/%d/%Y")

doc = Docx::Document.open('Change Request.docx')


puts '----------------------------'

puts 'Enter Client Name'
clientName = gets
clientName = clientName.strip

puts 'Enter Description'
description = gets
description = description.strip

puts 'Enter Hours'
hours = gets
hours = hours.strip

puts 'Enter Effects to other processes'
effects = gets
effects = effects.strip

puts 'process Name'
process = gets
process = process.strip


tasks = Array.new
puts 'Enter Needed Tasks'

loop do
  input = gets.chomp.capitalize
  break if input == ''
  tasks <<  input
end

tasks.join("\n")

tasks.each { |x|  doc.bookmarks['Tasks'].insert_text_after(x + "\n")}




doc.bookmarks['Description'].insert_text_after(description)
doc.bookmarks['Process'].insert_text_after(process)
doc.bookmarks['Date'].insert_text_after(todaysDateSigned)
doc.bookmarks['Date2'].insert_text_after(todaysDateSigned)
doc.bookmarks['Hours'].insert_text_after(hours)
doc.bookmarks['Effects'].insert_text_after(effects)

1 Ответ

0 голосов
/ 07 апреля 2019

Документация показывает, что используется метод insert_multiple_lines_after для создания нескольких строк из каждой записи в массиве, однако правильный метод называется insert_multiple_lines

Я изменил это:

loop do
  input = gets.chomp.capitalize
  break if input == ''
  tasks <<  input
end

tasks.join("\n")

tasks.each { |x|  doc.bookmarks['Tasks'].insert_text_after(x + "\n")}

на это:

loop do
  input = gets.chomp.capitalize
  break if input == ''
  input = ' - ' + input
  tasks <<  input
end



doc.bookmarks['Tasks'].insert_multiple_lines(tasks)
...