Class: MendixBridge::DSL::ModuleBuilder

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ ModuleBuilder

Returns a new instance of ModuleBuilder.



211
212
213
214
215
216
217
218
# File 'lib/mendix_bridge/dsl.rb', line 211

def initialize(name)
  @name = name.to_s
  @entities = []
  @enumerations = []
  @microflows = []
  @pages = []
  @module_roles = []
end

Class Method Details

.build(name, &block) ⇒ Object



205
206
207
208
209
# File 'lib/mendix_bridge/dsl.rb', line 205

def self.build(name, &block)
  builder = new(name)
  builder.instance_eval(&block) if block
  builder.result
end

Instance Method Details

#entity(name, persistable: true, &block) ⇒ Object



220
221
222
223
224
225
226
# File 'lib/mendix_bridge/dsl.rb', line 220

def entity(name, persistable: true, &block)
  if @entities.any? { |entity| entity.name == name.to_s }
    raise ArgumentError, "duplicate entity: #{name}"
  end

  @entities << EntityBuilder.build(name, persistable:, &block)
end

#enumeration(name, folder: nil, &block) ⇒ Object



228
229
230
231
232
233
234
# File 'lib/mendix_bridge/dsl.rb', line 228

def enumeration(name, folder: nil, &block)
  if @enumerations.any? { |enumeration| enumeration.name == name.to_s }
    raise ArgumentError, "duplicate enumeration: #{name}"
  end

  @enumerations << EnumerationBuilder.build(name, folder:, &block)
end

#microflow(name, returns: nil, folder: nil, &block) ⇒ Object



236
237
238
239
240
241
242
243
244
245
246
247
# File 'lib/mendix_bridge/dsl.rb', line 236

def microflow(name, returns: nil, folder: nil, &block)
  if @microflows.any? { |microflow| microflow.name == name.to_s }
    raise ArgumentError, "duplicate microflow: #{name}"
  end

  @microflows << MicroflowBuilder.build(
    name,
    returns:,
    folder:,
    &block
  )
end

#module_role(name, description: nil) ⇒ Object

Raises:

  • (ArgumentError)


262
263
264
265
266
267
268
269
270
# File 'lib/mendix_bridge/dsl.rb', line 262

def module_role(name, description: nil)
  raise ArgumentError, "duplicate module role: #{name}" if
    @module_roles.any? { |role| role.name == name.to_s }

  @module_roles << Model::ModuleRole.new(
    name: name.to_s,
    description: description&.to_s
  )
end

#page(name, title:, layout:, folder: nil, &block) ⇒ Object

Raises:

  • (ArgumentError)


249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/mendix_bridge/dsl.rb', line 249

def page(name, title:, layout:, folder: nil, &block)
  raise ArgumentError, "duplicate page: #{name}" if
    @pages.any? { |page| page.name == name.to_s }

  @pages << PageBuilder.build(
    name,
    title:,
    layout:,
    folder:,
    &block
  )
end

#resultObject



272
273
274
275
276
277
278
279
280
281
# File 'lib/mendix_bridge/dsl.rb', line 272

def result
  Model::AppModule.new(
    name: @name,
    entities: @entities,
    enumerations: @enumerations,
    microflows: @microflows,
    pages: @pages,
    module_roles: @module_roles
  )
end