Class: Gmaps4rails::JsBuilder::Datum

Inherits:
Object
  • Object
show all
Defined in:
lib/gmaps4rails/js_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(gmap_id, name, hash) ⇒ Datum

Returns a new instance of Datum.



96
97
98
99
# File 'lib/gmaps4rails/js_builder.rb', line 96

def initialize(gmap_id, name, hash)
  @gmap_id, @name, @js = gmap_id, name, Array.new
  @element_info = OpenStruct.new(hash)
end

Instance Method Details

#create_direction_jsObject



117
118
119
120
121
122
123
124
# File 'lib/gmaps4rails/js_builder.rb', line 117

def create_direction_js
  @js << "#{@gmap_id}.direction_conf.origin = '#{data["from"]}';"
  @js << "#{@gmap_id}.direction_conf.destination = '#{data["to"]}';"

  set_direction_variables

  @js << "#{@gmap_id}.create_direction();"
end

#create_jsObject



101
102
103
104
105
106
107
# File 'lib/gmaps4rails/js_builder.rb', line 101

def create_js
  if @name.to_sym == :direction
    create_direction_js
  else  
    create_standard_js
  end
end

#create_standard_jsObject



109
110
111
112
113
114
115
# File 'lib/gmaps4rails/js_builder.rb', line 109

def create_standard_js
  @js << "#{@gmap_id}.#{@name} = #{data};"

  set_configuration_variables

  @js << "#{@gmap_id}.create_#{@name}();"
end

#set_configuration_variablesObject



126
127
128
129
130
131
132
133
134
135
# File 'lib/gmaps4rails/js_builder.rb', line 126

def set_configuration_variables
  return unless options
  options.each do |option_key, option_value|
    @js << if option_key.to_sym == :raw
             "#{@gmap_id}.#{@name}_conf.#{option_key} = #{option_value};"
           else
             "#{@gmap_id}.#{@name}_conf.#{option_key} = #{option_value.to_json};"
           end	
  end
end

#set_direction_variablesObject



137
138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/gmaps4rails/js_builder.rb', line 137

def set_direction_variables
  return unless options
  options.each do |option_key, option_value|
    if option_key.to_sym == :waypoints
      waypoints = Array.new
      option_value.each do |waypoint|
        waypoints << { "location" => waypoint, "stopover" => true }.to_json
      end
      @js << "#{@gmap_id}.direction_conf.waypoints = [#{waypoints * (",")}];"
    else
      @js << "#{@gmap_id}.direction_conf.#{option_key} = #{option_value.to_json};"
    end
  end
end