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.
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 Collection Schema"
6
- description: "Schema for validating Edoxen resolution collection YAML files"
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 collection"
12
+ description: "Metadata about the resolution set"
13
13
  properties:
14
14
  title:
15
15
  type: string
16
- description: "Title of the resolution collection"
17
- date:
16
+ description: "Title of the resolution set"
17
+ identifier:
18
18
  type: string
19
- format: date
20
- description: "Date of the meeting or collection (YYYY-MM-DD)"
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
- category:
66
- type: string
67
- description: "Resolution category"
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
- type: string
77
- format: date
78
- description: "Array of relevant dates"
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: "Considerations leading to the resolution"
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
- relationships:
137
+ relations:
103
138
  type: array
104
139
  items:
105
- $ref: "#/$defs/ResolutionRelationship"
106
- description: "Relationships to other resolutions"
140
+ $ref: "#/$defs/ResolutionRelations"
141
+ description: "Relations to other resolutions"
107
142
 
143
+ additionalProperties: false
108
144
  required:
109
- - title
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
- - "welcoming"
126
- - "appreciating"
207
+ - "recognises"
208
+ - "recognising"
209
+ - "recognizing"
127
210
  description: "Type of consideration"
128
211
 
129
- date_effective:
130
- type: string
131
- format: date
132
- description: "Effective date of the consideration"
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
- - "thanks"
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
- - "declares"
181
- - "resolves"
182
- - "requests"
183
- - "recommends"
284
+ - "defines"
285
+ - "delegates"
286
+ - "delivering"
287
+ - "directs"
288
+ - "disbands"
289
+ - "drafting"
290
+ - "elects"
291
+ - "empowers"
184
292
  - "encourages"
185
- - "welcomes"
186
- - "notes"
187
- - "confirms"
188
- - "reaffirms"
189
- - "withdraws"
190
- - "abrogates"
293
+ - "endorses"
294
+ - "estabilishes"
191
295
  - "establishes"
192
- - "appoints"
296
+ - "gathering"
297
+ - "identifies"
298
+ - "instructs"
299
+ - "investigates"
193
300
  - "nominates"
194
- - "extends"
195
- - "initiates"
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
- date_effective:
199
- type: string
200
- format: date
201
- description: "Effective date of the action"
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
- date:
222
- type: string
223
- format: date
224
- description: "Meeting date"
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
- ResolutionRelationship:
367
+ ResolutionRelations:
233
368
  type: object
234
- description: "Relationship between resolutions"
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 relationship"
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 relationship"
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.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-18 00:00:00.000000000 Z
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
- description: 'Edoxen provides a Ruby library for working with resolution models, allowing
28
- users to create, manipulate, and serialize resolution data in a structured format.
29
- It is built on top of the lutaml-model serialization framework, which provides a
30
- flexible and extensible way to define data models and serialize them to YAML or
31
- JSON formats.
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/meeting_identfier.rb
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/resolution_relationship.rb
58
- - lib/edoxen/structured_identifier.rb
59
- - lib/edoxen/subject_body.rb
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
@@ -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