Module: SolidusSeo::MetaDataBuilder

Extended by:
ActiveSupport::Concern
Includes:
Helpers::BaseHelper, Spree::BaseHelper
Defined in:
lib/solidus_seo/meta_data_builder.rb

Instance Method Summary collapse

Methods included from Helpers::BaseHelper

#breadcrumb_pairs, #plain_text, #taxon_breadcrumbs_jsonld

Instance Method Details

#get_meta_resourceObject



51
52
53
54
# File 'lib/solidus_seo/meta_data_builder.rb', line 51

def get_meta_resource
  # TODO: Expand as needed
  @product || @taxon
end

#render(*args) ⇒ Object



10
11
12
13
# File 'lib/solidus_seo/meta_data_builder.rb', line 10

def render(*args)
  
  super
end

#resource_meta_dataObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/solidus_seo/meta_data_builder.rb', line 31

def 
  object = get_meta_resource
  meta = {}

  if object.is_a? ActiveRecord::Base
    if object.respond_to? :to_seo
      meta = object.to_seo
    else
      meta_columns = object.class.column_names.select { |col_name| col_name.starts_with? 'meta_' }
      meta_columns.each do |meta_column|
        base_column_name = meta_column.gsub 'meta_', ''
        # with fallback: meta_description or description
        meta[base_column_name] = object.try(meta_column).presence || object.try(base_column_name).presence
      end
    end
  end

  meta.compact.deep_symbolize_keys
end

#set_meta_dataObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/solidus_seo/meta_data_builder.rb', line 15

def 
  # Default data
   = {
    reverse: custom_title.present?,
    title: title,
    og: {
      url: request.url,
      description: :description,
      title: :title,
    }
  }.deep_merge(current_store.to_seo.deep_symbolize_keys)
   .deep_merge()

  set_meta_tags 
end