class Navigasmic::Builder::MapBuilder

Public Class Methods

new(context, name, options, &block) click to toggle source
Calls superclass method
# File lib/navigasmic/builders/map_builder.rb, line 31
def initialize(context, name, options, &block)
  super
  @options['xmlns'] ||= @config.xmlns
  @options['xmlns:xsi'] ||= @config.xmlns_xsi
  @options['xsi:schemaLocation'] ||= @config.schema_location
  @options[:changefreq] ||= @config.changefreq
end

Public Instance Methods

group(label = nil, options = {}, &block) click to toggle source
# File lib/navigasmic/builders/map_builder.rb, line 43
def group(label = nil, options = {}, &block)
  raise ArgumentError, "Missing block for group" unless block_given?
  return '' unless visible?(options)

  concat(capture(&block))
end
item(label, *args, &block) click to toggle source
# File lib/navigasmic/builders/map_builder.rb, line 50
def item(label, *args, &block)
  options = args.extract_options!
  options = flatten_and_eval_options(options)
  return '' unless visible?(options)

  item = Navigasmic::Item.new(label, extract_and_determine_link(label, options, *args), visible?(options), options)

  concat(capture(&block)) if block_given?
  return '' unless item.link?

  concat(structure_for(label, item.link, options))
end
render() click to toggle source
# File lib/navigasmic/builders/map_builder.rb, line 39
def render
  content_tag(@config.wrapper_tag, capture(&@definition), @options)
end

Private Instance Methods

structure_for(label, link, options, &block) click to toggle source
# File lib/navigasmic/builders/map_builder.rb, line 65
def structure_for(label, link, options, &block)
  content = content_tag(:loc, link_for(link, options))
  content << content_tag(:name, label)
  if opts = options.delete(@config.option_namespace)
    content << content_tag(:changefreq, opts[:changefreq] || @config.item_changefreq)
    content << content_tag(:lastmod, opts[:lastmod]) if opts.has_key?(:lastmod)
    content << content_tag(:priority, opt[:priority]) if opts.has_key?(:priority)
  end

  content_tag(@config.item_tag, content.html_safe)
end