Module: ODDB::FiPDF
- Includes:
- DRb::DRbUndumped
- Defined in:
- ext/fipdf/src/fipdf.rb,
ext/fipdf/src/rules.rb,
ext/fipdf/src/format.rb,
ext/fipdf/test/rules_test.rb,
ext/fipdf/test/format_test.rb,
ext/fipdf/src/chapter_wrapper.rb,
ext/fipdf/src/fachinfo_writer.rb,
ext/fipdf/src/section_wrapper.rb,
ext/fipdf/src/substance_index.rb,
ext/fipdf/src/fachinfo_wrapper.rb,
ext/fipdf/src/paragraph_wrapper.rb,
ext/fipdf/test/chapter_wrapper_test.rb,
ext/fipdf/test/section_wrapper_test.rb,
ext/fipdf/test/substance_index_test.rb,
ext/fipdf/test/fachinfo_wrapper_test.rb,
ext/fipdf/test/paragraph_wrapper_test.rb
Defined Under Namespace
Classes: ChapterWrapper, FachinfoProxy, FachinfoRule, FachinfoWrapper, FachinfoWriter, FachinfoWriterProxy, Format, OrphanRule, ParagraphWrapper, Rule, SectionWrapper, SubstanceIndex, TestChapterWrapper, TestFachinfoWrapper, TestFormat, TestParagraphWrapper, TestSectionWrapper, TestSubstanceIndex, WidowRule
Constant Summary
collapse
- DATA_DIR =
File.expand_path('../data', File.dirname(__FILE__))
- PDF_PATH =
File.expand_path('downloads', DATA_DIR)
Class Method Summary
collapse
Class Method Details
.dictionary(language) ⇒ Object
84
85
86
87
|
# File 'ext/fipdf/src/fipdf.rb', line 84
def dictionary(language)
require 'text/hyphen'
::Text::Hyphen.new(:language => language.to_s)
end
|
.document(filename, language, &block) ⇒ Object
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'ext/fipdf/src/fipdf.rb', line 88
def document(filename, language, &block)
begin
writer = FachinfoWriter.new :language => language
writer.hyphenator = dictionary(language)
pdf = FachinfoWriterProxy.new(writer)
block.call(pdf)
writer.save_as filename
$stdout.flush
rescue Exception => e
puts e
puts e.backtrace
ensure
GC.start
end
''
end
|
.write_pdf(fachinfo_ids, language, path) ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'ext/fipdf/src/fipdf.rb', line 106
def write_pdf(fachinfo_ids, language, path)
fachinfos = fachinfo_ids.collect do |id| ODBA.cache.fetch id end
fachinfos = fachinfos.sort_by { |fachinfo|
ODDB.search_term(fachinfo.send(language).name).downcase
}
total = fachinfos.size
puts "Total: #{total} fachinfos to write"
document(path, language) { |document|
start_time = Time.new
fachinfos.each_with_index { |fachinfo, idx|
puts "checking Fachinfo: (#{idx}/#{total})"
if(fachinfo.registrations.any? { |reg| reg.public_package_count > 0 })
puts "writing Fachinfo: (#{idx}/#{total})"
proxy = FachinfoProxy.new(fachinfo, language)
document.write_fachinfo(proxy) if(proxy.first_chapter)
puts "done"
end
}
end_time = Time.new
document.write_substance_index
puts "Fachinfos took #{end_time - start_time} seconds or #{(end_time - start_time) / 60} minutes"
puts "closing writer"
}
puts "written all pdfs"
end
|