Module: SitemapGenerator::LinkSet::LocationHelpers
- Included in:
- SitemapGenerator::LinkSet
- Defined in:
- lib/sitemap_generator/link_set.rb
Overview
Setters that propagate location configuration (host, paths, adapter) to the active sitemap and index files whenever a value changes on the LinkSet.
Instance Method Summary collapse
-
#compress ⇒ Object
Return the current compression setting.
-
#compress=(value) ⇒ Object
Set the value of the compress setting.
-
#create_index=(value, force = false) ⇒ Object
Set the value of
create_indexon the SitemapIndexLocation object of the SitemapIndexFile. -
#default_host=(value) ⇒ Object
Set the host name, including protocol, that will be used by default on each of your sitemap links.
-
#filename=(value) ⇒ Object
Set the filename base to use when generating sitemaps (and the sitemap index).
-
#namer ⇒ Object
Return the namer object.
-
#namer=(value) ⇒ Object
Set the namer to use to generate the sitemap (and index) file names.
-
#public_path ⇒ Object
Return a Pathname with the full path to the public directory.
-
#public_path=(value) ⇒ Object
Set the public_path.
-
#search_engines ⇒ Object
Return the hash of search engines.
-
#search_engines=(value) ⇒ Object
Set the search engines hash to a new hash of search engine names mapped to ping URLs (see ping_search_engines).
-
#sitemap_index_location ⇒ Object
Return a new
SitemapIndexLocationinstance with the current options included. -
#sitemap_location ⇒ Object
Return a new
SitemapLocationinstance with the current options included. -
#sitemaps_host=(value) ⇒ Object
Set the host name, including protocol, that will be used on all links to your sitemap files.
-
#sitemaps_path=(value) ⇒ Object
Set the sitemaps_path.
Instance Method Details
#compress ⇒ Object
Return the current compression setting. Its value determines which files will be gzip'ed. See the setter for documentation of its values.
651 652 653 |
# File 'lib/sitemap_generator/link_set.rb', line 651 def compress @compress end |
#compress=(value) ⇒ Object
Set the value of the compress setting.
Values:
* `true` - Boolean; compress all files
* `false` - Boolean; write out only uncompressed files
* `:all_but_first` - Symbol; leave the first file uncompressed but compress any remaining files.
The compression setting applies to groups too. So :all_but_first will have the same effect (the first
file in the group will not be compressed, the rest will). So if you require different behaviour for your
groups, pass in a :compress option e.g. group(:compress => false) { add('/link') }
643 644 645 646 647 |
# File 'lib/sitemap_generator/link_set.rb', line 643 def compress=(value) @compress = value @sitemap_index.location[:compress] = @compress if @sitemap_index @sitemap.location[:compress] = @compress if @sitemap end |
#create_index=(value, force = false) ⇒ Object
Set the value of create_index on the SitemapIndexLocation object of the
SitemapIndexFile.
Whether to create a sitemap index file. Supported values: true, false, :auto.
If true an index file is always created, regardless of how many links
are in your sitemap. If false an index file is never created.
If :auto an index file is created only if your sitemap has more than
one sitemap file.
607 608 609 610 611 612 613 614 615 616 |
# File 'lib/sitemap_generator/link_set.rb', line 607 def create_index=(value, force = false) # rubocop:disable Style/OptionalBooleanParameter @create_index = value # Allow overriding the protected status of the index when we are creating a group. # Because sometimes we need to force an index in that case. But generally we don't # want to allow people to mess with this value if the index is protected. return unless @sitemap_index && ((!@sitemap_index.finalized? && !@protect_index) || force) @sitemap_index.location[:create_index] = value end |
#default_host=(value) ⇒ Object
Set the host name, including protocol, that will be used by default on each
of your sitemap links. You can pass a different host in your options to add
if you need to change it on a per-link basis.
502 503 504 505 |
# File 'lib/sitemap_generator/link_set.rb', line 502 def default_host=(value) @default_host = value update_location_info(:host, value) end |
#filename=(value) ⇒ Object
Set the filename base to use when generating sitemaps (and the sitemap index).
Example
filename = :sitemap
Generates
sitemap.xml.gz, sitemap1.xml.gz, sitemap2.xml.gz, ...
552 553 554 555 |
# File 'lib/sitemap_generator/link_set.rb', line 552 def filename=(value) @filename = value self.namer = SitemapGenerator::SimpleNamer.new(@filename) end |
#namer ⇒ Object
Return the namer object. If it is not set, looks for it on the current sitemap and if there is no sitemap, creates a new one using the current filename.
629 630 631 |
# File 'lib/sitemap_generator/link_set.rb', line 629 def namer @namer ||= @sitemap&.location&.namer || SitemapGenerator::SimpleNamer.new(@filename) end |
#namer=(value) ⇒ Object
Set the namer to use to generate the sitemap (and index) file names. This should be an instance of SitemapGenerator::SimpleNamer
620 621 622 623 624 |
# File 'lib/sitemap_generator/link_set.rb', line 620 def namer=(value) @namer = value @sitemap.location[:namer] = value if @sitemap && !@sitemap.finalized? @sitemap_index.location[:namer] = value if @sitemap_index && !@sitemap_index.finalized? && !@protect_index end |
#public_path ⇒ Object
Return a Pathname with the full path to the public directory
522 523 524 |
# File 'lib/sitemap_generator/link_set.rb', line 522 def public_path @public_path ||= send(:public_path=, 'public/') end |
#public_path=(value) ⇒ Object
Set the public_path. This path gives the location of your public directory. The default is the public/ directory in your Rails root. Or if Rails is not found, it defaults to public/ in the current directory (of the process).
Example: 'tmp/' if you don't want to generate in public for some reason.
Set to nil to use the current directory.
514 515 516 517 518 519 |
# File 'lib/sitemap_generator/link_set.rb', line 514 def public_path=(value) @public_path = Pathname.new(SitemapGenerator::Utilities.append_slash(value)) @public_path = SitemapGenerator.app.root + @public_path if @public_path.relative? update_location_info(:public_path, @public_path) @public_path # rubocop:disable Lint/Void -- return value used by send(:public_path=) in the getter end |
#search_engines ⇒ Object
Return the hash of search engines.
567 568 569 |
# File 'lib/sitemap_generator/link_set.rb', line 567 def search_engines @search_engines || {} end |
#search_engines=(value) ⇒ Object
Set the search engines hash to a new hash of search engine names mapped to ping URLs (see ping_search_engines). If the value is nil it is converted to an empty hash.
Example
search_engines = { :google => "http://www.google.com/webmasters/sitemaps/ping?sitemap=%s" }
562 563 564 |
# File 'lib/sitemap_generator/link_set.rb', line 562 def search_engines=(value) @search_engines = value || {} end |
#sitemap_index_location ⇒ Object
Return a new SitemapIndexLocation instance with the current options included
586 587 588 589 590 591 592 593 594 595 596 597 |
# File 'lib/sitemap_generator/link_set.rb', line 586 def sitemap_index_location SitemapGenerator::SitemapLocation.new( host: sitemaps_host, namer: namer, public_path: public_path, sitemaps_path: @sitemaps_path, adapter: @adapter, verbose: verbose, create_index: @create_index, compress: @compress ) end |
#sitemap_location ⇒ Object
Return a new SitemapLocation instance with the current options included
572 573 574 575 576 577 578 579 580 581 582 583 |
# File 'lib/sitemap_generator/link_set.rb', line 572 def sitemap_location SitemapGenerator::SitemapLocation.new( host: sitemaps_host, namer: namer, public_path: public_path, sitemaps_path: @sitemaps_path, adapter: @adapter, verbose: verbose, compress: @compress, max_sitemap_links: max_sitemap_links ) end |
#sitemaps_host=(value) ⇒ Object
Set the host name, including protocol, that will be used on all links to your sitemap files. Useful when the server that hosts the sitemaps is not on the same host as the links in the sitemap.
Note that include_index will be turned off to avoid adding a link to a sitemap with
a different host than the other links.
540 541 542 543 |
# File 'lib/sitemap_generator/link_set.rb', line 540 def sitemaps_host=(value) @sitemaps_host = value update_location_info(:host, value) end |
#sitemaps_path=(value) ⇒ Object
Set the sitemaps_path. This path gives the location to write sitemaps to relative to your public_path. Example: 'sitemaps/' to generate your sitemaps in 'public/sitemaps/'.
529 530 531 532 |
# File 'lib/sitemap_generator/link_set.rb', line 529 def sitemaps_path=(value) @sitemaps_path = value update_location_info(:sitemaps_path, value) end |