require 'erb' require 'yaml' module Columbus3 # renderer controls the transformation of a V900 tracks into a displayable format, # whatever this means module LeafletRenderer # apply the ERB in html/show.html.erb (which includes all the tracks to display) # and save it in the current directory, under _show.html def self.show filename, files template = File.join(File.dirname(__FILE__), "/../../html/show.html.erb") renderer = ERB.new(File.read(template)) # context: location of css and js + list of files to show bower_dir = File.join(File.dirname(__FILE__), "/../../../bower_components") @leaflet_providers = File.join(bower_dir, 'leaflet-providers/leaflet-providers.js') @leaflet_js = File.join(bower_dir, 'leaflet/dist/leaflet.js') @leaflet_css = File.join(bower_dir, 'leaflet/dist/leaflet.css') @files = files # generate the output html = renderer.result(binding) # save it to file File.open(filename, "w") do |file| file << html end end # make a v900 track into a leaflet layer cached to disk def self.to_leaflet filename, force = false target = to_leaflet_filename filename if force or not File.exists? target track = V900Track.new filename File.open(target, "w") do |file| id = sanitize filename file.printf <