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