Module: Sinatra::APDM::Helpers

Defined in:
lib/apdm/sinatra.rb

Instance Method Summary collapse

Instance Method Details

#ad_techObject



16
17
18
# File 'lib/apdm/sinatra.rb', line 16

def ad_tech
  ad_tech_for(::APDM::CHANNELS.random_production_channel)
end

#ad_tech_api_jsObject



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/apdm/sinatra.rb', line 25

def ad_tech_api_js
  # This snippet is needed by the ad_tech scripts and should be included in the head tag of pages displaying ad_tech ads
  # Note: its an extract of code found in apdm JavaScript as per august 2012 and may be cause future breakage
  # It hurts but it works
  <<-js
  window.api = {"cookie": {
    "del": function (name,path,domain){var cookie=name+"="+((path)?";path="+path:"");cookie+=((domain)?";domain="+domain:"");cookie+=";expires=Thu, 01-Jan-1970 00:00:01 GMT";if(this.get(name)){document.cookie=cookie;}},
    "get": function (name){var dc=document.cookie;if(dc===""){return false;}},
    "isOn": function (){this.set("apiCookiesOnCheck","true",365);return(this.get("apiCookiesOnCheck")=="true");},
    "set": function (name,value,expires,path,domain,secure){var fDate=new Date();var exDate=fDate.getTime();exDate+=1000*3600*24*expires;fDate.setTime(exDate);name+="="+escape(value)+((expires)?"; expires="+fDate.toGMTString():"");name+=((path)?"; path="+path:"");name+=((domain)?"; domain="+domain:"");name+=((secure)?"; secure":"");document.cookie=name;}
  }};
  js
end

#ad_tech_for(channel) ⇒ Object



20
21
22
23
# File 'lib/apdm/sinatra.rb', line 20

def ad_tech_for(channel)
  @ad_tech_for ||= {}
  @ad_tech_for[channel.label] ||= ::APDM::AdTech.new(channel, :context_key => self.settings.ad_tech_context_prefix)
end

#current_channelObject



7
8
9
10
# File 'lib/apdm/sinatra.rb', line 7

def current_channel
  host = request.env['HTTP_X_FORWARDED_HOST'] || request.host
  ::APDM::Channel.find_by_domain(host) || ::APDM::Channel.find_by_domain("avisnavn.no")
end

#design_elementsObject



12
13
14
# File 'lib/apdm/sinatra.rb', line 12

def design_elements
  @design_elements ||= ::APDM::DesignElements.new(current_channel.label, :api_key => self.settings.design_elements_api_key)
end

#design_elements_css_pathObject



39
40
41
# File 'lib/apdm/sinatra.rb', line 39

def design_elements_css_path
  "#{request.script_name}/apdm-design-elements.css"
end