Sha256: e66e3907f76ce59e40a2f588991ecda77e85fdb9f5518e70c4a0ced47ce5ab75
Contents?: true
Size: 1.29 KB
Versions: 3
Compression:
Stored size: 1.29 KB
Contents
module SolidusSeo module MetaDataBuilder include Spree::BaseHelper include SolidusSeo::Helpers::BaseHelper def render(*args) set_meta_data super end 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 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 def get_meta_resource # TODO: Expand as needed @product || @taxon end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
solidus_seo-1.0.2 | lib/solidus_seo/meta_data_builder.rb |
solidus_seo-1.0.1 | lib/solidus_seo/meta_data_builder.rb |
solidus_seo-1.0.0 | lib/solidus_seo/meta_data_builder.rb |