class Pwb::PagesSeeder

Public Class Methods

seed_page_basics!() click to toggle source

Called by this rake task: rake app:pwb:db:seed_pages sets model entry for each page

# File lib/pwb/pages_seeder.rb, line 23
def seed_page_basics!
  page_yml_filenames = [
    "sell.yml", "about.yml", "buy.yml",
    "rent.yml", "home.yml", "legal_notice.yml",
    "contact.yml", "privacy_policy.yml"
  ]

  page_yml_filenames.each do |page_yml_filename|
    seed_page page_yml_filename
  end
end
seed_page_parts!() click to toggle source

Called by this rake task: rake app:pwb:db:seed_pages sets model entry for each page_part but not actual content

# File lib/pwb/pages_seeder.rb, line 10
def seed_page_parts!
  page_parts_dir = Pwb::Engine.root.join('db', 'yml_seeds', 'page_parts')

  page_parts_dir.children.each do |file|
    if file.extname == ".yml"
      seed_page_part file
    end
  end
end

Protected Class Methods

seed_page(yml_file) click to toggle source
# File lib/pwb/pages_seeder.rb, line 38
def seed_page(yml_file)
  page_seed_file = Pwb::Engine.root.join('db', 'yml_seeds', 'pages', yml_file)
  page_yml = YAML.load_file(page_seed_file)
  # unless Pwb::Page.where(slug: page_yml[0]['slug']).count > 0
  #   Pwb::Page.create!(page_yml)
  # end

  page_record = Pwb::Page.find_by_slug(page_yml[0]['slug'])
  # unless Pwb::Page.where(slug: page_yml[0]['slug']).count > 0
  unless page_record.present?
    page_record = Pwb::Page.create!(page_yml[0])
  end


  # below sets the page title text from I18n translations
  # because setting the value in each page yml for each language
  # is not feasible
  I18n.available_locales.each do |locale|
    title_accessor = 'page_title_' + locale.to_s
    # if page_title has not been set for this locale
    next unless page_record.send(title_accessor).blank?
    translation_key = 'navbar.' + page_record.slug
    # get the I18n translation
    title_value = I18n.t(translation_key, locale: locale, default: nil)
    title_value ||= I18n.t(translation_key, locale: :en, default: 'Unknown')
    # in case translation cannot be found
    # take default page_title (English value)
    title_value ||= page_record.page_title
    # set title_value as page_title
    page_record.update_attribute title_accessor, title_value
  end
end
seed_page_part(page_part_seed_file) click to toggle source
# File lib/pwb/pages_seeder.rb, line 71
def seed_page_part(page_part_seed_file)
  Pwb::PagePart.create_from_seed_yml page_part_seed_file.basename.to_s
  # yml_file_contents = YAML.load_file(page_part_seed_file)
  # byebug
  # unless Pwb::PagePart.where({page_part_key: yml_file_contents[0]['page_part_key'], page_slug: yml_file_contents[0]['page_slug']}).count > 0
  #   Pwb::PagePart.create!(yml_file_contents)
  # end
end