Class: MendixBridge::DSL::MicroflowBuilder
- Inherits:
-
Object
- Object
- MendixBridge::DSL::MicroflowBuilder
- Defined in:
- lib/mendix_bridge/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #body(source) ⇒ Object
- #execute_role(role) ⇒ Object
-
#initialize(name, returns, folder) ⇒ MicroflowBuilder
constructor
A new instance of MicroflowBuilder.
- #parameter(name, type) ⇒ Object
- #result ⇒ Object
Constructor Details
#initialize(name, returns, folder) ⇒ MicroflowBuilder
Returns a new instance of MicroflowBuilder.
344 345 346 347 348 349 350 351 |
# File 'lib/mendix_bridge/dsl.rb', line 344 def initialize(name, returns, folder) @name = name.to_s @return_type = returns&.to_s @folder = folder&.to_s @parameters = [] @body = nil @execute_roles = [] end |
Class Method Details
.build(name, returns: nil, folder: nil, &block) ⇒ Object
338 339 340 341 342 |
# File 'lib/mendix_bridge/dsl.rb', line 338 def self.build(name, returns: nil, folder: nil, &block) builder = new(name, returns, folder) builder.instance_eval(&block) if block builder.result end |
Instance Method Details
#body(source) ⇒ Object
361 362 363 364 365 |
# File 'lib/mendix_bridge/dsl.rb', line 361 def body(source) raise ArgumentError, "microflow body is already declared" if @body @body = source.to_s.strip end |
#execute_role(role) ⇒ Object
367 368 369 370 371 372 |
# File 'lib/mendix_bridge/dsl.rb', line 367 def execute_role(role) role = role.to_s raise ArgumentError, "duplicate execute role: #{role}" if @execute_roles.include?(role) @execute_roles << role end |
#parameter(name, type) ⇒ Object
353 354 355 356 357 358 359 |
# File 'lib/mendix_bridge/dsl.rb', line 353 def parameter(name, type) if @parameters.any? { |parameter| parameter.name == name.to_s } raise ArgumentError, "duplicate microflow parameter: #{name}" end @parameters << Model::FlowParameter.new(name: name.to_s, type: type.to_s) end |
#result ⇒ Object
374 375 376 377 378 379 380 381 382 383 384 385 |
# File 'lib/mendix_bridge/dsl.rb', line 374 def result raise ArgumentError, "microflow #{@name} requires a body" if @body.nil? || @body.empty? Model::Microflow.new( name: @name, parameters: @parameters, return_type: @return_type, folder: @folder, body: @body, execute_roles: @execute_roles ) end |