module SolidusSeo::Jsonld::Core

Public Instance Methods

to_jsonld() click to toggle source
# File lib/solidus_seo/jsonld/core.rb, line 4
def to_jsonld
  @jsonld_data ||= jsonld_data.delete_if { |_, v| v.blank? }.with_indifferent_access
end

Private Instance Methods

report_invalid_props(props) click to toggle source
# File lib/solidus_seo/jsonld/core.rb, line 20
def report_invalid_props(props)
  raise "#{self.class.name} jsonld definition is missing required properties: #{Array(props).join(', ')}"
end
validate_list(items, *required_props) click to toggle source
# File lib/solidus_seo/jsonld/core.rb, line 24
def validate_list(items, *required_props)
  Array(items).each do |it|
    validate_prop(it, *required_props)
  end
end
validate_prop(item, *required_props) click to toggle source
# File lib/solidus_seo/jsonld/core.rb, line 10
def validate_prop(item, *required_props)
  return {} if item.blank? # ignore empty props

  required_props.map(&:to_sym).each do |req|
    item.with_indifferent_access[req].presence || report_invalid_props(req)
  end

  item
end