Class: MendixBridge::DSL::ModuleBuilder
- Inherits:
-
Object
- Object
- MendixBridge::DSL::ModuleBuilder
- Defined in:
- lib/mendix_bridge/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #entity(name, persistable: true, &block) ⇒ Object
- #enumeration(name, folder: nil, &block) ⇒ Object
-
#initialize(name) ⇒ ModuleBuilder
constructor
A new instance of ModuleBuilder.
- #microflow(name, returns: nil, folder: nil, &block) ⇒ Object
- #module_role(name, description: nil) ⇒ Object
- #page(name, title:, layout:, folder: nil, &block) ⇒ Object
- #result ⇒ Object
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
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
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 |