Class: Para::SeoTools::Skeleton::Site
- Inherits:
-
Object
- Object
- Para::SeoTools::Skeleton::Site
- Defined in:
- lib/para/seo_tools/skeleton/site.rb
Instance Attribute Summary collapse
-
#default_page_options ⇒ Object
readonly
Returns the value of attribute default_page_options.
-
#enable_logging ⇒ Object
readonly
Returns the value of attribute enable_logging.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Site
constructor
A new instance of Site.
-
#log(message) ⇒ Object
Log messages when you’re not in rails.
- #max_pages_before_save ⇒ Object
- #page(name, options = {}, &block) ⇒ Object
- #pages ⇒ Object
- #save ⇒ Object
- #saved_pages_ids ⇒ Object
- #with_params(params = {}, &block) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Site
Returns a new instance of Site.
8 9 10 11 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 8 def initialize( = {}) @enable_logging = .delete(:enable_logging) @default_page_options = end |
Instance Attribute Details
#default_page_options ⇒ Object (readonly)
Returns the value of attribute default_page_options.
6 7 8 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 6 def @default_page_options end |
#enable_logging ⇒ Object (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
52 53 54 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 52 def log() Rails.logger.info() if enable_logging || !$0.end_with?('rails') end |
#max_pages_before_save ⇒ Object
56 57 58 59 60 61 62 |
# 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) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 13 def page(name, = {} , &block) .reverse_merge!() Skeleton::PageBuilder.new(name, ).tap do |page| pages << page save if pages.length == max_pages_before_save end end |
#pages ⇒ Object
29 30 31 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 29 def pages @pages ||= [] end |
#save ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# 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 ⇒ Object
46 47 48 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 46 def saved_pages_ids @saved_pages_ids ||= [] end |
#with_params(params = {}, &block) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/para/seo_tools/skeleton/site.rb', line 22 def with_params(params = {}, &block) = @default_page_options = .dup.merge(params) block.call @default_page_options = end |