Class: Para::SeoTools::Skeleton::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/para/seo_tools/skeleton/site.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Site

Returns a new instance of Site.



8
9
10
# File 'lib/para/seo_tools/skeleton/site.rb', line 8

def initialize(options = {})
  @enable_logging = options[:enable_logging]
end

Instance Attribute Details

#enable_loggingObject (readonly)

Returns the value of attribute enable_logging.



6
7
8
# File 'lib/para/seo_tools/skeleton/site.rb', line 6

def enable_logging
  @enable_logging
end

Instance Method Details

#log(message) ⇒ Object

Log messages when you’re not in rails



42
43
44
# File 'lib/para/seo_tools/skeleton/site.rb', line 42

def log(message)
  Rails.logger.info(message) if enable_logging || !$0.end_with?('rails')
end

#max_pages_before_saveObject



46
47
48
49
50
51
52
# File 'lib/para/seo_tools/skeleton/site.rb', line 46

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) ⇒ Object



12
13
14
15
16
17
# File 'lib/para/seo_tools/skeleton/site.rb', line 12

def page(name, options = {} , &block)
  Skeleton::Page.new(name, options).tap do |page|
    pages << page
    save if pages.length == max_pages_before_save
  end
end

#pagesObject



19
20
21
# File 'lib/para/seo_tools/skeleton/site.rb', line 19

def pages
  @pages ||= []
end

#saveObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/para/seo_tools/skeleton/site.rb', line 23

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_idsObject



36
37
38
# File 'lib/para/seo_tools/skeleton/site.rb', line 36

def saved_pages_ids
  @saved_pages_ids ||= []
end