Как упаковать несколько параметров в один

#ruby #prawn

#ruby #креветка

Вопрос:

Я использую Prawn для создания pdf. Чтобы сделать table , я делаю:

 table test_rows(test), :column_widths => [100, 200, 360] , amp;table_style
 

Есть ли какой-нибудь способ, который может позволить мне вставить proc table_style ? Я не хочу повторять column_widths и table_style в моем коде.

 def table_style
  return Proc.new{
    row(0).font_style = :bold
    columns(1..3).align = :center    
    self.row_colors = ["DDDDDD", "FFFFFF"]
    self.header = true      
  }
end
 

Комментарии:

1. Что вы подразумеваете под » Есть ли какой-нибудь способ, позволяющий мне поместить в table_style proc ? »

Ответ №1:

Похоже, что этот метод принимает три аргумента: данные, параметры и блок. Смотрите https://github.com/prawnpdf/prawn/blob/master/lib/prawn/table.rb

Если вы пытаетесь сохранить эти аргументы как временные переменные для повторного использования в других вызовах table, вы можете использовать что-то вроде:

 options = { :column_widths => [100, 200, 360] }
table_style = Proc.new { ... }

table(data1, options, amp;table_style)
table(data2, options, amp;table_style)