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.



534
535
536
537
538
539
540
541
# File 'lib/mxrb/dsl/builder.rb', line 534

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



543
544
545
546
547
# File 'lib/mxrb/dsl/builder.rb', line 543

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



549
550
551
552
553
554
# File 'lib/mxrb/dsl/builder.rb', line 549

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