What I Learned Today
- Rails 2.3 is released! Looking forward to upgrading.
- Object.tap is rather nifty. Available in Ruby 1.8.7, 1.9, and now, wherever you're using Rails 2.3.
- I figured out how to call Scala code from JRuby:
include Java
require "/usr/local/share/scala/lib/scala-library.jar"
Dir[ROOT + '/pdf_maker/target/fs/*.jar'].each do |jar|
require jar
end
Dir[ROOT + '/pdf_maker/target/classes/*.class'].each do |java_class|
require File.join(File.dirname(java_class), File.basename(java_class, ".class"))
end
get '/' do
@pdfs = Dir[ROOT + '/pdf_server/public/pdf/*.pdf'].map { |fn| File.basename(fn) }
render :erb, :index
end
post '/' do
dir = ROOT + "/pdf_server"
md_filename = params[:markdown_doc][:filename]
basename = File.basename(md_filename, File.extname(md_filename))
html_filename = dir + "/public/html/#{basename}.html"
pdf_filename = dir + "/public/pdf/#{basename}.pdf"
FileUtils.mkdir_p(dir + '/public/html')
FileUtils.mkdir_p(dir + '/public/pdf')
md = Maruku.new(params[:markdown_doc][:tempfile].read)
File.open(html_filename, 'w') do |html|
html.puts md.to_html_document
end
pdf_maker = Java::PDFMaker.new(html_filename)
pdf_maker.create_pdf(pdf_filename)
redirect '/'
end
Published: