Module: Mxrb

Defined in:
lib/mxrb.rb,
lib/mxrb/oql.rb,
lib/mxrb/doctor.rb,
lib/mxrb/errors.rb,
lib/mxrb/writer.rb,
lib/mxrb/compare.rb,
lib/mxrb/version.rb,
lib/mxrb/exporter.rb,
lib/mxrb/benchmark.rb,
lib/mxrb/protocols.rb,
lib/mxrb/evaluation.rb,
lib/mxrb/functional.rb,
lib/mxrb/model/menu.rb,
lib/mxrb/model/page.rb,
lib/mxrb/model/unit.rb,
lib/mxrb/oql/server.rb,
lib/mxrb/dsl/builder.rb,
lib/mxrb/initializer.rb,
lib/mxrb/io/mpr_file.rb,
lib/mxrb/marketplace.rb,
lib/mxrb/team_server.rb,
lib/mxrb/compiler/mda.rb,
lib/mxrb/model/entity.rb,
lib/mxrb/model/module.rb,
lib/mxrb/oql/analyzer.rb,
lib/mxrb/scaffold/cli.rb,
lib/mxrb/io/bson_codec.rb,
lib/mxrb/model/project.rb,
lib/mxrb/scaffold/help.rb,
lib/mxrb/schema/tables.rb,
lib/mxrb/protocols/plan.rb,
lib/mxrb/runtime/native.rb,
lib/mxrb/semantic/index.rb,
lib/mxrb/semantic/mover.rb,
lib/mxrb/widget_package.rb,
lib/mxrb/io/mxunit_codec.rb,
lib/mxrb/model/attribute.rb,
lib/mxrb/model/connector.rb,
lib/mxrb/model/microflow.rb,
lib/mxrb/compiler/adapter.rb,
lib/mxrb/github/annotator.rb,
lib/mxrb/model/navigation.rb,
lib/mxrb/runtime/executor.rb,
lib/mxrb/scaffold/recipes.rb,
lib/mxrb/semantic/inliner.rb,
lib/mxrb/semantic/remover.rb,
lib/mxrb/semantic/renamer.rb,
lib/mxrb/compiler/packager.rb,
lib/mxrb/frontend/migrator.rb,
lib/mxrb/model/association.rb,
lib/mxrb/oql/index_advisor.rb,
lib/mxrb/oql/plan_analyzer.rb,
lib/mxrb/project_lifecycle.rb,
lib/mxrb/runtime/toolchain.rb,
lib/mxrb/scaffold/registry.rb,
lib/mxrb/semantic/analyzer.rb,
lib/mxrb/semantic/embedder.rb,
lib/mxrb/architecture/graph.rb,
lib/mxrb/model/domain_model.rb,
lib/mxrb/module_initializer.rb,
lib/mxrb/scaffold/generator.rb,
lib/mxrb/scaffold/templates.rb,
lib/mxrb/semantic/extractor.rb,
lib/mxrb/semantic/vec_store.rb,
lib/mxrb/integrity/validator.rb,
lib/mxrb/model/design_system.rb,
lib/mxrb/semantic/batch_plan.rb,
lib/mxrb/widget_synchronizer.rb,
lib/mxrb/official_marketplace.rb,
lib/mxrb/runtime/java_locator.rb,
lib/mxrb/scaffold/transaction.rb,
lib/mxrb/compiler/model_values.rb,
lib/mxrb/compiler/source_model.rb,
lib/mxrb/oql/workload_analyzer.rb,
lib/mxrb/oql/workload_baseline.rb,
lib/mxrb/architecture/validator.rb,
lib/mxrb/compiler/model_package.rb,
lib/mxrb/model/design_migration.rb,
lib/mxrb/semantic/onnx_embedder.rb,
lib/mxrb/runtime/docker_executor.rb,
lib/mxrb/scaffold/page_templates.rb,
lib/mxrb/semantic/domain_mutator.rb,
lib/mxrb/semantic/tfidf_embedder.rb,
lib/mxrb/runtime/docker_workspace.rb,
lib/mxrb/model/design_materializer.rb,
lib/mxrb/compiler/portable_packager.rb,
lib/mxrb/compiler/system_model_seed.rb,
lib/mxrb/runtime/database_workspace.rb,
lib/mxrb/compiler/runtime_data_types.rb,
lib/mxrb/compiler/web_bundle_builder.rb,
lib/mxrb/runtime/sql_server_database.rb,
lib/mxrb/compiler/deployment_metadata.rb,
lib/mxrb/compiler/legacy_page_builder.rb,
lib/mxrb/compiler/page_bundle_builder.rb,
lib/mxrb/compiler/project_jar_archive.rb,
lib/mxrb/compiler/project_jar_builder.rb,
lib/mxrb/oql/sql_server_plan_analyzer.rb,
lib/mxrb/compiler/java_proxy_generator.rb,
lib/mxrb/compiler/page_bundle_compiler.rb,
lib/mxrb/compiler/project_materializer.rb,
lib/mxrb/compiler/runtime_model_schema.rb,
lib/mxrb/compiler/web_list_data_source.rb,
lib/mxrb/compiler/artifact_materializer.rb,
lib/mxrb/compiler/image_bundle_compiler.rb,
lib/mxrb/compiler/project_model_orderer.rb,
lib/mxrb/compiler/security_materializer.rb,
lib/mxrb/compiler/settings_materializer.rb,
lib/mxrb/official_marketplace/lifecycle.rb,
lib/mxrb/compiler/compatibility_analyzer.rb,
lib/mxrb/compiler/constants_materializer.rb,
lib/mxrb/compiler/microflow_materializer.rb,
lib/mxrb/compiler/page_document_compiler.rb,
lib/mxrb/compiler/web_operation_compiler.rb,
lib/mxrb/compiler/web_shell_materializer.rb,
lib/mxrb/compiler/deployment_asset_copier.rb,
lib/mxrb/compiler/deployment_bootstrapper.rb,
lib/mxrb/compiler/deployment_materializer.rb,
lib/mxrb/compiler/gallery_bundle_compiler.rb,
lib/mxrb/compiler/microflow_node_compiler.rb,
lib/mxrb/official_marketplace/content_api.rb,
lib/mxrb/oql/sql_server_workload_analyzer.rb,
lib/mxrb/compiler/code_action_materializer.rb,
lib/mxrb/compiler/domain_document_compiler.rb,
lib/mxrb/compiler/domain_security_compiler.rb,
lib/mxrb/compiler/system_text_materializer.rb,
lib/mxrb/compiler/translation_materializer.rb,
lib/mxrb/compiler/widget_package_extractor.rb,
lib/mxrb/compiler/client_model_materializer.rb,
lib/mxrb/compiler/code_action_type_compiler.rb,
lib/mxrb/compiler/combo_box_bundle_compiler.rb,
lib/mxrb/compiler/data_grid_bundle_compiler.rb,
lib/mxrb/compiler/domain_model_materializer.rb,
lib/mxrb/compiler/legacy_data_grid_compiler.rb,
lib/mxrb/compiler/nanoflow_program_compiler.rb,
lib/mxrb/compiler/system_queue_materializer.rb,
lib/mxrb/compiler/artifact_document_compiler.rb,
lib/mxrb/compiler/settings_document_compiler.rb,
lib/mxrb/compiler/microflow_document_compiler.rb,
lib/mxrb/compiler/navigation_document_compiler.rb,
lib/mxrb/compiler/code_action_document_compiler.rb,
lib/mxrb/compiler/generic_widget_bundle_compiler.rb,
lib/mxrb/official_marketplace/dependency_resolver.rb,
lib/mxrb/compiler/database_connector_action_compiler.rb,
lib/mxrb/official_marketplace/module_package_importer.rb,
lib/mxrb/official_marketplace/widget_package_installer.rb

Defined Under Namespace

Modules: Architecture, Compare, Compiler, Dsl, Evaluation, Frontend, Functional, Github, IO, Integrity, Marketplace, Model, OfficialMarketplace, Oql, Protocols, Runtime, Scaffold, Schema, Semantic, TeamServer Classes: Benchmark, BenchmarkResult, Doctor, DoctorCheck, DoctorReport, Exporter, Initializer, MigrationResult, ModuleInitializer, ProjectLifecycle, UpgradeResult, WidgetPackage, WidgetSynchronizer, Writer

Constant Summary collapse

Error =
Class.new(StandardError)
NotMprError =
Class.new(Error)
UnsupportedVersion =
Class.new(Error)
SchemaError =
Class.new(Error)
ReadOnlyError =
Class.new(Error)
SerializationError =
Class.new(Error)
ValidationError =
Class.new(Error)
FunctionalTestError =
Class.new(Error)
ToolchainError =
Class.new(Error)
CompilationError =
Class.new(Error)
TeamServerError =
Class.new(Error)
NativeRuntimeError =
Class.new(Error)
MarketplaceError =
Class.new(Error)
BatchError =
Class.new(Error)
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.compare(left_path, right_path) ⇒ Object Also known as: diff



383
384
385
# File 'lib/mxrb/compare.rb', line 383

def self.compare(left_path, right_path)
  Compare::Comparator.new(left_path, right_path).compare
end

.compatibility(path) ⇒ Object



185
186
187
# File 'lib/mxrb.rb', line 185

def self.compatibility(path)
  Compiler::CompatibilityAnalyzer.new(path).analyze
end

.define(path, &block) ⇒ Object

Define a new project via the Ruby DSL.

Mxrb.define("MyApp.mpr") do
mendix_version "10.18.0"
module :MyModule do
  entity :Customer do
    string  :Name, required: true
    integer :Age
  end
end
end


164
165
166
167
# File 'lib/mxrb.rb', line 164

def self.define(path, &block)
  output = ENV.fetch("MXRB_OUTPUT_PATH", path)
  Dsl::Builder.new(output).tap { _1.instance_eval(&block) }.build!
end

.evaluate(path, &block) ⇒ Object



173
174
175
# File 'lib/mxrb.rb', line 173

def self.evaluate(path, &block)
  open(path) { _1.evaluate(&block) }
end

.functional_definition(path) ⇒ Object



177
178
179
# File 'lib/mxrb.rb', line 177

def self.functional_definition(path)
  Functional::Suite.new.evaluate(path).definition
end

.open(path, readonly: true, &block) ⇒ Object

Open an existing .mpr file.

Mxrb.open("MyApp.mpr") { |p| puts p.modules.map(&:name) }


141
142
143
144
145
146
147
148
149
150
# File 'lib/mxrb.rb', line 141

def self.open(path, readonly: true, &block)
  project = Model::Project.open(path, readonly: readonly)
  return project unless block

  begin
    block.call(project)
  ensure
    project.close
  end
end

.runtime_plan(path, **options) ⇒ Object



181
182
183
# File 'lib/mxrb.rb', line 181

def self.runtime_plan(path, **options)
  Runtime::Toolchain.new(path, **options).plan
end

.validate(path) ⇒ Object



169
170
171
# File 'lib/mxrb.rb', line 169

def self.validate(path)
  Integrity::Validator.new(path).validate
end