Class: Mxrb::Dsl::NavigationMenuItemBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/dsl/builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(caption, page: nil, microflow: nil, icon: nil, translations: {}) ⇒ NavigationMenuItemBuilder

Returns a new instance of NavigationMenuItemBuilder.



615
616
617
618
619
620
621
622
# File 'lib/mxrb/dsl/builder.rb', line 615

def initialize(caption, page: nil, microflow: nil, icon: nil, translations: {})
  @caption = normalize_caption(caption)
  @caption.merge!(translations.to_h.transform_keys(&:to_s).transform_values(&:to_s))
  @page = page&.to_s
  @microflow = microflow&.to_s
  @icon = icon
  @items = []
end

Instance Method Details

#item(caption, page: nil, microflow: nil, icon: nil, translations: {}, &block) ⇒ Object



624
625
626
627
628
# File 'lib/mxrb/dsl/builder.rb', line 624

def item(caption, page: nil, microflow: nil, icon: nil, translations: {}, &block)
  child = self.class.new(caption, page:, microflow:, icon:, translations:)
  child.instance_eval(&block) if block
  @items << child.to_h
end

#to_hObject



630
631
632
633
634
635
# File 'lib/mxrb/dsl/builder.rb', line 630

def to_h
  {
    caption: @caption, page: @page, microflow: @microflow,
    icon: @icon, items: @items
  }
end