module AdSense::Rails::ActionView::Base

Public Instance Methods

ad_search_tag(ad_container_id, options) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 13
        def ad_search_tag(ad_container_id, options)
          # based on https://developers.google.com/custom-search-ads/docs/code-generator
          script = <<-SCRIPT.strip_heredoc
                 var pageOptions = {
                   'pubId': '#{AdSense.search_ad_client_id}',
                   'query': '#{get_query_for_search_ad(options)}',
                   'hl': 'en'
                 };

                var adblock1 = {
                  'container': '#{ad_container_id}',
                  'width': '#{options[:width]}'
                };
                new google.ads.search.Ads(pageOptions, adblock1);
          SCRIPT

          content_tag :div, class: "search_ad_wrapper #{options[:wrapper_class]}" do
            [content_tag(:div, '', id: ad_container_id),
             javascript_include_tag('http://www.google.com/adsense/search/ads.js'),
             javascript_tag { script }].join('').html_safe
          end
        end
ad_slot_tag(ad_slot = nil, options = {}) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 5
def ad_slot_tag(ad_slot = nil, options = {})
  adsense_opts  = get_ad_options_from_hash(options.merge!(ad_slot: ad_slot), false)
  wrapper_class = get_classes_for_ad_wrapper(options)
  adsense_opts  = get_ad_script_from_hash(adsense_opts)

  generate_ad_tag wrapper_class, adsense_opts
end

Protected Instance Methods

generate_ad_tag(wrapper_class, adsense_opts) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 87
def generate_ad_tag(wrapper_class, adsense_opts)
  # based on http://www.adsense-generator.com/
  content_tag :div, class: wrapper_class do
    [javascript_tag(adsense_opts), javascript_include_tag('http://pagead2.googlesyndication.com/pagead/show_ads.js')].join('').html_safe
  end
end
get_ad_options_from_hash(options, is_links_ad) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 50
def get_ad_options_from_hash(options, is_links_ad)
  ad_format = options[:format] || AdSense.default_ad_format
  width, height = AdSense::AdFormat.get_dimension(ad_format)
  ad_type = nil

  if options[:ad_slot].blank?
    add_type = options[:ad_type] || AdSense.default_ad_type
    ad_format_str = AdSense::AdFormat.ad_format_string(ad_format, is_links_ad)
  end
       
  options.merge! ad_type: ad_type, ad_format: ad_format
       
  adsense_opts = {
      google_ad_client: AdSense.ad_client_id,
      google_ad_slot:   options[:ad_slot],
      google_ad_width:  width,
      google_ad_height: height,
      google_ad_format: ad_format_str,
      google_ad_type:   add_type
  }
end
get_ad_script_from_hash(options) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 80
def get_ad_script_from_hash(options)
  options.map do |k, v|
    v = v.is_a?(String) ? "\"#{v}\"" : v
    "#{k} = #{v};" unless v.blank?
  end.compact.sort.join("\n")
end
get_classes_for_ad_wrapper(options) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 72
def get_classes_for_ad_wrapper(options)
  wrapper_class = "ad_sense_slot #{options[:wrapper_class]}"
  if options[:ad_slot].blank?
    wrapper_class << "#{options[:add_type]}_ad"
  end
  wrapper_class
end
get_query_for_search_ad(options) click to toggle source
# File lib/ad_sense/rails/action_view/base.rb, line 46
def get_query_for_search_ad(options) 
  options[:query] || AdSense.default_query_for_search_ad
end