class SitemapGenerator::Interpreter
Provide a class for evaluating blocks, making the URL helpers from the framework and API methods available to it.
Public Class Methods
Call with a block to evaluate a dynamic config. The only method exposed for you is `add` to add a link to the sitemap object attached to this interpreter.
Options¶ ↑
-
link_set
- aLinkSet
instance to use. Default is SitemapGenerator::Sitemap.
All other options are passed to the LinkSet
by setting them using accessor methods.
# File lib/sitemap_generator/interpreter.rb, line 25 def initialize(opts={}, &block) opts = SitemapGenerator::Utilities.reverse_merge(opts, :link_set => SitemapGenerator::Sitemap) @linkset = opts.delete :link_set @linkset.send(:set_options, opts) eval(&block) if block_given? end
Run the interpreter on a config file using the default SitemapGenerator::Sitemap
sitemap object.
Options¶ ↑
-
:config_file
- full path to the config file to evaluate. Default is config/sitemap.rb in your application's root directory.
All other options are passed to new
.
# File lib/sitemap_generator/interpreter.rb, line 73 def self.run(opts={}, &block) opts = opts.dup config_file = opts.delete(:config_file) config_file ||= SitemapGenerator.app.root + 'config/sitemap.rb' interpreter = self.new(opts) interpreter.instance_eval(File.read(config_file), config_file.to_s) interpreter end
Public Instance Methods
# File lib/sitemap_generator/interpreter.rb, line 32 def add(*args) @linkset.add(*args) end
# File lib/sitemap_generator/interpreter.rb, line 36 def add_to_index(*args) @linkset.add_to_index(*args) end
Evaluate the block in the interpreter. Pass :yield_sitemap => true to yield the Interpreter
instance to the blockā¦for old-style calling.
# File lib/sitemap_generator/interpreter.rb, line 56 def eval(opts={}, &block) if block_given? if opts[:yield_sitemap] yield @linkset else instance_eval(&block) end end end
Start a new group of sitemaps. Any of the options to SitemapGenerator.new may be passed. Pass a block with calls to add
to add links to the sitemaps.
All groups use the same sitemap index.
# File lib/sitemap_generator/interpreter.rb, line 44 def group(*args, &block) @linkset.group(*args, &block) end
Return the LinkSet
instance so that you can access it from within the `create` block without having to use the yield_sitemap option.
# File lib/sitemap_generator/interpreter.rb, line 50 def sitemap @linkset end