Ниже приведен метод в lib / Module, который я назвал cron_tasks.rb.
В кейсе указывается:
case quad
when "0"
Затем запускается этот тип кода.
79 #upper-left address
80 pdf.draw_text contact.first_name + " " + contact.last_name,
81 :at =>[(pdf.bounds.left + postcard_width - in2pt(2.75)), (pdf.bounds.top - in2pt(2.25))],
82 :size => 14
83
84 pdf.draw_text contact.address.street1,
85 :at =>[(pdf.bounds.left + postcard_width - in2pt(2.75)), (pdf.bounds.top - in2pt(2.25) - 20)],
86 :size => 14
87
88 pdf.draw_text contact.address.city + ", " + contact.address.state,
89 :at =>[(pdf.bounds.left + postcard_width - in2pt(2.75)), (pdf.bounds.top - in2pt(2.25) - 40)],
90 :size => 14
91
92 pdf.draw_text contact.address.zip,
93 :at =>[(pdf.bounds.left + postcard_width - in2pt(2.75)), (pdf.bounds.top - in2pt(2.25) - 60)],
94 :size => 14
Существует всего лишь небольшое смещение всего этого кода для разных когда:
when 1
....(same code)
when 2
....(same code)
when 3
....(same code)
Есть ли способ сделать все это позиционирование текста более СУХИМЫМ (возможно, self.position в этом модуле?), Чтобы я мог просто передать смещения?
Я печатаю адреса по четыре на большом листе бумаги, так что относительное местоположение одинаковое, мне просто нужно переместить его в каждый из четырех квадрантов.
Важно: трудная задача состоит в том, что когда я пытался использовать self.print_address, мне приходилось передавать так много переменных из основного метода ... фактически, я не смог выяснить, как добавить все они, потому что есть зависимости от других модулей ...