Class: Travlrmap::SinatraApp

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/travlrmap/sinatra_app.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ SinatraApp

Returns a new instance of SinatraApp.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/travlrmap/sinatra_app.rb', line 4

def initialize(config)
  @config = config
  @config[:sets] ||= {}
  @map = @config[:map]
  @types = @config[:types]
  @sets = @config[:sets] || {}
  @js_map_update = false

  raise "The constant APPROOT should be set in config.ru to the directory your webserver is serving from" unless defined?(APPROOT)
  raise "The directory %s set in APPROOT does not exist" % APPROOT unless File.directory?(APPROOT)

  @map[:map_types] = ["hybrid", "roadmap", "satellite", "terrain", "osm"] unless @map[:map_types]
  @map[:default_map_type] = "roadmap" unless @map[:default_map_type]
  @map[:theme] = "css" unless @map[:theme]

  raise "Unknown theme %s" % @map[:theme] unless valid_themes.include?(@map[:theme])

  super()
end

Instance Method Details

#load_map(set = nil) ⇒ Object



82
83
84
85
# File 'lib/travlrmap/sinatra_app.rb', line 82

def load_map(set=nil)
  @points = Points.new(@types, @sets, @map)
  @points.load_points(set)
end

#set_map_vars(view, set = nil) ⇒ Object



87
88
89
90
91
92
93
94
95
96
# File 'lib/travlrmap/sinatra_app.rb', line 87

def set_map_vars(view, set=nil)
  @map_view = @config[:views][view]
  @zoom_control = @map[:zoom_control].nil? ? true : @map[:zoom_control]
  @map_type_control = @map[:map_type_control].nil? ? true : @map[:map_type_control]
  @street_view_control = @map[:street_view_control].nil? ? false : @map[:street_view_control]
  @overview_control = @map[:overview_control].nil? ? false : @map[:overview_control]
  @pan_control = @map[:pan_control].nil? ? true : @map[:pan_control]
  @js_map_update = true
  @active_set = set
end

#valid_themesObject



28
29
30
31
32
# File 'lib/travlrmap/sinatra_app.rb', line 28

def valid_themes
  ["cerulean", "cosmo", "cyborg", "darkly", "flatly", "journal",
   "lumen", "paper", "readable", "sandstone", "simplex", "slate",
   "spacelab", "superhero", "united", "yeti", "css"]
end