Class: MendixBridge::RubyInventoryGenerator
- Inherits:
-
Object
- Object
- MendixBridge::RubyInventoryGenerator
- Defined in:
- lib/mendix_bridge/ruby_inventory_generator.rb
Class Method Summary collapse
- .file_name(module_name) ⇒ Object
- .generate(inventory) ⇒ Object
- .ruby_source(module_name, domain) ⇒ Object
Class Method Details
.file_name(module_name) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/mendix_bridge/ruby_inventory_generator.rb', line 41 def self.file_name(module_name) module_name .gsub(/([a-z\d])([A-Z])/, '\1_\2') .gsub(/[^A-Za-z0-9]+/, "_") .downcase end |
.generate(inventory) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mendix_bridge/ruby_inventory_generator.rb', line 5 def self.generate(inventory) inventory.modules.each_with_object({}) do |app_module, result| name = app_module.qualified_name elements = inventory.elements.select do |element| element.qualified_name&.start_with?("#{name}.") && %w[entity association].include?(element.type) end next if elements.empty? result[name] = { "entities" => elements.select { |element| element.type == "entity" }.map { |element| serialize(element) }, "associations" => elements.select { |element| element.type == "association" }.map { |element| serialize(element) } } end end |
.ruby_source(module_name, domain) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/mendix_bridge/ruby_inventory_generator.rb', line 21 def self.ruby_source(module_name, domain) namespace = module_name.gsub(/[^A-Za-z0-9_]/, "_") json = JSON.pretty_generate(domain) <<~RUBY # frozen_string_literal: true # Generated by mendix-ruby import. Changes will be replaced by refresh. require "json" module MendixGenerated module #{namespace} DOMAIN_MODEL = JSON.parse(<<~JSON) #{indent(json, 6)} JSON end end RUBY end |