class Para::SeoTools::Skeleton::Site

Attributes

default_page_options[R]
enable_logging[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 8
def initialize(options = {})
  @enable_logging = options.delete(:enable_logging)
  @default_page_options = options
end

Public Instance Methods

log(message) click to toggle source

Log messages when you're not in rails

# File lib/para/seo_tools/skeleton/site.rb, line 52
def log(message)
  Rails.logger.info(message) if enable_logging || !$0.end_with?('rails')
end
max_pages_before_save() click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 56
def max_pages_before_save
  @max_pages_before_save ||= if (param = ENV['SEO_TOOLS_MAX_PAGES_BEFORE_SAVE']).present?
    para.to_i
  else
    500
  end
end
page(name, options = {}, &block) click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 13
def page(name, options = {}, &block)
  options.reverse_merge!(default_page_options)

  Skeleton::PageBuilder.new(name, options).tap do |page|
    pages << page
    save if pages.length == max_pages_before_save
  end
end
pages() click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 29
def pages
  @pages ||= []
end
save() click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 33
def save
  log "   * Saving #{ pages.length } generated pages ..."

  ActiveRecord::Base.transaction do
    pages.each do |page|
      page.model.save!
      saved_pages_ids << page.model.id
    end
  end

  pages.clear
end
saved_pages_ids() click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 46
def saved_pages_ids
  @saved_pages_ids ||= []
end
with_params(params = {}, &block) click to toggle source
# File lib/para/seo_tools/skeleton/site.rb, line 22
def with_params(params = {}, &block)
  previous_default_page_options = default_page_options
  @default_page_options = default_page_options.dup.merge(params)
  block.call
  @default_page_options = previous_default_page_options
end