Class: MendixBridge::DSL::NavigationMenuBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNavigationMenuBuilder

Returns a new instance of NavigationMenuBuilder.



186
187
188
# File 'lib/mendix_bridge/dsl.rb', line 186

def initialize
  @items = []
end

Instance Attribute Details

#itemsObject (readonly)

Returns the value of attribute items.



184
185
186
# File 'lib/mendix_bridge/dsl.rb', line 184

def items
  @items
end

Instance Method Details

Raises:

  • (ArgumentError)


190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/mendix_bridge/dsl.rb', line 190

def menu_item(caption, page: nil, microflow: nil, nanoflow: nil)
  targets = { "page" => page, "microflow" => microflow, "nanoflow" => nanoflow }
    .reject { |_action, target| target.nil? }
  raise ArgumentError, "menu item requires exactly one target" unless targets.length == 1

  action, target = targets.first
  @items << Model::NavigationItem.new(
    caption: caption.to_s,
    action:,
    target: target.to_s
  )
end