Sha256: e3d34a8ee4c0270fec7b06877516d13be09c494d453a08a7c1e061a7b8d1b397
Contents?: true
Size: 1.29 KB
Versions: 18
Compression:
Stored size: 1.29 KB
Contents
module KirguduBase module DynamicPages class MenuItemBuilder < ::KirguduBase::DynamicPages::PageElementBuilder def initialize(&block) self.builder_options.merge!({ items: nil, link: nil, target: :same, controller_link: nil, label: nil }) super(nil, &block) end def link(value) self.builder_options[:link] = value end def target(value) self.builder_options[:target] = value end def label(value) self.builder_options[:label] = value end def items(&block) elements = ::KirguduBase::DynamicPages::MenuItemsBlockBuilder.new(&block).to_elements elements.each do |element| self.builder_options[:items] = [] unless self.builder_options[:items] self.builder_options[:items] << element end end def controller_link(&block) self.builder_options[:controller_link] = ::KirguduBase::DynamicPages::ControllerLinkBuilder.new(&block).to_element end def to_element element = ::KirguduBase::DynamicPages::MenuItem.new self.build_element(element) self.validate_generated_element(element) element end end end end
Version data entries
18 entries across 18 versions & 1 rubygems