Class: MendixBridge::DSL::PageBuilder
- Inherits:
-
Object
- Object
- MendixBridge::DSL::PageBuilder
- Defined in:
- lib/mendix_bridge/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #content(source) ⇒ Object
-
#initialize(name, title, layout, folder) ⇒ PageBuilder
constructor
A new instance of PageBuilder.
- #parameter(name, type) ⇒ Object
- #result ⇒ Object
- #view_role(role) ⇒ Object
Constructor Details
#initialize(name, title, layout, folder) ⇒ PageBuilder
Returns a new instance of PageBuilder.
291 292 293 294 295 296 297 298 299 |
# File 'lib/mendix_bridge/dsl.rb', line 291 def initialize(name, title, layout, folder) @name = name.to_s @title = title.to_s @layout = layout.to_s @folder = folder&.to_s @parameters = [] @content = nil @view_roles = [] end |
Class Method Details
.build(name, title:, layout:, folder: nil, &block) ⇒ Object
285 286 287 288 289 |
# File 'lib/mendix_bridge/dsl.rb', line 285 def self.build(name, title:, layout:, folder: nil, &block) builder = new(name, title, layout, folder) builder.instance_eval(&block) if block builder.result end |
Instance Method Details
#content(source) ⇒ Object
309 310 311 312 313 |
# File 'lib/mendix_bridge/dsl.rb', line 309 def content(source) raise ArgumentError, "page content is already declared" if @content @content = source.to_s.strip end |
#parameter(name, type) ⇒ Object
301 302 303 304 305 306 307 |
# File 'lib/mendix_bridge/dsl.rb', line 301 def parameter(name, type) if @parameters.any? { |parameter| parameter.name == name.to_s } raise ArgumentError, "duplicate page parameter: #{name}" end @parameters << Model::FlowParameter.new(name: name.to_s, type: type.to_s) end |
#result ⇒ Object
322 323 324 325 326 327 328 329 330 331 332 333 334 |
# File 'lib/mendix_bridge/dsl.rb', line 322 def result raise ArgumentError, "page #{@name} requires content" if @content.nil? || @content.empty? Model::Page.new( name: @name, title: @title, layout: @layout, folder: @folder, parameters: @parameters, content: @content, view_roles: @view_roles ) end |
#view_role(role) ⇒ Object
315 316 317 318 319 320 |
# File 'lib/mendix_bridge/dsl.rb', line 315 def view_role(role) role = role.to_s raise ArgumentError, "duplicate view role: #{role}" if @view_roles.include?(role) @view_roles << role end |