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
link_for(link, options)
click to toggle source
# File lib/navigasmic/builders/map_builder.rb, line 77 def link_for(link, options) host = options.delete(:host) || @context.request.host if link.is_a?(Hash) link[:host] ||= host elsif link[0] == '/' port = @context.request.port == 80 ? '' : ":#{@context.request.port}" link = "#{@context.request.protocol}#{host}#{port}#{link}" end url_for(link) end
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