module Columbus3::LeafletRenderer
renderer controls the transformation of a V900 tracks into a displayable format, whatever this means
Constants
- OUTPUT_FILENAME
Public Class Methods
show(hash)
click to toggle source
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
# File lib/columbus3/renderer/leaflet_renderer.rb, line 13 def self.show hash filename = hash[:filename] || OUTPUT_FILENAME files = hash[: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 and save to file File.open(filename, "w") do |file| file << renderer.result(binding) end end
to_javascript_file(filename, force = false)
click to toggle source
make a v900 track into a geojson file
# File lib/columbus3/renderer/leaflet_renderer.rb, line 34 def self.to_javascript_file filename, force = false target = to_javascript_filename filename if force or not File.exists? target # load the template template = File.join(File.dirname(__FILE__), "/../../html/track.js.erb") renderer = ERB.new(File.read(template)) # context: the track and the track's id @track = V900Track.new filename: filename @filename = filename # generate and save it to file File.open(target, "w") do |file| file << renderer.result(binding) end end end
to_javascript_filename(filename)
click to toggle source
# File lib/columbus3/renderer/leaflet_renderer.rb, line 54 def self.to_javascript_filename filename filename + ".js" end
to_javascript_varname(prefix, filename)
click to toggle source
# File lib/columbus3/renderer/leaflet_renderer.rb, line 62 def self.to_javascript_varname prefix, filename prefix + Sanitizer::sanitize(filename) end
to_leaflet_layername(filename)
click to toggle source
# File lib/columbus3/renderer/leaflet_renderer.rb, line 58 def self.to_leaflet_layername filename to_javascript_varname "layer_", Sanitizer::sanitize(filename) end