edoxen 0.1.1 → 0.3.0
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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +202 -40
- data/CLAUDE.md +220 -0
- data/README.adoc +150 -206
- data/edoxen.gemspec +7 -1
- data/exe/edoxen +6 -0
- data/lib/edoxen/_metadata.rb.deprecated +57 -0
- data/lib/edoxen/action.rb +4 -52
- data/lib/edoxen/approval.rb +5 -25
- data/lib/edoxen/cli.rb +156 -0
- data/lib/edoxen/consideration.rb +5 -36
- data/lib/edoxen/enums.rb +43 -0
- data/lib/edoxen/error.rb +7 -0
- data/lib/edoxen/localization.rb +30 -0
- data/lib/edoxen/{meeting_identfier.rb → meeting_identifier.rb} +2 -6
- data/lib/edoxen/resolution.rb +24 -51
- data/lib/edoxen/resolution_collection.rb +3 -13
- data/lib/edoxen/resolution_date.rb +13 -30
- data/lib/edoxen/resolution_metadata.rb +26 -0
- data/lib/edoxen/resolution_relation.rb +17 -0
- data/lib/edoxen/resolution_set.rb +17 -0
- data/lib/edoxen/schema_validator.rb +211 -0
- data/lib/edoxen/source_url.rb +18 -0
- data/lib/edoxen/structured_identifier.rb +6 -9
- data/lib/edoxen/url.rb +16 -0
- data/lib/edoxen/version.rb +1 -1
- data/lib/edoxen.rb +36 -18
- data/schema/edoxen.yaml +308 -212
- metadata +52 -13
- data/lib/edoxen/resolution_relationship.rb +0 -51
- data/lib/edoxen/subject_body.rb +0 -20
data/schema/edoxen.yaml
CHANGED
|
@@ -1,37 +1,32 @@
|
|
|
1
|
-
# yaml-language-server: $schema=http://json-schema.org/draft-07/schema
|
|
2
1
|
---
|
|
3
2
|
$schema: "http://json-schema.org/draft-07/schema#"
|
|
4
3
|
$id: "https://github.com/metanorma/edoxen/schema/edoxen.yaml"
|
|
5
4
|
title: "Edoxen Resolution Collection Schema"
|
|
6
|
-
description:
|
|
5
|
+
description: |
|
|
6
|
+
Schema for validating Edoxen ResolutionCollection YAML files.
|
|
7
|
+
|
|
8
|
+
Mirrors the canonical LutaML information model in
|
|
9
|
+
https://github.com/metanorma/edoxen-model/tree/main/models .
|
|
10
|
+
|
|
11
|
+
The enum constants declared under `$defs` (ActionType,
|
|
12
|
+
ConsiderationType, ApprovalType, ApprovalDegree, ResolutionType,
|
|
13
|
+
ResolutionDateType, ResolutionRelationType, UrlKind) are the
|
|
14
|
+
authoritative wire values. `spec/edoxen/schema_enum_sync_spec.rb`
|
|
15
|
+
asserts each one is character-for-character identical to the
|
|
16
|
+
corresponding `Edoxen::Enums::*` frozen array.
|
|
17
|
+
|
|
18
|
+
Trade-off: json_schemer's `valid_values` is not populated when an
|
|
19
|
+
`enum` is reached via `$ref`, so the validator's enum-violation
|
|
20
|
+
message degrades to "value ... is not one of: (see schema)". This
|
|
21
|
+
is documented in `Edoxen::SchemaValidator#format_message`.
|
|
7
22
|
type: object
|
|
23
|
+
additionalProperties: false
|
|
8
24
|
|
|
9
25
|
properties:
|
|
10
26
|
metadata:
|
|
11
|
-
|
|
12
|
-
description: "Metadata about the resolution collection"
|
|
13
|
-
properties:
|
|
14
|
-
title:
|
|
15
|
-
type: string
|
|
16
|
-
description: "Title of the resolution collection"
|
|
17
|
-
date:
|
|
18
|
-
type: string
|
|
19
|
-
format: date
|
|
20
|
-
description: "Date of the meeting or collection (YYYY-MM-DD)"
|
|
21
|
-
source:
|
|
22
|
-
type: string
|
|
23
|
-
description: "Source organization or secretariat"
|
|
24
|
-
venue:
|
|
25
|
-
type: string
|
|
26
|
-
description: "Meeting venue"
|
|
27
|
-
chair:
|
|
28
|
-
type: string
|
|
29
|
-
description: "Meeting chair"
|
|
30
|
-
additionalProperties: false
|
|
31
|
-
|
|
27
|
+
$ref: "#/$defs/ResolutionMetadata"
|
|
32
28
|
resolutions:
|
|
33
29
|
type: array
|
|
34
|
-
description: "Array of resolutions"
|
|
35
30
|
items:
|
|
36
31
|
$ref: "#/$defs/Resolution"
|
|
37
32
|
|
|
@@ -39,248 +34,349 @@ required:
|
|
|
39
34
|
- resolutions
|
|
40
35
|
|
|
41
36
|
$defs:
|
|
42
|
-
|
|
37
|
+
|
|
38
|
+
# ====================================================================
|
|
39
|
+
# Identifiers and references.
|
|
40
|
+
# ====================================================================
|
|
41
|
+
|
|
42
|
+
StructuredIdentifier:
|
|
43
43
|
type: object
|
|
44
|
-
description: "A
|
|
44
|
+
description: "A resolution identifier (prefix + number). A Resolution may carry 1..* of these."
|
|
45
|
+
additionalProperties: false
|
|
46
|
+
required: [prefix, number]
|
|
45
47
|
properties:
|
|
46
|
-
|
|
47
|
-
oneOf:
|
|
48
|
-
- type: string
|
|
49
|
-
- type: integer
|
|
50
|
-
description: "Resolution identifier (e.g., '2019-01' or 1)"
|
|
51
|
-
|
|
52
|
-
title:
|
|
48
|
+
prefix:
|
|
53
49
|
type: string
|
|
54
|
-
description: "
|
|
55
|
-
|
|
56
|
-
type:
|
|
50
|
+
description: "Authority prefix, e.g. 'ISO', 'OIML', 'CIML'."
|
|
51
|
+
number:
|
|
57
52
|
type: string
|
|
58
|
-
|
|
59
|
-
- "resolution"
|
|
60
|
-
- "recommendation"
|
|
61
|
-
- "decision"
|
|
62
|
-
- "declaration"
|
|
63
|
-
description: "Type of resolution"
|
|
53
|
+
description: "Resolution number issued under that prefix."
|
|
64
54
|
|
|
65
|
-
|
|
55
|
+
MeetingIdentifier:
|
|
56
|
+
type: object
|
|
57
|
+
description: "Identifies the meeting a Resolution belongs to."
|
|
58
|
+
additionalProperties: false
|
|
59
|
+
properties:
|
|
60
|
+
venue:
|
|
66
61
|
type: string
|
|
67
|
-
description: "
|
|
68
|
-
|
|
69
|
-
subject:
|
|
62
|
+
description: "Meeting venue name (free text)."
|
|
63
|
+
date:
|
|
70
64
|
type: string
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
dates:
|
|
74
|
-
type: array
|
|
75
|
-
items:
|
|
76
|
-
type: string
|
|
77
|
-
format: date
|
|
78
|
-
description: "Array of relevant dates"
|
|
79
|
-
|
|
80
|
-
considerations:
|
|
81
|
-
type: array
|
|
82
|
-
items:
|
|
83
|
-
$ref: "#/$defs/Consideration"
|
|
84
|
-
description: "Considerations leading to the resolution"
|
|
85
|
-
|
|
86
|
-
approvals:
|
|
87
|
-
type: array
|
|
88
|
-
items:
|
|
89
|
-
$ref: "#/$defs/Approval"
|
|
90
|
-
description: "Approval information"
|
|
91
|
-
|
|
92
|
-
actions:
|
|
93
|
-
type: array
|
|
94
|
-
items:
|
|
95
|
-
$ref: "#/$defs/Action"
|
|
96
|
-
description: "Actions taken in the resolution"
|
|
97
|
-
|
|
98
|
-
meeting:
|
|
99
|
-
$ref: "#/$defs/MeetingIdentifier"
|
|
100
|
-
description: "Meeting information"
|
|
101
|
-
|
|
102
|
-
relationships:
|
|
103
|
-
type: array
|
|
104
|
-
items:
|
|
105
|
-
$ref: "#/$defs/ResolutionRelationship"
|
|
106
|
-
description: "Relationships to other resolutions"
|
|
65
|
+
format: date
|
|
66
|
+
description: "Meeting date."
|
|
107
67
|
|
|
108
|
-
|
|
109
|
-
|
|
68
|
+
Url:
|
|
69
|
+
type: object
|
|
70
|
+
description: "URL with a kind (access / report) and an optional format hint."
|
|
110
71
|
additionalProperties: false
|
|
72
|
+
required: [kind, ref]
|
|
73
|
+
properties:
|
|
74
|
+
kind:
|
|
75
|
+
$ref: "#/$defs/UrlKind"
|
|
76
|
+
ref:
|
|
77
|
+
type: string
|
|
78
|
+
format:
|
|
79
|
+
type: string
|
|
111
80
|
|
|
112
|
-
|
|
81
|
+
ResolutionRelation:
|
|
113
82
|
type: object
|
|
114
|
-
description: "
|
|
83
|
+
description: "Directed relation between two resolutions identified by their StructuredIdentifier."
|
|
84
|
+
additionalProperties: false
|
|
85
|
+
required: [source, destination, type]
|
|
115
86
|
properties:
|
|
87
|
+
source:
|
|
88
|
+
$ref: "#/$defs/StructuredIdentifier"
|
|
89
|
+
destination:
|
|
90
|
+
$ref: "#/$defs/StructuredIdentifier"
|
|
116
91
|
type:
|
|
117
|
-
|
|
118
|
-
enum:
|
|
119
|
-
- "having"
|
|
120
|
-
- "noting"
|
|
121
|
-
- "recognizing"
|
|
122
|
-
- "acknowledging"
|
|
123
|
-
- "considering"
|
|
124
|
-
- "recalling"
|
|
125
|
-
- "welcoming"
|
|
126
|
-
- "appreciating"
|
|
127
|
-
description: "Type of consideration"
|
|
92
|
+
$ref: "#/$defs/ResolutionRelationType"
|
|
128
93
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
description: "Effective date of the consideration"
|
|
94
|
+
# ====================================================================
|
|
95
|
+
# Date carriers.
|
|
96
|
+
# ====================================================================
|
|
133
97
|
|
|
134
|
-
|
|
98
|
+
ResolutionDate:
|
|
99
|
+
type: object
|
|
100
|
+
description: "Date with semantic kind (adoption / drafted / discussed)."
|
|
101
|
+
additionalProperties: false
|
|
102
|
+
required: [date, type]
|
|
103
|
+
properties:
|
|
104
|
+
date:
|
|
135
105
|
type: string
|
|
136
|
-
|
|
106
|
+
format: date
|
|
107
|
+
description: "The date itself."
|
|
108
|
+
type:
|
|
109
|
+
$ref: "#/$defs/ResolutionDateType"
|
|
137
110
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
111
|
+
# ====================================================================
|
|
112
|
+
# Per-localization sub-structures. Each is owned by exactly one
|
|
113
|
+
# Language; the language_code discriminator lives on Localization.
|
|
114
|
+
# ====================================================================
|
|
141
115
|
|
|
116
|
+
Action:
|
|
117
|
+
type: object
|
|
118
|
+
description: "A verb + one effective date + human-readable message."
|
|
142
119
|
additionalProperties: false
|
|
120
|
+
required: [type, message, date_effective]
|
|
121
|
+
properties:
|
|
122
|
+
type:
|
|
123
|
+
$ref: "#/$defs/ActionType"
|
|
124
|
+
date_effective:
|
|
125
|
+
$ref: "#/$defs/ResolutionDate"
|
|
126
|
+
message:
|
|
127
|
+
type: string
|
|
143
128
|
|
|
144
129
|
Approval:
|
|
145
130
|
type: object
|
|
146
|
-
description: "Approval
|
|
131
|
+
description: "Approval record: vote type, consensus degree, date, message."
|
|
132
|
+
additionalProperties: false
|
|
133
|
+
required: [type, degree, date]
|
|
147
134
|
properties:
|
|
148
135
|
type:
|
|
149
|
-
|
|
150
|
-
enum:
|
|
151
|
-
- "affirmative"
|
|
152
|
-
- "negative"
|
|
153
|
-
description: "Type of approval"
|
|
154
|
-
|
|
136
|
+
$ref: "#/$defs/ApprovalType"
|
|
155
137
|
degree:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
- "majority"
|
|
160
|
-
- "minority"
|
|
161
|
-
description: "Degree of approval"
|
|
162
|
-
|
|
138
|
+
$ref: "#/$defs/ApprovalDegree"
|
|
139
|
+
date:
|
|
140
|
+
$ref: "#/$defs/ResolutionDate"
|
|
163
141
|
message:
|
|
164
142
|
type: string
|
|
165
|
-
description: "Approval details"
|
|
166
|
-
|
|
167
|
-
additionalProperties: false
|
|
168
143
|
|
|
169
|
-
|
|
144
|
+
Consideration:
|
|
170
145
|
type: object
|
|
171
|
-
description: "
|
|
146
|
+
description: "The basis for a Resolution: a verb + one effective date + reasoning."
|
|
147
|
+
additionalProperties: false
|
|
148
|
+
required: [type, message, date_effective]
|
|
172
149
|
properties:
|
|
173
150
|
type:
|
|
174
|
-
|
|
175
|
-
enum:
|
|
176
|
-
- "adopts"
|
|
177
|
-
- "thanks"
|
|
178
|
-
- "approves"
|
|
179
|
-
- "decides"
|
|
180
|
-
- "declares"
|
|
181
|
-
- "resolves"
|
|
182
|
-
- "requests"
|
|
183
|
-
- "recommends"
|
|
184
|
-
- "encourages"
|
|
185
|
-
- "welcomes"
|
|
186
|
-
- "notes"
|
|
187
|
-
- "confirms"
|
|
188
|
-
- "reaffirms"
|
|
189
|
-
- "withdraws"
|
|
190
|
-
- "abrogates"
|
|
191
|
-
- "establishes"
|
|
192
|
-
- "appoints"
|
|
193
|
-
- "nominates"
|
|
194
|
-
- "extends"
|
|
195
|
-
- "initiates"
|
|
196
|
-
description: "Type of action"
|
|
197
|
-
|
|
151
|
+
$ref: "#/$defs/ConsiderationType"
|
|
198
152
|
date_effective:
|
|
199
|
-
|
|
200
|
-
format: date
|
|
201
|
-
description: "Effective date of the action"
|
|
202
|
-
|
|
153
|
+
$ref: "#/$defs/ResolutionDate"
|
|
203
154
|
message:
|
|
204
155
|
type: string
|
|
205
|
-
description: "Action text"
|
|
206
156
|
|
|
157
|
+
Localization:
|
|
158
|
+
type: object
|
|
159
|
+
description: |
|
|
160
|
+
A monolingual rendering of a Resolution. Mirrors the glossarist
|
|
161
|
+
LocalizedConcept pattern: language-agnostic fields live on the
|
|
162
|
+
parent Resolution; per-language content lives here.
|
|
163
|
+
additionalProperties: false
|
|
164
|
+
required: [language_code]
|
|
165
|
+
properties:
|
|
166
|
+
language_code:
|
|
167
|
+
type: string
|
|
168
|
+
pattern: "^[a-z]{3}$"
|
|
169
|
+
description: "ISO 639-3 three-letter language code (eng, fra, deu, spa, jpn, ...)."
|
|
170
|
+
script:
|
|
171
|
+
type: string
|
|
172
|
+
pattern: "^[A-Z][a-z]{3}$"
|
|
173
|
+
description: "ISO 15924 four-letter script code (Latn, Cyrl, Hant, Arab)."
|
|
174
|
+
title:
|
|
175
|
+
type: string
|
|
207
176
|
subject:
|
|
208
177
|
type: string
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
178
|
+
message:
|
|
179
|
+
type: string
|
|
180
|
+
considering:
|
|
181
|
+
type: string
|
|
182
|
+
considerations:
|
|
183
|
+
type: array
|
|
184
|
+
items:
|
|
185
|
+
$ref: "#/$defs/Consideration"
|
|
186
|
+
approvals:
|
|
187
|
+
type: array
|
|
188
|
+
items:
|
|
189
|
+
$ref: "#/$defs/Approval"
|
|
190
|
+
actions:
|
|
191
|
+
type: array
|
|
192
|
+
items:
|
|
193
|
+
$ref: "#/$defs/Action"
|
|
212
194
|
|
|
213
|
-
|
|
195
|
+
SourceUrl:
|
|
214
196
|
type: object
|
|
215
|
-
description: "
|
|
197
|
+
description: "Per-language canonical source URL (e.g. one PDF per language)."
|
|
198
|
+
additionalProperties: false
|
|
199
|
+
required: [ref, format, language_code]
|
|
216
200
|
properties:
|
|
217
|
-
|
|
201
|
+
ref:
|
|
218
202
|
type: string
|
|
219
|
-
description: "
|
|
220
|
-
|
|
221
|
-
date:
|
|
203
|
+
description: "The URL string."
|
|
204
|
+
format:
|
|
222
205
|
type: string
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
identifier:
|
|
206
|
+
description: "Document format, e.g. 'pdf', 'html'."
|
|
207
|
+
language_code:
|
|
227
208
|
type: string
|
|
228
|
-
|
|
209
|
+
pattern: "^[a-z]{3}$"
|
|
229
210
|
|
|
230
|
-
|
|
211
|
+
# ====================================================================
|
|
212
|
+
# Top-level structures.
|
|
213
|
+
# ====================================================================
|
|
231
214
|
|
|
232
|
-
|
|
215
|
+
Resolution:
|
|
233
216
|
type: object
|
|
234
|
-
description:
|
|
217
|
+
description: |
|
|
218
|
+
A formal Resolution. Language-agnostic admin fields live here;
|
|
219
|
+
every translatable field is wrapped inside `localizations[]`
|
|
220
|
+
(one entry per available language; at least one is required).
|
|
221
|
+
additionalProperties: false
|
|
222
|
+
required: [identifier, localizations]
|
|
235
223
|
properties:
|
|
224
|
+
identifier:
|
|
225
|
+
type: array
|
|
226
|
+
minItems: 1
|
|
227
|
+
items:
|
|
228
|
+
$ref: "#/$defs/StructuredIdentifier"
|
|
236
229
|
type:
|
|
230
|
+
$ref: "#/$defs/ResolutionType"
|
|
231
|
+
doi:
|
|
237
232
|
type: string
|
|
238
|
-
|
|
239
|
-
- "supersedes"
|
|
240
|
-
- "amends"
|
|
241
|
-
- "references"
|
|
242
|
-
- "replaces"
|
|
243
|
-
- "updates"
|
|
244
|
-
description: "Type of relationship"
|
|
245
|
-
|
|
246
|
-
target:
|
|
233
|
+
urn:
|
|
247
234
|
type: string
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
description:
|
|
235
|
+
agenda_item:
|
|
251
236
|
type: string
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
237
|
+
dates:
|
|
238
|
+
type: array
|
|
239
|
+
items:
|
|
240
|
+
$ref: "#/$defs/ResolutionDate"
|
|
241
|
+
categories:
|
|
242
|
+
type: array
|
|
243
|
+
items:
|
|
244
|
+
type: string
|
|
245
|
+
meeting:
|
|
246
|
+
$ref: "#/$defs/MeetingIdentifier"
|
|
247
|
+
relations:
|
|
248
|
+
type: array
|
|
249
|
+
items:
|
|
250
|
+
$ref: "#/$defs/ResolutionRelation"
|
|
251
|
+
urls:
|
|
252
|
+
type: array
|
|
253
|
+
items:
|
|
254
|
+
$ref: "#/$defs/Url"
|
|
255
|
+
localizations:
|
|
256
|
+
type: array
|
|
257
|
+
minItems: 1
|
|
258
|
+
items:
|
|
259
|
+
$ref: "#/$defs/Localization"
|
|
255
260
|
|
|
256
|
-
|
|
261
|
+
ResolutionMetadata:
|
|
257
262
|
type: object
|
|
258
|
-
description: "
|
|
259
|
-
properties:
|
|
260
|
-
prefix:
|
|
261
|
-
type: string
|
|
262
|
-
description: "Identifier prefix"
|
|
263
|
-
|
|
264
|
-
number:
|
|
265
|
-
oneOf:
|
|
266
|
-
- type: string
|
|
267
|
-
- type: integer
|
|
268
|
-
description: "Identifier number"
|
|
269
|
-
|
|
263
|
+
description: "Collection-level metadata (title, meeting date, source, source URLs, host venue)."
|
|
270
264
|
additionalProperties: false
|
|
271
|
-
|
|
272
|
-
SubjectBody:
|
|
273
|
-
type: object
|
|
274
|
-
description: "Subject body information"
|
|
275
265
|
properties:
|
|
276
|
-
|
|
266
|
+
title:
|
|
277
267
|
type: string
|
|
278
|
-
description: "
|
|
279
|
-
|
|
280
|
-
|
|
268
|
+
description: "Default title (no language). For multilingual, use `title_localized[]`."
|
|
269
|
+
title_localized:
|
|
270
|
+
type: array
|
|
271
|
+
items:
|
|
272
|
+
$ref: "#/$defs/Localization"
|
|
273
|
+
description: "Per-language title records (parallel pattern to Resolution#localizations)."
|
|
274
|
+
date:
|
|
281
275
|
type: string
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
276
|
+
format: date
|
|
277
|
+
description: "Meeting date."
|
|
278
|
+
source:
|
|
279
|
+
type: string
|
|
280
|
+
description: "Source organization / secretariat that issued the collection."
|
|
281
|
+
source_urls:
|
|
282
|
+
type: array
|
|
283
|
+
items:
|
|
284
|
+
$ref: "#/$defs/SourceUrl"
|
|
285
|
+
description: "Canonical URLs to the source PDFs in each available language."
|
|
286
|
+
city:
|
|
287
|
+
type: string
|
|
288
|
+
description: "IATA city code (3-letter, e.g. BER, CPT, PAR) of the host city."
|
|
289
|
+
country_code:
|
|
290
|
+
type: string
|
|
291
|
+
description: "ISO 3166-1 alpha-2 country code (2-letter, e.g. DE, FR, JP) of the host country."
|
|
292
|
+
|
|
293
|
+
# ====================================================================
|
|
294
|
+
# Enums. Each is referenced by its $ref name above. The schema
|
|
295
|
+
# <-> Ruby enum sync spec asserts each value-list matches the
|
|
296
|
+
# corresponding Edoxen::Enums::* frozen array.
|
|
297
|
+
# ====================================================================
|
|
298
|
+
|
|
299
|
+
ActionType:
|
|
300
|
+
type: string
|
|
301
|
+
description: "Edoxen::Enums::ACTION_TYPE — LUTAML action.lutaml (deduped)."
|
|
302
|
+
enum:
|
|
303
|
+
- adopts
|
|
304
|
+
- thanks
|
|
305
|
+
- approves
|
|
306
|
+
- decides
|
|
307
|
+
- declares
|
|
308
|
+
- asks
|
|
309
|
+
- invites
|
|
310
|
+
- resolves
|
|
311
|
+
- confirms
|
|
312
|
+
- welcomes
|
|
313
|
+
- recommends
|
|
314
|
+
- requests
|
|
315
|
+
- congratulates
|
|
316
|
+
- instructs
|
|
317
|
+
- urges
|
|
318
|
+
- appoints
|
|
319
|
+
- calls-upon
|
|
320
|
+
- encourages
|
|
321
|
+
- affirms
|
|
322
|
+
- elects
|
|
323
|
+
- authorizes
|
|
324
|
+
- charges
|
|
325
|
+
- states
|
|
326
|
+
- remarks
|
|
327
|
+
- judges
|
|
328
|
+
- sanctions
|
|
329
|
+
- abrogates
|
|
330
|
+
- empowers
|
|
331
|
+
|
|
332
|
+
ConsiderationType:
|
|
333
|
+
type: string
|
|
334
|
+
description: "Edoxen::Enums::CONSIDERATION_TYPE — LUTAML consideration.lutaml (deduped)."
|
|
335
|
+
enum:
|
|
336
|
+
- having
|
|
337
|
+
- noting
|
|
338
|
+
- recognizing
|
|
339
|
+
- acknowledging
|
|
340
|
+
- recalling
|
|
341
|
+
- reaffirming
|
|
342
|
+
- considering
|
|
343
|
+
- taking-into-account
|
|
344
|
+
- pursuant-to
|
|
345
|
+
- bearing-in-mind
|
|
346
|
+
- emphasizing
|
|
347
|
+
- concerned
|
|
348
|
+
- accepts
|
|
349
|
+
- observing
|
|
350
|
+
- referring
|
|
351
|
+
- acting
|
|
352
|
+
- empowers
|
|
353
|
+
|
|
354
|
+
ApprovalType:
|
|
355
|
+
type: string
|
|
356
|
+
description: "Edoxen::Enums::APPROVAL_TYPE — LUTAML approval_type.lutaml."
|
|
357
|
+
enum: [affirmative, negative]
|
|
358
|
+
|
|
359
|
+
ApprovalDegree:
|
|
360
|
+
type: string
|
|
361
|
+
description: "Edoxen::Enums::APPROVAL_DEGREE — LUTAML approval_degree.lutaml."
|
|
362
|
+
enum: [unanimous, majority, minority]
|
|
363
|
+
|
|
364
|
+
ResolutionType:
|
|
365
|
+
type: string
|
|
366
|
+
description: "Edoxen::Enums::RESOLUTION_TYPE — LUTAML resolution_type.lutaml."
|
|
367
|
+
enum: [resolution, recommendation, decision, declaration]
|
|
368
|
+
|
|
369
|
+
ResolutionDateType:
|
|
370
|
+
type: string
|
|
371
|
+
description: "Edoxen::Enums::RESOLUTION_DATE_TYPE — LUTAML resolution_date_type.lutaml."
|
|
372
|
+
enum: [adoption, drafted, discussed]
|
|
373
|
+
|
|
374
|
+
ResolutionRelationType:
|
|
375
|
+
type: string
|
|
376
|
+
description: "Edoxen::Enums::RESOLUTION_RELATION_TYPE — LUTAML resolution_relation_type.lutaml."
|
|
377
|
+
enum: [annexOf, hasAnnex, updates, refines, replaces, considers]
|
|
378
|
+
|
|
379
|
+
UrlKind:
|
|
380
|
+
type: string
|
|
381
|
+
description: "Edoxen::Enums::URL_KIND."
|
|
382
|
+
enum: [access, report]
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: edoxen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-06-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: json_schemer
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.0'
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: lutaml-model
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -24,39 +38,64 @@ dependencies:
|
|
|
24
38
|
- - "~>"
|
|
25
39
|
- !ruby/object:Gem::Version
|
|
26
40
|
version: '0.7'
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: thor
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '1.0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.0'
|
|
55
|
+
description: |
|
|
56
|
+
Edoxen provides a Ruby library for working with resolution models, allowing
|
|
57
|
+
users to create, manipulate, and serialize resolution data in a structured
|
|
58
|
+
format. It is built on top of the lutaml-model serialization framework,
|
|
59
|
+
which provides a flexible and extensible way to define data models and
|
|
60
|
+
serialize them to YAML or JSON formats.
|
|
34
61
|
email:
|
|
35
62
|
- open.source@ribose.com
|
|
36
|
-
executables:
|
|
63
|
+
executables:
|
|
64
|
+
- edoxen
|
|
37
65
|
extensions: []
|
|
38
66
|
extra_rdoc_files: []
|
|
39
67
|
files:
|
|
40
68
|
- ".rspec"
|
|
41
69
|
- ".rubocop.yml"
|
|
42
70
|
- ".rubocop_todo.yml"
|
|
71
|
+
- CLAUDE.md
|
|
43
72
|
- CODE_OF_CONDUCT.md
|
|
44
73
|
- Gemfile
|
|
45
74
|
- README.adoc
|
|
46
75
|
- Rakefile
|
|
47
76
|
- edoxen.gemspec
|
|
77
|
+
- exe/edoxen
|
|
48
78
|
- lib/edoxen.rb
|
|
79
|
+
- lib/edoxen/_metadata.rb.deprecated
|
|
49
80
|
- lib/edoxen/action.rb
|
|
50
81
|
- lib/edoxen/approval.rb
|
|
82
|
+
- lib/edoxen/cli.rb
|
|
51
83
|
- lib/edoxen/consideration.rb
|
|
84
|
+
- lib/edoxen/enums.rb
|
|
85
|
+
- lib/edoxen/error.rb
|
|
86
|
+
- lib/edoxen/localization.rb
|
|
52
87
|
- lib/edoxen/meeting.rb
|
|
53
|
-
- lib/edoxen/
|
|
88
|
+
- lib/edoxen/meeting_identifier.rb
|
|
54
89
|
- lib/edoxen/resolution.rb
|
|
55
90
|
- lib/edoxen/resolution_collection.rb
|
|
56
91
|
- lib/edoxen/resolution_date.rb
|
|
57
|
-
- lib/edoxen/
|
|
92
|
+
- lib/edoxen/resolution_metadata.rb
|
|
93
|
+
- lib/edoxen/resolution_relation.rb
|
|
94
|
+
- lib/edoxen/resolution_set.rb
|
|
95
|
+
- lib/edoxen/schema_validator.rb
|
|
96
|
+
- lib/edoxen/source_url.rb
|
|
58
97
|
- lib/edoxen/structured_identifier.rb
|
|
59
|
-
- lib/edoxen/
|
|
98
|
+
- lib/edoxen/url.rb
|
|
60
99
|
- lib/edoxen/version.rb
|
|
61
100
|
- schema/edoxen.yaml
|
|
62
101
|
- sig/edoxen.rbs
|