edoxen 0.1.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/edoxen.rb CHANGED
@@ -1,23 +1,46 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "lutaml/model"
4
- require_relative "edoxen/version"
5
4
 
6
- # Configure lutaml-model for YAML serialization
7
- Lutaml::Model::Config.configure do |config|
8
- config.yaml_adapter_type = :standard_yaml
9
- config.json_adapter_type = :standard_json
5
+ # Configure the lutaml-model serialization framework used throughout the
6
+ # Edoxen information-model gem.
7
+ Lutaml::Model::Config.configure do |c|
8
+ c.yaml_adapter_type = :standard_yaml
9
+ c.json_adapter_type = :standard_json
10
10
  end
11
11
 
12
12
  module Edoxen
13
- class Error < StandardError; end
13
+ # Autoload every constant defined under the Edoxen namespace from its
14
+ # native `lib/edoxen/<name>.rb` file. This is the only place where file
15
+ # paths are tied to constants; everywhere else, models reference each
16
+ # other by class name (resolved lazily by Ruby).
17
+ #
18
+ # There are intentionally NO `require_relative` calls in this gem —
19
+ # autoload keeps load-order semantics clean and lets us tolerate the
20
+ # extensive cross-references between model classes
21
+ # (Resolution <-> Localization, ResolutionMetadata <-> Localization, etc.).
22
+ autoload :VERSION, "edoxen/version"
23
+ autoload :Error, "edoxen/error"
24
+ autoload :ValidationError, "edoxen/error"
25
+ autoload :Enums, "edoxen/enums"
14
26
 
15
- # Load all model classes
16
- require_relative "edoxen/action"
17
- require_relative "edoxen/approval"
18
- require_relative "edoxen/consideration"
19
- require_relative "edoxen/metadata"
20
- require_relative "edoxen/resolution"
21
- require_relative "edoxen/resolution_set"
22
- require_relative "edoxen/cli"
27
+ # Information-model classes (one per file, one concept per class).
28
+ # Names mirror ../edoxen-model/models/*.lutaml.
29
+ autoload :StructuredIdentifier, "edoxen/structured_identifier"
30
+ autoload :MeetingIdentifier, "edoxen/meeting_identifier"
31
+ autoload :ResolutionDate, "edoxen/resolution_date"
32
+ autoload :Action, "edoxen/action"
33
+ autoload :Approval, "edoxen/approval"
34
+ autoload :Consideration, "edoxen/consideration"
35
+ autoload :SourceUrl, "edoxen/source_url"
36
+ autoload :Localization, "edoxen/localization"
37
+ autoload :Url, "edoxen/url"
38
+ autoload :ResolutionRelation, "edoxen/resolution_relation"
39
+ autoload :Resolution, "edoxen/resolution"
40
+ autoload :ResolutionMetadata, "edoxen/resolution_metadata"
41
+ autoload :ResolutionCollection, "edoxen/resolution_collection"
42
+
43
+ # Services.
44
+ autoload :SchemaValidator, "edoxen/schema_validator"
45
+ autoload :Cli, "edoxen/cli"
23
46
  end