Module: SitemapClassMethods

Included in:
FiSeo
Defined in:
lib/acts_as_seoable/helpers/sitemap_helper.rb

Instance Method Summary collapse

Instance Method Details

#create_sitemap_seo_recordsObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/acts_as_seoable/helpers/sitemap_helper.rb', line 5

def create_sitemap_seo_records
  Rails.application.reload_routes!
  routes = Rails.application.routes.routes.select { |r| r.defaults.include? :sitemap}
  row_routes = Array.new

  routes.each do |route|
    next if route.defaults[:sitemap] != true || route.verb != 'GET'
    
    static = route.defaults[:static] == true
    row = SitemapSeo.find_by_sitemap_controller_and_sitemap_action(route.defaults[:controller], route.defaults[:action])
    if row.nil?
      new_row = SitemapSeo.create(sitemap_controller: route.defaults[:controller], sitemap_action: route.defaults[:action],
                                  status: false, static: static)
      row_routes << new_row
    else
      row.update(static: static)
      row.save
      row_routes << row
    end
  end

  SitemapSeo.all.each do |sitemap_seo|
    next if row_routes.include? sitemap_seo

    sitemap_seo.delete
  end
end