module SolidusSeo::MetaDataBuilder
Public Instance Methods
get_meta_resource()
click to toggle source
# File lib/solidus_seo/meta_data_builder.rb, line 51 def get_meta_resource # TODO: Expand as needed @product || @taxon end
render(*args)
click to toggle source
Calls superclass method
# File lib/solidus_seo/meta_data_builder.rb, line 10 def render(*args) set_meta_data super end
resource_meta_data()
click to toggle source
# File lib/solidus_seo/meta_data_builder.rb, line 31 def resource_meta_data 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_data()
click to toggle source
# File lib/solidus_seo/meta_data_builder.rb, line 15 def set_meta_data # Default data meta_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(resource_meta_data) set_meta_tags meta_data end