Class: MendixBridge::DSL::NavigationBuilder
- Inherits:
-
Object
- Object
- MendixBridge::DSL::NavigationBuilder
- Defined in:
- lib/mendix_bridge/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #home_page(page, for_role:) ⇒ Object
-
#initialize(name, home_page, login_page, not_found_page) ⇒ NavigationBuilder
constructor
A new instance of NavigationBuilder.
- #menu(caption, &block) ⇒ Object
- #menu_item(caption, page: nil, microflow: nil, nanoflow: nil) ⇒ Object
- #result ⇒ Object
Constructor Details
#initialize(name, home_page, login_page, not_found_page) ⇒ NavigationBuilder
Returns a new instance of NavigationBuilder.
126 127 128 129 130 131 132 133 |
# File 'lib/mendix_bridge/dsl.rb', line 126 def initialize(name, home_page, login_page, not_found_page) @name = name.to_s @home_page = home_page.to_s @login_page = login_page&.to_s @not_found_page = not_found_page&.to_s @role_home_pages = [] @items = [] end |
Class Method Details
.build(name, home_page:, login_page: nil, not_found_page: nil, &block) ⇒ Object
120 121 122 123 124 |
# File 'lib/mendix_bridge/dsl.rb', line 120 def self.build(name, home_page:, login_page: nil, not_found_page: nil, &block) builder = new(name, home_page, login_page, not_found_page) builder.instance_eval(&block) if block builder.result end |
Instance Method Details
#home_page(page, for_role:) ⇒ Object
135 136 137 138 139 140 141 |
# File 'lib/mendix_bridge/dsl.rb', line 135 def home_page(page, for_role:) role = for_role.to_s raise ArgumentError, "duplicate role home page: #{role}" if @role_home_pages.any? { |entry| entry.role == role } @role_home_pages << Model::RoleHomePage.new(role:, page: page.to_s) end |
#menu(caption, &block) ⇒ Object
147 148 149 150 151 152 153 154 |
# File 'lib/mendix_bridge/dsl.rb', line 147 def (caption, &block) builder = NavigationMenuBuilder.new builder.instance_eval(&block) @items << Model::NavigationMenu.new( caption: caption.to_s, items: builder.items ) end |
#menu_item(caption, page: nil, microflow: nil, nanoflow: nil) ⇒ Object
143 144 145 |
# File 'lib/mendix_bridge/dsl.rb', line 143 def (caption, page: nil, microflow: nil, nanoflow: nil) @items << build_item(caption, page:, microflow:, nanoflow:) end |
#result ⇒ Object
156 157 158 159 160 161 162 163 164 165 |
# File 'lib/mendix_bridge/dsl.rb', line 156 def result Model::NavigationProfile.new( name: @name, home_page: @home_page, role_home_pages: @role_home_pages, login_page: @login_page, not_found_page: @not_found_page, items: @items ) end |