Created
December 15, 2010 01:01
-
-
Save sabril/741445 to your computer and use it in GitHub Desktop.
this is for print job
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
format.pdf { | |
table_of_content_pages = Hash.new | |
for specification in @job.specifications | |
specification_sections = SpecificationSection.specification_id_eq(specification.id) | |
for specification_section in specification_sections | |
pdf = Prawn::Document.new(:page_size => "LETTER", :top_margin => 0.5.in, :left_margin => 1.3.in, :bottom_margin => 0.in, :right_margin => 0.8.in ) | |
if report_article_number(specification_section.specification.division.short_number) != "00" | |
pdf.bounding_box([0, 700], :width => 460, :height => 610 ) do | |
pdf.text "SECTION #{specification_section.section.report_print_number}", :align => :center, :size => 9, :style => :bold | |
pdf.move_down(5) | |
pdf.text "#{specification_section.section.name.upcase}", :align => :center, :size => 9, :style => :bold | |
for part in @parts | |
pdf.move_down(10) | |
articles = PartArticle.part_id_eq(part.id).specification_section_id_eq(specification_section.id).all(:order => "articles.id ASC", :include => [:article, :specification_section, {:article_paragraphs => [:subparagraphs, :paragraph]}, :user_paragraphs]) | |
is_present = true | |
if articles.blank? | |
is_present = false | |
end | |
unless is_present | |
pdf.table([["PART #{part.id} #{part.name.upcase} - NOT USED"]], :cell_style => {:size => 9, :font_style => :bold}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 380 } | |
end | |
else | |
pdf.table([["PART #{part.id} - #{part.name.upcase}"]], :cell_style => {:size => 9, :font_style => :bold}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 380 } | |
end | |
end | |
a = 1 | |
for article in articles | |
if @job.show_notes | |
unless article.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["#{article.note}"]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 440 } | |
end | |
pdf.fill_color "000000" | |
end | |
end | |
pdf.table([["#{part.id}.#{report_article_number(a)}", article.article.name.upcase]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 380 } | |
end | |
b = 97 | |
for paragraph in article.article_paragraphs | |
if @job.show_notes | |
unless paragraph.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["","#{paragraph.note}"]], :cell_style => {:size => 9, :padding => 4}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 420 } | |
end | |
end | |
pdf.fill_color "000000" | |
end | |
pdf.table([["","#{b.chr.upcase}.",paragraph.paragraph.name]], :cell_style => {:size => 9, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 20 } | |
t.style(t.columns(2)) { |cell| cell.width = 380 } | |
end | |
c = 1 | |
for subparagraph in paragraph.subparagraphs | |
if @job.show_notes | |
unless subparagraph.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["","#{subparagraph.note}"]], :cell_style => {:size => 9, :padding => 4}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 55 } | |
t.style(t.columns(1)) { |cell| cell.width = 400 } | |
end | |
end | |
pdf.fill_color "000000" | |
end | |
pdf.table([["","#{c}.",convert_html(subparagraph.description)]], :cell_style => {:size => 9, :inline_format => true, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 55 } | |
t.style(t.columns(1)) { |cell| cell.width = 25 } | |
t.style(t.columns(2)) { |cell| cell.width = 380 } | |
end | |
c += 1 | |
end | |
b += 1 | |
end | |
a += 1 | |
end | |
end | |
attachments = SectionAttachment.specification_section_id_eq(specification_section.id) | |
if attachments.size > 0 | |
pdf.move_down(10) | |
pdf.text "ATTACHMENTS", :align => :center, :size => 9, :style => :bold | |
ind = 1 | |
end | |
for attachment in attachments | |
pdf.table([["#{ind}.","#{attachment.title}"]], :cell_style => {:size => 9, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 30 } | |
t.style(t.columns(1)) { |cell| cell.width = 380 } | |
end | |
ind = ind + 1 | |
end | |
pdf.move_down(10) | |
pdf.text "END OF SECTION", :align => :center, :size => 9, :style => :bold | |
table_of_content_pages[specification_section.id] = pdf.page_count | |
end # end of bounding box | |
pdf.page_count.times do |i| | |
pdf.go_to_page(i+1) | |
pdf.bounding_box([pdf.bounds.right - 245, pdf.bounds.bottom + 70], :width =>250, :align => :right) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left, pdf.bounds.bottom + 70], :width => 250, :align => :left) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_3, pdf)}", :size => 9, :align => :left | |
} | |
pdf.bounding_box([pdf.bounds.right - 240, pdf.bounds.top], :width =>250, :align => :right) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left + 3, pdf.bounds.top], :width =>250, :align => :left) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_3, pdf)}", :size => 9, :align => :left | |
} | |
if current_user.billing_plan.plan_type_id == 1 | |
pdf.bounding_box([pdf.bounds.left + 185, pdf.bounds.bottom + 70], :width => 300, :align => :left) { | |
pdf.text "www.myspecwriter.com", :size => 9, :align => :left | |
} | |
end | |
end | |
else | |
pdf.bounding_box([0, 700], :width => 460, :height => 610 ) do | |
pdf.table([["#{specification_section.section.report_print_number} #{specification_section.section.name.upcase}"]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 380 } | |
end | |
pdf.move_down(10) | |
@articles = UserArticle.find_all_by_specification_section_id(specification_section.id) | |
unless @articles.blank? | |
pdf.text "Table of Articles", :align => :center, :size => 9, :style => :bold | |
a = 1 | |
for article in @articles | |
pdf.table([["#{a}.01",article.name]], :cell_style => {:size => 9, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 380 } | |
end | |
a = a + 1 | |
end | |
end | |
attachments = SectionAttachment.specification_section_id_eq(specification_section.id) | |
if attachments.size > 0 | |
pdf.move_down(10) | |
pdf.text "Attachments", :align => :center, :size => 9, :style => :bold | |
ind = 1 | |
end | |
for attachment in attachments | |
pdf.table([["#{ind}.","#{attachment.title}"]], :cell_style => {:size => 9, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 25 } | |
t.style(t.columns(1)) { |cell| cell.width = 380 } | |
end | |
ind = ind + 1 | |
end | |
pdf.move_down(20) | |
unless @articles.blank? | |
a = 1 | |
for article in @articles | |
if @job.show_notes | |
unless article.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["#{article.note}"]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 440 } | |
end | |
pdf.fill_color "000000" | |
end | |
end | |
pdf.table([["#{a}.01",article.name]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 420 } | |
end | |
a += 1 | |
b = 97 | |
c = 1 | |
for paragraph in article.user_paragraphs | |
if @job.show_notes | |
unless paragraph.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["","#{paragraph.note}"]], :cell_style => {:size => 9, :padding => 4}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 10 } | |
t.style(t.columns(1)) { |cell| cell.width = 420 } | |
end | |
end | |
pdf.fill_color "000000" | |
end | |
pdf.table([["", "#{b.chr.upcase}.", convert_html(paragraph.paragraph)]], :cell_style => {:size => 9, :inline_format => true, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 10 } | |
t.style(t.columns(1)) { |cell| cell.width = 25 } | |
t.style(t.columns(2)) { |cell| cell.width = 420 } | |
end | |
for subparagraph in paragraph.user_subparagraphs | |
if @job.show_notes | |
unless subparagraph.note.blank? | |
pdf.fill_color "309030" | |
pdf.table([["","#{subparagraph.note}"]], :cell_style => {:size => 9, :padding => 4}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 400 } | |
end | |
end | |
pdf.fill_color "000000" | |
end | |
pdf.table([["","#{c}.",convert_html(subparagraph.description)]], :cell_style => {:size => 9, :inline_format => true, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 35 } | |
t.style(t.columns(1)) { |cell| cell.width = 25 } | |
t.style(t.columns(2)) { |cell| cell.width = 400 } | |
end | |
c += 1 | |
end | |
b += 1 | |
end | |
end | |
end | |
end | |
table_of_content_pages[specification_section.id] = pdf.page_count | |
pdf.page_count.times do |i| | |
pdf.go_to_page(i+1) | |
pdf.bounding_box([pdf.bounds.right - 245, pdf.bounds.bottom + 70], :width =>250, :align => :right) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left, pdf.bounds.bottom + 70], :width => 250, :align => :left) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.bottom_left_3, pdf)}", :size => 9, :align => :left | |
} | |
pdf.bounding_box([pdf.bounds.right - 240, pdf.bounds.top], :width =>250, :align => :right) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left + 3, pdf.bounds.top], :width =>250, :align => :left) { | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{specification_section.choose_option(@job.job_page_format.top_left_3, pdf)}", :size => 9, :align => :left | |
} | |
end | |
if current_user.billing_plan.plan_type_id == 1 | |
pdf.bounding_box([pdf.bounds.left + 185, pdf.bounds.bottom + 70], :width => 300, :align => :left) { | |
pdf.text "www.myspecwriter.com", :size => 9, :align => :left | |
} | |
end | |
end | |
File.open(dir + "/"+ specification_section.section.number+ ".pdf", "w") { |f| f.write pdf.render } | |
pdf = nil | |
end | |
end | |
pdf = Prawn::Document.new(:page_size => "LETTER", :top_margin => 0.5.in, :left_margin => 1.3.in, :bottom_margin => 0.in, :right_margin => 0.8.in ) | |
pdf.font "Helvetica" | |
pdf.bounding_box([0, 700], :width => 460, :height => 610 ) do | |
pdf.text "TABLE OF CONTENTS", :align => :center, :size => 9, :style => :bold | |
pdf.move_down(10) | |
for specification in @job.specifications | |
#pdf.text "DIVISION #{specification.division.search_number} - #{specification.division.name}".upcase, :style => :bold, :size => 9 | |
pdf.move_down(10) | |
pdf.table([[specification.division.modif_number, specification.division.name]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 65 } | |
t.style(t.columns(1)) { |cell| cell.width = 340 } | |
end | |
if(!specification.specification_sections.blank?) | |
specification.specification_sections.each do |item| | |
pdf.table([["","#{item.section.modif_number}",item.section.name,table_of_content_pages[item.id].to_s]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 65 } | |
t.style(t.columns(1)) { |cell| cell.width = 65 } | |
t.style(t.columns(2)) { |cell| cell.width = 300 } | |
t.style(t.columns(3)) { |cell| cell.width = 25 } | |
end | |
attachments = SectionAttachment.specification_section_id_eq(item.id) | |
if attachments.size > 0 | |
ind = 1 | |
for attachment in attachments | |
pdf.table([["","#{ind}","", "#{attachment.title}"]], :cell_style => {:size => 9, :padding => 3}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 65 } | |
t.style(t.columns(1)) { |cell| cell.width = 45 } | |
t.style(t.columns(2)) { |cell| cell.width = 20 } | |
t.style(t.columns(3)) { |cell| cell.width = 340 } | |
end | |
ind = ind + 1 | |
end | |
end | |
end | |
end | |
end | |
pdf.move_down(15) | |
pdf.text "END OF SECTION", :align => :center, :size => 9, :style => :bold | |
end | |
pdf.page_count.times do |i| | |
pdf.go_to_page(i+1) | |
pdf.bounding_box([pdf.bounds.right - 245, pdf.bounds.bottom + 70], :width =>250, :align => :right) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left, pdf.bounds.bottom + 70], :width => 250, :align => :left) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_3, pdf)}", :size => 9, :align => :left | |
} | |
pdf.bounding_box([pdf.bounds.right - 240, pdf.bounds.top], :width =>250, :align => :right) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left + 3, pdf.bounds.top], :width =>250, :align => :left) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_3, pdf)}", :size => 9, :align => :left | |
} | |
if current_user.billing_plan.plan_type_id == 1 | |
pdf.bounding_box([pdf.bounds.left + 185, pdf.bounds.bottom + 70], :width => 300, :align => :left) { | |
pdf.text "www.myspecwriter.com", :size => 9, :align => :left | |
} | |
end | |
end | |
#SECTION FOR NOTE CREATION | |
pdf = Prawn::Document.new(:page_size => "LETTER", :top_margin => 0.5.in, :left_margin => 1.3.in, :bottom_margin => 0.in, :right_margin => 0.8.in ) | |
pdf.font "Helvetica" | |
pdf.bounding_box([0, 700], :width => 460, :height => 610 ) do | |
pdf.text "NOTES", :align => :center, :size => 9, :style => :bold | |
for specification in @job.specifications | |
pdf.move_down(10) | |
pdf.table([[specification.division.modif_number, specification.division.name]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 50 } | |
t.style(t.columns(1)) { |cell| cell.width = 340 } | |
end | |
if(!specification.specification_sections.blank?) | |
specification.specification_sections.each do |item| | |
notes = SectionNote.specification_section_id_eq(item.id) | |
@attachments = SectionAttachment.specification_section_id_eq(item.id) | |
#get all attachments | |
if [email protected]? | |
@ccf = CloudFiles::Connection.new(CLOUD_CONFIG['username'],CLOUD_CONFIG['api_key']) | |
container = @ccf.container(as_container) | |
i = 1 | |
for attachment in @attachments | |
if container.object_exists?(attachment.asset.path) | |
object = container.object(attachment.asset.path) | |
tmp = File.open(dir + "/"+attachment.specification_section.section.number.to_s+""+i.to_s+".pdf", "w+") | |
tmp.syswrite(object.data) | |
i += 1 | |
end | |
end | |
end | |
if notes.size > 0 | |
pdf.table([["","#{item.section.modif_number}", "#{item.section.name}"]], :cell_style => {:size => 9}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 50 } | |
t.style(t.columns(1)) { |cell| cell.width = 65 } | |
t.style(t.columns(2)) { |cell| cell.width = 320 } | |
end | |
ind = 1 | |
for note in notes | |
pdf.table([["","","#{ind}.", "#{convert_html(note.note)}"]], :cell_style => {:size => 9, :inline_format => true}) do |t| | |
t.cells.borders = [] | |
t.style(t.columns(0)) { |cell| cell.width = 50 } | |
t.style(t.columns(1)) { |cell| cell.width = 65 } | |
t.style(t.columns(2)) { |cell| cell.width = 25 } | |
t.style(t.columns(3)) { |cell| cell.width = 300 } | |
end | |
ind = ind + 1 | |
end | |
end | |
end | |
end | |
end | |
pdf.move_down(15) | |
pdf.text "END OF SECTION", :align => :center, :size => 9, :style => :bold | |
end | |
pdf.page_count.times do |i| | |
pdf.go_to_page(i+1) | |
pdf.bounding_box([pdf.bounds.right - 245, pdf.bounds.bottom + 70], :width =>250, :align => :right) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left, pdf.bounds.bottom + 70], :width => 250, :align => :left) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.bottom_left_3, pdf)}", :size => 9, :align => :left | |
} | |
pdf.bounding_box([pdf.bounds.right - 240, pdf.bounds.top], :width =>250, :align => :right) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_1, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_2, pdf)}", :size => 9, :align => :right | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_right_3, pdf)}", :size => 9, :align => :right | |
} | |
pdf.bounding_box([pdf.bounds.left + 3, pdf.bounds.top], :width =>250, :align => :left) { | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_1, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_2, pdf)}", :size => 9, :align => :left | |
pdf.text "#{@job.choose_option(@job.job_page_format.top_left_3, pdf)}", :size => 9, :align => :left | |
} | |
if current_user.billing_plan.plan_type_id == 1 | |
pdf.bounding_box([pdf.bounds.left + 185, pdf.bounds.bottom + 70], :width => 300, :align => :left) { | |
pdf.text "www.myspecwriter.com", :size => 9, :align => :left | |
} | |
end | |
end | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment