class ActiveSeo::Contextualizer

Public Class Methods

new(record) click to toggle source
# File lib/active_seo/contextualizer.rb, line 5
def initialize(record)
  @record    = record
  @config    = record.class.seo_config
  @opengraph = config.opengraph.merge(model_og_meta)
  @twitter   = config.twitter.merge(model_twitter_meta)
end

Public Instance Methods

og_meta() click to toggle source
# File lib/active_seo/contextualizer.rb, line 12
def og_meta
  parse_meta(opengraph).deep_symbolize_keys
end
twitter_meta() click to toggle source
# File lib/active_seo/contextualizer.rb, line 16
def twitter_meta
  parse_meta(twitter).deep_symbolize_keys
end

Private Instance Methods

call_record_proc(proc_method) click to toggle source
# File lib/active_seo/contextualizer.rb, line 55
def call_record_proc(proc_method)
  proc_method.call record
end
get_record_value(attribute) click to toggle source
# File lib/active_seo/contextualizer.rb, line 51
def get_record_value(attribute)
  try(attribute) || record.try(attribute)
end
parse_meta(options) click to toggle source
# File lib/active_seo/contextualizer.rb, line 22
def parse_meta(options)
  meta = {}

  if options.is_a? Hash
    options.each do |key, value|
      meta[key] = parse_values(key, value)
    end
  else
    meta[key] = parse_values(key, value)
  end

  meta
end
parse_values(key, value) click to toggle source
# File lib/active_seo/contextualizer.rb, line 36
def parse_values(key, value)
  data = nil

  case value
  when Symbol
    data = get_record_value value
  when Proc
    data = call_record_proc value
  else
    data = value
  end

  data
end