Class: MendixBridge::DSL::EnumerationBuilder
- Inherits:
-
Object
- Object
- MendixBridge::DSL::EnumerationBuilder
- Defined in:
- lib/mendix_bridge/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(name, folder) ⇒ EnumerationBuilder
constructor
A new instance of EnumerationBuilder.
- #result ⇒ Object
- #value(name, caption: nil) ⇒ Object
Constructor Details
#initialize(name, folder) ⇒ EnumerationBuilder
Returns a new instance of EnumerationBuilder.
395 396 397 398 399 |
# File 'lib/mendix_bridge/dsl.rb', line 395 def initialize(name, folder) @name = name.to_s @folder = folder&.to_s @values = [] end |
Class Method Details
.build(name, folder: nil, &block) ⇒ Object
389 390 391 392 393 |
# File 'lib/mendix_bridge/dsl.rb', line 389 def self.build(name, folder: nil, &block) builder = new(name, folder) builder.instance_eval(&block) if block builder.result end |
Instance Method Details
#result ⇒ Object
412 413 414 415 416 |
# File 'lib/mendix_bridge/dsl.rb', line 412 def result raise ArgumentError, "enumeration #{@name} requires at least one value" if @values.empty? Model::Enumeration.new(name: @name, folder: @folder, values: @values) end |
#value(name, caption: nil) ⇒ Object
401 402 403 404 405 406 407 408 409 410 |
# File 'lib/mendix_bridge/dsl.rb', line 401 def value(name, caption: nil) if @values.any? { |value| value.name == name.to_s } raise ArgumentError, "duplicate enumeration value: #{name}" end @values << Model::EnumerationValue.new( name: name.to_s, caption: (caption || name).to_s ) end |