Module: MendixBridge

Defined in:
lib/mendix_bridge.rb,
lib/mendix_bridge/dsl.rb,
lib/mendix_bridge/model.rb,
lib/mendix_bridge/config.rb,
lib/mendix_bridge/version.rb,
lib/mendix_bridge/importer.rb,
lib/mendix_bridge/inventory.rb,
lib/mendix_bridge/migration.rb,
lib/mendix_bridge/presenter.rb,
lib/mendix_bridge/validator.rb,
lib/mendix_bridge/desktop_app.rb,
lib/mendix_bridge/html_viewer.rb,
lib/mendix_bridge/page_parser.rb,
lib/mendix_bridge/git_workflow.rb,
lib/mendix_bridge/domain_parser.rb,
lib/mendix_bridge/mdl_generator.rb,
lib/mendix_bridge/snapshot_diff.rb,
lib/mendix_bridge/backend_server.rb,
lib/mendix_bridge/change_planner.rb,
lib/mendix_bridge/document_parser.rb,
lib/mendix_bridge/project_creator.rb,
lib/mendix_bridge/security_parser.rb,
lib/mendix_bridge/dependency_index.rb,
lib/mendix_bridge/microflow_parser.rb,
lib/mendix_bridge/enumeration_parser.rb,
lib/mendix_bridge/migration_executor.rb,
lib/mendix_bridge/visual_entity_plan.rb,
lib/mendix_bridge/ruby_inventory_generator.rb

Defined Under Namespace

Modules: DSL, HtmlViewer, Migration, Model Classes: BackendServer, BackendServerError, ChangePlanner, Config, ConfigError, DependencyIndex, DesktopApp, DocumentParser, DomainParser, EnumerationParser, GitWorkflow, GitWorkflowError, ImportError, Importer, Inventory, MDLGenerator, MicroflowParser, MigrationError, MigrationExecutor, PageParser, Presenter, ProjectCreationError, ProjectCreator, RubyInventoryGenerator, SecurityParser, SnapshotDiff, ValidationError, Validator, VisualEntityPlan

Constant Summary collapse

VERSION =
"0.1.3"

Class Method Summary collapse

Class Method Details

.app(name, version: nil, &block) ⇒ Object



35
36
37
# File 'lib/mendix_bridge.rb', line 35

def app(name, version: nil, &block)
  DSL::AppBuilder.build(name, version:, &block)
end

.compile(model, format: :json, pretty: true, skip_associations: [], skip_module_roles: [], skip_user_roles: [], include_modules: false, skip_modules: []) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/mendix_bridge.rb', line 45

def compile(
  model,
  format: :json,
  pretty: true,
  skip_associations: [],
  skip_module_roles: [],
  skip_user_roles: [],
  include_modules: false,
  skip_modules: []
)
  validate!(model)
  serialize(
    model,
    format:,
    pretty:,
    skip_associations:,
    skip_module_roles:,
    skip_user_roles:,
    include_modules:,
    skip_modules:
  )
end

.generate(format: :json, pretty: true, &block) ⇒ Object



39
40
41
42
43
# File 'lib/mendix_bridge.rb', line 39

def generate(format: :json, pretty: true, &block)
  model = DSL::RootBuilder.build(&block)
  validate!(model)
  serialize(model, format:, pretty:)
end

.load_file(path) ⇒ Object



73
74
75
76
77
78
79
80
81
82
# File 'lib/mendix_bridge.rb', line 73

def load_file(path)
  source = File.read(path)
  model = eval(source, TOPLEVEL_BINDING, path) # rubocop:disable Security/Eval

  unless model.is_a?(Model::App)
    raise ArgumentError, "#{path} must return a MendixBridge application model"
  end

  validate!(model)
end

.load_migration(path) ⇒ Object



88
89
90
91
92
93
94
95
96
# File 'lib/mendix_bridge.rb', line 88

def load_migration(path)
  source = File.read(path)
  plan = eval(source, TOPLEVEL_BINDING, path) # rubocop:disable Security/Eval
  unless plan.is_a?(Migration::Plan)
    raise ArgumentError, "#{path} must return a MendixBridge migration"
  end

  plan
end

.migration(name, &block) ⇒ Object



84
85
86
# File 'lib/mendix_bridge.rb', line 84

def migration(name, &block)
  Migration::Builder.build(name, &block)
end

.validate!(model) ⇒ Object



68
69
70
71
# File 'lib/mendix_bridge.rb', line 68

def validate!(model)
  Validator.validate!(model)
  model
end