edoxen 0.1.1 → 0.1.2
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/README.adoc +408 -119
- data/edoxen.gemspec +7 -1
- data/exe/edoxen +6 -0
- data/lib/edoxen/action.rb +12 -45
- data/lib/edoxen/approval.rb +3 -19
- data/lib/edoxen/cli.rb +173 -0
- data/lib/edoxen/consideration.rb +9 -32
- data/lib/edoxen/metadata.rb +27 -0
- data/lib/edoxen/resolution.rb +19 -33
- data/lib/edoxen/resolution_date.rb +13 -29
- data/lib/edoxen/{resolution_relationship.rb → resolution_relation.rb} +1 -1
- data/lib/edoxen/resolution_set.rb +17 -0
- data/lib/edoxen/schema_validator.rb +299 -0
- data/lib/edoxen/url.rb +17 -0
- data/lib/edoxen/version.rb +1 -1
- data/lib/edoxen.rb +3 -7
- data/schema/edoxen.yaml +188 -53
- metadata +46 -15
- data/lib/edoxen/resolution_collection.rb +0 -25
- data/lib/edoxen/structured_identifier.rb +0 -20
- data/lib/edoxen/subject_body.rb +0 -20
- /data/lib/edoxen/{meeting_identfier.rb → meeting_identifier.rb} +0 -0
data/schema/edoxen.yaml
CHANGED
@@ -2,22 +2,26 @@
|
|
2
2
|
---
|
3
3
|
$schema: "http://json-schema.org/draft-07/schema#"
|
4
4
|
$id: "https://github.com/metanorma/edoxen/schema/edoxen.yaml"
|
5
|
-
title: "Edoxen Resolution
|
6
|
-
description: "Schema for validating Edoxen resolution
|
5
|
+
title: "Edoxen Resolution Set Schema"
|
6
|
+
description: "Schema for validating Edoxen resolution set YAML files"
|
7
7
|
type: object
|
8
8
|
|
9
9
|
properties:
|
10
10
|
metadata:
|
11
11
|
type: object
|
12
|
-
description: "Metadata about the resolution
|
12
|
+
description: "Metadata about the resolution set"
|
13
13
|
properties:
|
14
14
|
title:
|
15
15
|
type: string
|
16
|
-
description: "Title of the resolution
|
17
|
-
|
16
|
+
description: "Title of the resolution set"
|
17
|
+
identifier:
|
18
18
|
type: string
|
19
|
-
|
20
|
-
|
19
|
+
description: "Identifier for the resolution set (e.g., '2019-01')"
|
20
|
+
dates:
|
21
|
+
type: array
|
22
|
+
description: "Array of dates related to the set"
|
23
|
+
items:
|
24
|
+
$ref: "#/$defs/ComplexDate"
|
21
25
|
source:
|
22
26
|
type: string
|
23
27
|
description: "Source organization or secretariat"
|
@@ -27,6 +31,22 @@ properties:
|
|
27
31
|
chair:
|
28
32
|
type: string
|
29
33
|
description: "Meeting chair"
|
34
|
+
attendees:
|
35
|
+
type: array
|
36
|
+
items:
|
37
|
+
type: string
|
38
|
+
description: "List of attendees"
|
39
|
+
apologies:
|
40
|
+
type: array
|
41
|
+
items:
|
42
|
+
type: string
|
43
|
+
description: "List of apologies"
|
44
|
+
urls:
|
45
|
+
type: array
|
46
|
+
items:
|
47
|
+
$ref: "#/$defs/Url"
|
48
|
+
description: "Array of URLs related to the resolution set"
|
49
|
+
|
30
50
|
additionalProperties: false
|
31
51
|
|
32
52
|
resolutions:
|
@@ -62,9 +82,11 @@ $defs:
|
|
62
82
|
- "declaration"
|
63
83
|
description: "Type of resolution"
|
64
84
|
|
65
|
-
|
66
|
-
type:
|
67
|
-
|
85
|
+
categories:
|
86
|
+
type: array
|
87
|
+
items:
|
88
|
+
type: string
|
89
|
+
description: "Resolution categories"
|
68
90
|
|
69
91
|
subject:
|
70
92
|
type: string
|
@@ -73,15 +95,22 @@ $defs:
|
|
73
95
|
dates:
|
74
96
|
type: array
|
75
97
|
items:
|
76
|
-
|
77
|
-
|
78
|
-
|
98
|
+
$ref: "#/$defs/ComplexDate"
|
99
|
+
description: "Array of relevant dates with start/end structure"
|
100
|
+
|
101
|
+
message:
|
102
|
+
type: string
|
103
|
+
description: "Resolution message"
|
104
|
+
|
105
|
+
considering:
|
106
|
+
type: string
|
107
|
+
description: "Considering clause"
|
79
108
|
|
80
109
|
considerations:
|
81
110
|
type: array
|
82
111
|
items:
|
83
112
|
$ref: "#/$defs/Consideration"
|
84
|
-
description: "
|
113
|
+
description: "Array of considerations leading to the resolution"
|
85
114
|
|
86
115
|
approvals:
|
87
116
|
type: array
|
@@ -95,18 +124,69 @@ $defs:
|
|
95
124
|
$ref: "#/$defs/Action"
|
96
125
|
description: "Actions taken in the resolution"
|
97
126
|
|
127
|
+
urls:
|
128
|
+
type: array
|
129
|
+
items:
|
130
|
+
$ref: "#/$defs/Url"
|
131
|
+
description: "Array of URLs related to the resolution"
|
132
|
+
|
98
133
|
meeting:
|
99
134
|
$ref: "#/$defs/MeetingIdentifier"
|
100
135
|
description: "Meeting information"
|
101
136
|
|
102
|
-
|
137
|
+
relations:
|
103
138
|
type: array
|
104
139
|
items:
|
105
|
-
$ref: "#/$defs/
|
106
|
-
description: "
|
140
|
+
$ref: "#/$defs/ResolutionRelations"
|
141
|
+
description: "Relations to other resolutions"
|
107
142
|
|
143
|
+
additionalProperties: false
|
108
144
|
required:
|
109
|
-
-
|
145
|
+
- subject
|
146
|
+
- identifier
|
147
|
+
- actions
|
148
|
+
|
149
|
+
ComplexDate:
|
150
|
+
type: object
|
151
|
+
description: "Date with start and end"
|
152
|
+
properties:
|
153
|
+
start:
|
154
|
+
type: string
|
155
|
+
format: date
|
156
|
+
description: "Start date or single date if no end date"
|
157
|
+
end:
|
158
|
+
type: string
|
159
|
+
format: date
|
160
|
+
description: "End date (optional)"
|
161
|
+
kind:
|
162
|
+
type: string
|
163
|
+
enum:
|
164
|
+
- "enactment"
|
165
|
+
- "ballot"
|
166
|
+
- "effective"
|
167
|
+
- "decision"
|
168
|
+
- "meeting"
|
169
|
+
description: "Kind of date (e.g., enactment, ballot, effective)"
|
170
|
+
required:
|
171
|
+
- kind
|
172
|
+
additionalProperties: false
|
173
|
+
|
174
|
+
Url:
|
175
|
+
type: object
|
176
|
+
description: "URL with kind and reference"
|
177
|
+
properties:
|
178
|
+
kind:
|
179
|
+
type: string
|
180
|
+
enum:
|
181
|
+
- "access"
|
182
|
+
- "report"
|
183
|
+
description: "Kind of URL (e.g., access, report)"
|
184
|
+
ref:
|
185
|
+
type: string
|
186
|
+
description: "Reference URL"
|
187
|
+
format:
|
188
|
+
type: string
|
189
|
+
description: "Format of the URL (e.g., 'html', 'pdf')"
|
110
190
|
additionalProperties: false
|
111
191
|
|
112
192
|
Consideration:
|
@@ -116,20 +196,23 @@ $defs:
|
|
116
196
|
type:
|
117
197
|
type: string
|
118
198
|
enum:
|
119
|
-
- "having"
|
120
|
-
- "noting"
|
121
|
-
- "recognizing"
|
122
199
|
- "acknowledging"
|
200
|
+
- "following"
|
201
|
+
- "basing"
|
123
202
|
- "considering"
|
203
|
+
- "identifying"
|
204
|
+
- "according"
|
205
|
+
- "noting"
|
124
206
|
- "recalling"
|
125
|
-
- "
|
126
|
-
- "
|
207
|
+
- "recognises"
|
208
|
+
- "recognising"
|
209
|
+
- "recognizing"
|
127
210
|
description: "Type of consideration"
|
128
211
|
|
129
|
-
|
130
|
-
type:
|
131
|
-
|
132
|
-
|
212
|
+
dates:
|
213
|
+
type: array
|
214
|
+
items:
|
215
|
+
$ref: "#/$defs/ComplexDate"
|
133
216
|
|
134
217
|
message:
|
135
218
|
type: string
|
@@ -139,6 +222,9 @@ $defs:
|
|
139
222
|
type: string
|
140
223
|
description: "Subject of the consideration"
|
141
224
|
|
225
|
+
required:
|
226
|
+
- type
|
227
|
+
- message
|
142
228
|
additionalProperties: false
|
143
229
|
|
144
230
|
Approval:
|
@@ -169,36 +255,76 @@ $defs:
|
|
169
255
|
Action:
|
170
256
|
type: object
|
171
257
|
description: "An action taken in a resolution"
|
258
|
+
required:
|
259
|
+
- type
|
260
|
+
- message
|
172
261
|
properties:
|
173
262
|
type:
|
174
263
|
type: string
|
175
264
|
enum:
|
265
|
+
- "accepts"
|
266
|
+
- "acknowledges"
|
267
|
+
- "adoption"
|
176
268
|
- "adopts"
|
177
|
-
- "
|
269
|
+
- "agrees"
|
270
|
+
- "allocates"
|
271
|
+
- "appoints"
|
272
|
+
- "appreciates"
|
273
|
+
- "appreciation"
|
178
274
|
- "approves"
|
275
|
+
- "asks"
|
276
|
+
- "assigns"
|
277
|
+
- "chairs"
|
278
|
+
- "communicating"
|
279
|
+
- "confirms"
|
280
|
+
- "considers"
|
281
|
+
- "consults"
|
282
|
+
- "creates"
|
179
283
|
- "decides"
|
180
|
-
- "
|
181
|
-
- "
|
182
|
-
- "
|
183
|
-
- "
|
284
|
+
- "defines"
|
285
|
+
- "delegates"
|
286
|
+
- "delivering"
|
287
|
+
- "directs"
|
288
|
+
- "disbands"
|
289
|
+
- "drafting"
|
290
|
+
- "elects"
|
291
|
+
- "empowers"
|
184
292
|
- "encourages"
|
185
|
-
- "
|
186
|
-
- "
|
187
|
-
- "confirms"
|
188
|
-
- "reaffirms"
|
189
|
-
- "withdraws"
|
190
|
-
- "abrogates"
|
293
|
+
- "endorses"
|
294
|
+
- "estabilishes"
|
191
295
|
- "establishes"
|
192
|
-
- "
|
296
|
+
- "gathering"
|
297
|
+
- "identifies"
|
298
|
+
- "instructs"
|
299
|
+
- "investigates"
|
193
300
|
- "nominates"
|
194
|
-
- "
|
195
|
-
- "
|
301
|
+
- "notes"
|
302
|
+
- "notifies"
|
303
|
+
- "recognises"
|
304
|
+
- "recognizes"
|
305
|
+
- "reminds"
|
306
|
+
- "recommends"
|
307
|
+
- "registers"
|
308
|
+
- "regrets"
|
309
|
+
- "request"
|
310
|
+
- "replaces"
|
311
|
+
- "requests"
|
312
|
+
- "resolves"
|
313
|
+
- "restates"
|
314
|
+
- "scopes"
|
315
|
+
- "secures"
|
316
|
+
- "sends"
|
317
|
+
- "supports"
|
318
|
+
- "thanks"
|
319
|
+
- "welcomes"
|
320
|
+
- "withdraws"
|
196
321
|
description: "Type of action"
|
197
322
|
|
198
|
-
|
199
|
-
type:
|
200
|
-
|
201
|
-
|
323
|
+
dates:
|
324
|
+
type: array
|
325
|
+
items:
|
326
|
+
$ref: "#/$defs/ComplexDate"
|
327
|
+
description: "Dates of the action"
|
202
328
|
|
203
329
|
message:
|
204
330
|
type: string
|
@@ -208,6 +334,14 @@ $defs:
|
|
208
334
|
type: string
|
209
335
|
description: "Subject of the action"
|
210
336
|
|
337
|
+
degree:
|
338
|
+
type: string
|
339
|
+
description: "Degree of the action"
|
340
|
+
enum:
|
341
|
+
- "unanimous"
|
342
|
+
- "majority"
|
343
|
+
- "minority"
|
344
|
+
|
211
345
|
additionalProperties: false
|
212
346
|
|
213
347
|
MeetingIdentifier:
|
@@ -218,10 +352,11 @@ $defs:
|
|
218
352
|
type: string
|
219
353
|
description: "Meeting venue"
|
220
354
|
|
221
|
-
|
222
|
-
type:
|
223
|
-
|
224
|
-
|
355
|
+
dates:
|
356
|
+
type: array
|
357
|
+
description: "Meeting dates"
|
358
|
+
items:
|
359
|
+
$ref: "#/$defs/ComplexDate"
|
225
360
|
|
226
361
|
identifier:
|
227
362
|
type: string
|
@@ -229,9 +364,9 @@ $defs:
|
|
229
364
|
|
230
365
|
additionalProperties: false
|
231
366
|
|
232
|
-
|
367
|
+
ResolutionRelations:
|
233
368
|
type: object
|
234
|
-
description: "
|
369
|
+
description: "Relation between resolutions"
|
235
370
|
properties:
|
236
371
|
type:
|
237
372
|
type: string
|
@@ -241,7 +376,7 @@ $defs:
|
|
241
376
|
- "references"
|
242
377
|
- "replaces"
|
243
378
|
- "updates"
|
244
|
-
description: "Type of
|
379
|
+
description: "Type of relation"
|
245
380
|
|
246
381
|
target:
|
247
382
|
type: string
|
@@ -249,7 +384,7 @@ $defs:
|
|
249
384
|
|
250
385
|
description:
|
251
386
|
type: string
|
252
|
-
description: "Description of the
|
387
|
+
description: "Description of the relation"
|
253
388
|
|
254
389
|
additionalProperties: false
|
255
390
|
|
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.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-07-
|
11
|
+
date: 2025-07-20 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,16 +38,30 @@ 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:
|
@@ -45,18 +73,21 @@ files:
|
|
45
73
|
- README.adoc
|
46
74
|
- Rakefile
|
47
75
|
- edoxen.gemspec
|
76
|
+
- exe/edoxen
|
48
77
|
- lib/edoxen.rb
|
49
78
|
- lib/edoxen/action.rb
|
50
79
|
- lib/edoxen/approval.rb
|
80
|
+
- lib/edoxen/cli.rb
|
51
81
|
- lib/edoxen/consideration.rb
|
52
82
|
- lib/edoxen/meeting.rb
|
53
|
-
- lib/edoxen/
|
83
|
+
- lib/edoxen/meeting_identifier.rb
|
84
|
+
- lib/edoxen/metadata.rb
|
54
85
|
- lib/edoxen/resolution.rb
|
55
|
-
- lib/edoxen/resolution_collection.rb
|
56
86
|
- lib/edoxen/resolution_date.rb
|
57
|
-
- lib/edoxen/
|
58
|
-
- lib/edoxen/
|
59
|
-
- lib/edoxen/
|
87
|
+
- lib/edoxen/resolution_relation.rb
|
88
|
+
- lib/edoxen/resolution_set.rb
|
89
|
+
- lib/edoxen/schema_validator.rb
|
90
|
+
- lib/edoxen/url.rb
|
60
91
|
- lib/edoxen/version.rb
|
61
92
|
- schema/edoxen.yaml
|
62
93
|
- sig/edoxen.rbs
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "lutaml/model"
|
4
|
-
|
5
|
-
module Edoxen
|
6
|
-
class ResolutionCollection < Lutaml::Model::Serializable
|
7
|
-
attribute :metadata, :hash
|
8
|
-
attribute :resolutions, Resolution, collection: true
|
9
|
-
|
10
|
-
key_value do
|
11
|
-
map "metadata", to: :metadata
|
12
|
-
map "resolutions", to: :resolutions
|
13
|
-
end
|
14
|
-
|
15
|
-
# Example of a ResolutionCollection
|
16
|
-
# metadata:
|
17
|
-
# title: Resolutions of the 38th plenary meeting of ISO/TC 154
|
18
|
-
# date: 2019-10-17
|
19
|
-
# source: ISO/TC 154 Secretariat
|
20
|
-
# resolutions:
|
21
|
-
# - category: Resolutions related to JWG 1
|
22
|
-
# dates: 2019/10/17
|
23
|
-
# ...
|
24
|
-
end
|
25
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# StructuredIdentifier {
|
4
|
-
# number:
|
5
|
-
# prefix:
|
6
|
-
# }
|
7
|
-
|
8
|
-
require "lutaml/model"
|
9
|
-
|
10
|
-
module Edoxen
|
11
|
-
class StructuredIdentifier < Lutaml::Model::Serializable
|
12
|
-
attribute :number, :string
|
13
|
-
attribute :prefix, :string
|
14
|
-
|
15
|
-
key_value do
|
16
|
-
map "number", to: :number
|
17
|
-
map "prefix", to: :prefix
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/lib/edoxen/subject_body.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# SubjectBody {
|
4
|
-
# name
|
5
|
-
# address
|
6
|
-
# etc.
|
7
|
-
# }
|
8
|
-
require "lutaml/model"
|
9
|
-
|
10
|
-
module Edoxen
|
11
|
-
class SubjectBody < Lutaml::Model::Serializable
|
12
|
-
attribute :name, :string
|
13
|
-
attribute :address, :string
|
14
|
-
|
15
|
-
key_value do
|
16
|
-
map "name", to: :name
|
17
|
-
map "address", to: :address
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
File without changes
|