Sha256: 363537a571cfa9e8306f10c70a04a250b9e104a4c0efe0401c7dae3ffebb7f56

Contents?: true

Size: 1.73 KB

Versions: 33

Compression:

Stored size: 1.73 KB

Contents

module PrometheeData
  extend ActiveSupport::Concern

  # Setter to serialize data as JSON
  def data=(value)
    value = JSON.parse value if value.is_a? String
    super(value)
  end

  # Getters and setters to get PAGE Title & Description
  def promethee_data_page_title
    data['attributes']['searchable_title']
  rescue
    ""
  end

  def promethee_data_page_title=(value)
    self.data['attributes']['searchable_title'] = value
  end

  def promethee_data_page_description
    data['attributes']['searchable_description']
  rescue
    ""
  end

  def promethee_data_page_description=(value)
    self.data['attributes']['searchable_description'] = value
  end

  # Getters to get TRANSLATION Title & Description
  def promethee_data_translation_title
    data['components'].first['attributes']['searchable_title']
  rescue
    ""
  end

  def promethee_data_translation_description
    data['components'].first['attributes']['searchable_description']
  rescue
    ""
  end


  def promethee_data_searchable
    promethee_extract_searchable data
  end

  protected

  include ActionView::Helpers::SanitizeHelper
  def promethee_extract_searchable(component)
    return '' if component.blank?
    searchable = ' '
    component['attributes'].each do |key, value|
      if key.starts_with? 'searchable_'
        clean_value = strip_tags value
        searchable += "#{clean_value} "
      end
    end if component.include? 'attributes'
    component['children'].each do |child|
      searchable += promethee_extract_searchable child
    end if component.include? 'children'
    # for translations
    component['components'].each do |child|
      searchable += promethee_extract_searchable child
    end if component.include? 'components'
    searchable
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
promethee-1.7.1 app/models/concerns/promethee_data.rb
promethee-1.7.0 app/models/concerns/promethee_data.rb
promethee-1.6.63 app/models/concerns/promethee_data.rb
promethee-1.6.62 app/models/concerns/promethee_data.rb
promethee-1.6.61 app/models/concerns/promethee_data.rb
promethee-1.6.60 app/models/concerns/promethee_data.rb
promethee-1.6.59 app/models/concerns/promethee_data.rb
promethee-1.6.58 app/models/concerns/promethee_data.rb
promethee-1.6.57 app/models/concerns/promethee_data.rb
promethee-1.6.56 app/models/concerns/promethee_data.rb
promethee-1.6.55 app/models/concerns/promethee_data.rb
promethee-1.6.54 app/models/concerns/promethee_data.rb
promethee-1.6.53 app/models/concerns/promethee_data.rb
promethee-1.6.52 app/models/concerns/promethee_data.rb
promethee-1.6.51 app/models/concerns/promethee_data.rb
promethee-1.6.50 app/models/concerns/promethee_data.rb
promethee-1.6.49 app/models/concerns/promethee_data.rb
promethee-1.6.48 app/models/concerns/promethee_data.rb
promethee-1.6.47 app/models/concerns/promethee_data.rb
promethee-1.6.46 app/models/concerns/promethee_data.rb