Class: Stupidedi::Schema::Generation::ModuleLoaderGenerator

Inherits:
Object
  • Object
show all
Includes:
Support
Defined in:
lib/stupidedi/schema/generation/module_loader_generator.rb

Overview

Generates the top-level per-version loader file (e.g. forty_ten.rb) with autoload statements in dependency order.

Constant Summary collapse

AUTOLOAD_MODULES =

Autoload order matters - dependencies must be loaded first

%w[
  ElementReqs
  ElementTypes
  SegmentReqs
  SyntaxNotes
  ElementDefs
  SegmentDefs
  FunctionalGroupDef
].freeze

Instance Method Summary collapse

Methods included from Support

#namespace, #namespace_path

Constructor Details

#initialize(release, namespace: "Edi") ⇒ ModuleLoaderGenerator

Returns a new instance of ModuleLoaderGenerator.



22
23
24
25
# File 'lib/stupidedi/schema/generation/module_loader_generator.rb', line 22

def initialize(release, namespace: "Edi")
  @release = release
  @namespace = namespace
end

Instance Method Details

#generateObject



27
28
29
30
# File 'lib/stupidedi/schema/generation/module_loader_generator.rb', line 27

def generate
  validate_release!
  build_ruby_content
end

#output_pathObject



32
33
34
# File 'lib/stupidedi/schema/generation/module_loader_generator.rb', line 32

def output_path
  "#{namespace_path}/#{underscore(version_module)}.rb"
end