w3c_api 0.1.1 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5227c6f6b71312ce390dadc6053628d111cc387d1477e43ab7aa2473200e611
4
- data.tar.gz: a6b3afb0ee859b549234c9fe0c55c64896c14d0d2ddc31d20d19040d2859772a
3
+ metadata.gz: a73c07f5e19155dfe22a5e7c772a6890867df6db2019c049fd17ce1c90dd6680
4
+ data.tar.gz: 58b57fedefa49eeb9a89f424fd966bc90e37fe6c8f5165a821de496e1a85109d
5
5
  SHA512:
6
- metadata.gz: d9a9ffeb9cf9b32c35015b22f89c8d152e508098b14365b964ae12c21712371f1bd8c9793e634444a5e96539887d709b59a08540e65c80b72c357efa3e95fa22
7
- data.tar.gz: cd5575a30e2c307de3fa1b679de2f10fb9c07ff340b9f76e76d3aa030ff68be73623f24b29bcb0dfde2926f0a31f6ba584e580ac1521c19b8f6bb210f6f33475
6
+ metadata.gz: 6e96e2292b9465203056c58e82c1d18b9b7afda181f62889a82d0a0cd2f4c46a1a713288308cf7d6fe131585c86613097d9d028066d043fe8ae1f69016a1ef58
7
+ data.tar.gz: 9fbd52b672aa7b2d4dd2d97e084549b4f098e7ba91cf7252f41128f8883c574f59288c738b9c9c36e1cc60369a28168088abefcc16f86d605720694f045ab93d
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,47 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2025-07-05 00:01:41 UTC using RuboCop version 1.77.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 2
10
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
11
+ Metrics/AbcSize:
12
+ Max: 47
13
+
14
+ # Offense count: 48
15
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
16
+ # AllowedMethods: refine
17
+ Metrics/BlockLength:
18
+ Max: 370
19
+
20
+ # Offense count: 2
21
+ # Configuration parameters: CountComments, CountAsOne.
22
+ Metrics/ClassLength:
23
+ Max: 274
24
+
25
+ # Offense count: 2
26
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
27
+ Metrics/MethodLength:
28
+ Max: 218
29
+
30
+ # Offense count: 32
31
+ # Configuration parameters: AllowedConstants.
32
+ Style/Documentation:
33
+ Enabled: false
34
+
35
+ # Offense count: 1
36
+ # This cop supports unsafe autocorrection (--autocorrect-all).
37
+ # Configuration parameters: Mode.
38
+ Style/StringConcatenation:
39
+ Exclude:
40
+ - 'test_editor_deliverer_functionality.rb'
41
+
42
+ # Offense count: 10
43
+ # This cop supports safe autocorrection (--autocorrect).
44
+ # Configuration parameters: AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
45
+ # URISchemes: http, https
46
+ Layout/LineLength:
47
+ Max: 457
data/README.adoc CHANGED
@@ -121,6 +121,67 @@ versions = client.specification_versions('webrtc')
121
121
  version = client.specification_version('webrtc', '20241008')
122
122
  specs_by_status = client.specifications_by_status('Recommendation')
123
123
 
124
+ # Get predecessor and successor versions
125
+ predecessors = client.specification_version_predecessors('webrtc', '20241008')
126
+ successors = client.specification_version_successors('webrtc', '20241008')
127
+
128
+ # Navigate through version history with chained realization
129
+ version = client.specification_version('html5', '20140429')
130
+
131
+ # Get all predecessors and navigate through them
132
+ predecessors = version.links.predecessor_versions.realize
133
+ predecessors.links.predecessor_versions.each do |pred_link|
134
+ predecessor = pred_link.realize
135
+ puts "#{predecessor.title} - #{predecessor.date}"
136
+
137
+ # Each predecessor can have its own predecessors
138
+ if predecessor.links.predecessor_versions
139
+ pred_predecessors = predecessor.links.predecessor_versions.realize
140
+ # Continue navigation...
141
+ end
142
+ end
143
+
144
+ # Get all successors and navigate through them
145
+ successors = version.links.successor_versions.realize
146
+ successors.links.successor_versions.each do |succ_link|
147
+ successor = succ_link.realize
148
+ puts "#{successor.title} - #{successor.date}"
149
+
150
+ # Each successor can have its own successors
151
+ if successor.links.successor_versions
152
+ succ_successors = successor.links.successor_versions.realize
153
+ # Continue navigation...
154
+ end
155
+ end
156
+
157
+ # All client methods support comprehensive options including:
158
+
159
+ # Pagination options
160
+ specifications = client.specifications(page: 2, per_page: 50)
161
+ groups = client.groups(page: 1, per_page: 10, limit: 25, offset: 100)
162
+
163
+ # HTTP client options
164
+ user = client.user('hash', timeout: 30, headers: { 'User-Agent' => 'MyApp/1.0' })
165
+ spec = client.specification('html5', read_timeout: 45, open_timeout: 10)
166
+
167
+ # Query parameters for filtering and sorting
168
+ rec_specs = client.specifications_by_status('REC', sort: 'date', order: 'desc')
169
+ active_groups = client.groups(type: 'working-group', status: 'active')
170
+
171
+ # Combining multiple options
172
+ options = {
173
+ page: 1,
174
+ per_page: 25,
175
+ headers: { 'Accept-Language' => 'en-US' },
176
+ timeout: 60,
177
+ sort: 'name'
178
+ }
179
+ specs = client.specifications(options)
180
+
181
+ # Backward compatibility - existing code continues to work
182
+ specifications = client.specifications # No options
183
+ specification = client.specification('webrtc') # Required params only
184
+
124
185
  # Work with linked resources directly
125
186
  spec = client.specification('webrtc')
126
187
  spec_versions = spec.links.versions
@@ -255,6 +316,8 @@ By default, the output is in YAML format. You can specify the output format usin
255
316
  Commands:
256
317
  # Work with W3C specifications
257
318
  w3c_api specification SUBCOMMAND ...ARGS
319
+ # Work with W3C specification versions
320
+ w3c_api specification_version SUBCOMMAND ...ARGS
258
321
  # Work with W3C specification series
259
322
  w3c_api series SUBCOMMAND ...ARGS
260
323
  # Work with W3C groups
@@ -397,61 +460,65 @@ specifications:
397
460
  ----
398
461
  ====
399
462
 
400
- // === Specification version
401
-
402
- // TODO: This is not yet implemented!
403
-
404
- // ==== Editors
463
+ === Specification version
405
464
 
406
- // TODO: This is not yet implemented!
465
+ ==== Editors
407
466
 
408
- // This command provides access to editors of a specification version.
467
+ This command provides access to editors of a specification version.
409
468
 
410
- // [source,shell]
411
- // ----
412
- // # Fetch editors of a specification version
413
- // $ w3c_api specification-version editors --shortname=webrtc --version=20241008
414
- // ----
415
-
416
- // [example]
417
- // ====
418
- // [source,shell]
419
- // ----
420
- // $ w3c_api specification-version editors --shortname=webrtc --version=20241008
421
- // ---
422
- // users:
423
- // - href: https://api.w3.org/users/p3dte6mpoj4sgw888w8kw4w4skwosck
424
- // title: Cullen Jennings
425
- // - href: https://api.w3.org/users/kjqsxbe6kioko4s88s4wocws848kgw8
426
- // title: Bernard Aboba
427
- // - href: https://api.w3.org/users/t9qq83owlzkck404w0o44so8owc00gg
428
- // title: Jan-Ivar Bruaroey
429
- // ----
430
- // ====
469
+ [source,shell]
470
+ ----
471
+ # Fetch editors of a specification version
472
+ $ w3c_api specification_version editors --shortname=webrtc --version=20241008
473
+ ----
431
474
 
432
- // ==== Deliverers
475
+ [example]
476
+ ====
477
+ [source,shell]
478
+ ----
479
+ $ w3c_api specification_version editors --shortname=webrtc --version=20241008
480
+ ---
481
+ _links:
482
+ editors:
483
+ - href: https://api.w3.org/users/bzb5w20eg68k40gc8w0wg0okk4k84os
484
+ title: Cullen Jennings
485
+ type: User
486
+ - href: https://api.w3.org/users/f521yr1m6g0kks880s8ocwsgwskgss4
487
+ title: Jan-Ivar Bruaroey
488
+ type: User
489
+ - href: https://api.w3.org/users/1dsgdsi4zrj4goo4k400c8scw4k4ggk
490
+ title: Henrik Boström
491
+ type: User
492
+ - href: https://api.w3.org/users/nlyfs3q8s2s0gk0owoggkco0sg0wwso
493
+ title: Florent Castelli
494
+ type: User
495
+ ----
496
+ ====
433
497
 
434
- // TODO: This is not yet implemented!
498
+ ==== Deliverers
435
499
 
436
- // This command provides access to deliverers (working groups) of a specification version.
500
+ This command provides access to deliverers (working groups) of a specification
501
+ version.
437
502
 
438
- // [source,shell]
439
- // ----
440
- // # Fetch deliverers of a specification version
441
- // $ w3c_api specification-version deliverers --shortname=webrtc --version=20241008
442
- // ----
503
+ [source,shell]
504
+ ----
505
+ # Fetch deliverers of a specification version
506
+ $ w3c_api specification_version deliverers --shortname=webrtc --version=20241008
507
+ ----
443
508
 
444
- // [example]
445
- // ====
446
- // [source,shell]
447
- // ----
448
- // $ w3c_api specification-version deliverers --shortname=webrtc --version=20241008
449
- // ---
450
- // groups:
451
- // - href: https://api.w3.org/groups/wg/webrtc
452
- // title: Web Real-Time Communications Working Group
453
- // ----
454
- // ====
509
+ [example]
510
+ ====
511
+ [source,shell]
512
+ ----
513
+ $ w3c_api specification_version deliverers --shortname=webrtc --version=20241008
514
+ ---
515
+ _links:
516
+ deliverers:
517
+ - href: https://api.w3.org/groups/wg/webrtc
518
+ title: Web Real-Time Communications Working Group
519
+ type: Group
520
+ ----
521
+ ====
455
522
 
456
523
  === Series
457
524
 
@@ -535,9 +602,12 @@ specifications:
535
602
  This command provides access to W3C users.
536
603
 
537
604
  [IMPORTANT]
538
- .User ID Formats
605
+ .User ID formats
539
606
  ====
540
- The W3C API uses both numeric IDs (e.g., `128112`) and string IDs (e.g., `f1ovb5rydm8s0go04oco0cgk0sow44w`) for users. All user-related commands support both formats. The format depends on how the user is referenced in API responses.
607
+ The W3C API uses both numeric IDs (e.g., `128112`) and string IDs (e.g.,
608
+ `f1ovb5rydm8s0go04oco0cgk0sow44w`) for users. All user-related commands
609
+ support both formats. The format depends on how the user is referenced in API
610
+ responses.
541
611
  ====
542
612
 
543
613
  ==== Get
@@ -742,7 +812,7 @@ participations:
742
812
  ----
743
813
  ====
744
814
 
745
- ==== Chair of Groups
815
+ ==== Chair of groups
746
816
 
747
817
  Getting groups a user chairs.
748
818
 
@@ -996,34 +1066,35 @@ $ w3c_api group specifications --id=109735
996
1066
  ----
997
1067
  $ w3c_api group specifications --id=109735
998
1068
  ---
1069
+ _links:
1070
+ self:
1071
+ href: https://api.w3.org/groups/109735/specifications?page=1&items=100
1072
+ type: SpecificationIndex
1073
+ first:
1074
+ href: https://api.w3.org/groups/109735/specifications?page=1&items=100
1075
+ type: SpecificationIndex
1076
+ last:
1077
+ href: https://api.w3.org/groups/109735/specifications?page=1&items=100
1078
+ type: SpecificationIndex
1079
+ up:
1080
+ href: https://api.w3.org/groups/109735
1081
+ type: SpecificationIndex
999
1082
  specifications:
1000
1083
  - href: https://api.w3.org/specifications/webxr-lighting-estimation-1
1001
1084
  title: WebXR Lighting Estimation API Level 1
1002
1085
  type: Specification
1003
- - href: https://api.w3.org/specifications/webxr-ar-module-1
1004
- title: WebXR Augmented Reality Module - Level 1
1005
- type: Specification
1006
1086
  - href: https://api.w3.org/specifications/webxr-gamepads-module-1
1007
1087
  title: WebXR Gamepads Module - Level 1
1008
1088
  type: Specification
1009
- - href: https://api.w3.org/specifications/webxrlayers-1
1010
- title: WebXR Layers API Level 1
1011
- type: Specification
1012
1089
  - href: https://api.w3.org/specifications/webxr-hand-input-1
1013
1090
  title: WebXR Hand Input Module - Level 1
1014
1091
  type: Specification
1015
1092
  - href: https://api.w3.org/specifications/webxr-hit-test-1
1016
1093
  title: WebXR Hit Test Module
1017
1094
  type: Specification
1018
- - href: https://api.w3.org/specifications/webxr-depth-sensing-1
1019
- title: WebXR Depth Sensing Module
1020
- type: Specification
1021
1095
  - href: https://api.w3.org/specifications/webxr-dom-overlays-1
1022
1096
  title: WebXR DOM Overlays Module
1023
1097
  type: Specification
1024
- - href: https://api.w3.org/specifications/webxr
1025
- title: WebXR Device API
1026
- type: Specification
1027
1098
  ----
1028
1099
  ====
1029
1100
 
@@ -1043,6 +1114,19 @@ $ w3c_api group users --id=109735
1043
1114
  ----
1044
1115
  $ w3c_api group users --id=109735
1045
1116
  ---
1117
+ _links:
1118
+ self:
1119
+ href: https://api.w3.org/groups/109735/users?page=1&items=100
1120
+ type: UserIndex
1121
+ first:
1122
+ href: https://api.w3.org/groups/109735/users?page=1&items=100
1123
+ type: UserIndex
1124
+ last:
1125
+ href: https://api.w3.org/groups/109735/users?page=1&items=100
1126
+ type: UserIndex
1127
+ up:
1128
+ href: https://api.w3.org/groups/109735
1129
+ type: UserIndex
1046
1130
  users:
1047
1131
  - href: https://api.w3.org/users/9o1jsmhi8ysk088w0k4g00wsssk4c8c
1048
1132
  title: Muadh Al Kalbani
@@ -1075,6 +1159,19 @@ $ w3c_api group charters --id=109735
1075
1159
  ----
1076
1160
  $ w3c_api group charters --id=109735
1077
1161
  ---
1162
+ _links:
1163
+ self:
1164
+ href: https://api.w3.org/groups/109735/charters?page=1&items=100
1165
+ type: W3cApi::Models::CharterIndex
1166
+ first:
1167
+ href: https://api.w3.org/groups/109735/charters?page=1&items=100
1168
+ type: W3cApi::Models::CharterIndex
1169
+ last:
1170
+ href: https://api.w3.org/groups/109735/charters?page=1&items=100
1171
+ type: W3cApi::Models::CharterIndex
1172
+ up:
1173
+ href: https://api.w3.org/groups/109735
1174
+ type: W3cApi::Models::CharterIndex
1078
1175
  charters:
1079
1176
  - href: https://api.w3.org/groups/109735/charters/361
1080
1177
  title: 2018-09-24 -> 2020-03-01
@@ -1088,6 +1185,10 @@ $ w3c_api group charters --id=109735
1088
1185
  - href: https://api.w3.org/groups/109735/charters/514
1089
1186
  title: 2024-09-26 -> 2026-09-25
1090
1187
  type: Charter
1188
+ page: 1
1189
+ limit: 100
1190
+ pages: 1
1191
+ total: 4
1091
1192
  ----
1092
1193
  ====
1093
1194
 
@@ -1110,27 +1211,32 @@ $ w3c_api translation fetch [OPTIONS]
1110
1211
  ----
1111
1212
  $ w3c_api translation fetch
1112
1213
  ---
1113
- "translations": [
1114
- {
1115
- "href": "https://api.w3.org/translations/2",
1116
- "title": "Vidéo : introduction à l’accessibilité web et aux standards du W3C",
1117
- "language": "fr"
1118
- },
1119
- {
1120
- "href": "https://api.w3.org/translations/3",
1121
- "title": "Vídeo de Introducción a la Accesibilidad Web y Estándares del W3C",
1122
- "language": "es"
1123
- },
1124
- {
1125
- "href": "https://api.w3.org/translations/4",
1126
- "title": "Video-introductie over Web-toegankelijkheid en W3C-standaarden",
1127
- "language": "nl"
1128
- },
1129
- {
1130
- "href": "https://api.w3.org/translations/5",
1131
- "title": "网页无障碍和W3C标准的介绍视频",
1132
- "language": "zh_Hans"
1133
- },...
1214
+ _links:
1215
+ self:
1216
+ href: https://api.w3.org/translations?page=1&items=100
1217
+ type: TranslationIndex
1218
+ next:
1219
+ href: https://api.w3.org/translations?page=2&items=100
1220
+ type: TranslationIndex
1221
+ first:
1222
+ href: https://api.w3.org/translations?page=1&items=100
1223
+ type: TranslationIndex
1224
+ last:
1225
+ href: https://api.w3.org/translations?page=7&items=100
1226
+ type: TranslationIndex
1227
+ translations:
1228
+ - href: https://api.w3.org/translations/2
1229
+ title: 'Vidéo : introduction à l’accessibilité web et aux standards du W3C'
1230
+ type: Translation
1231
+ - href: https://api.w3.org/translations/3
1232
+ title: Vídeo de Introducción a la Accesibilidad Web y Estándares del W3C
1233
+ type: Translation
1234
+ - href: https://api.w3.org/translations/4
1235
+ title: Video-introductie over Web-toegankelijkheid en W3C-standaarden
1236
+ type: Translation
1237
+ - href: https://api.w3.org/translations/5
1238
+ title: 网页无障碍和W3C标准的介绍视频
1239
+ type: Translation
1134
1240
  ----
1135
1241
  ====
1136
1242
 
@@ -1252,6 +1358,10 @@ _links:
1252
1358
  - href: https://api.w3.org/ecosystems/data
1253
1359
  title: Data and knowledge
1254
1360
  type: Ecosystem
1361
+ page: 1
1362
+ limit: 100
1363
+ pages: 1
1364
+ total: 9
1255
1365
  ----
1256
1366
  ====
1257
1367
 
@@ -1287,7 +1397,7 @@ _links:
1287
1397
  type: GroupIndex
1288
1398
  member-organizations:
1289
1399
  href: https://api.w3.org/ecosystems/data/member-organizations
1290
- type: AffiliationIndex
1400
+ type: W3cApi::Models::AffiliationIndex
1291
1401
  name: Data and knowledge
1292
1402
  shortname: data
1293
1403
  ----
@@ -1331,6 +1441,10 @@ _links:
1331
1441
  - href: https://api.w3.org/users/qdkk81rtp344c44g0osoocgwwc8o4ss
1332
1442
  title: Bobby Tung
1333
1443
  type: User
1444
+ page: 1
1445
+ limit: 100
1446
+ pages: 1
1447
+ total: 3
1334
1448
  ----
1335
1449
  ====
1336
1450
 
@@ -1350,7 +1464,6 @@ $ w3c_api ecosystem groups --shortname={shortname}
1350
1464
  ----
1351
1465
  $ w3c_api ecosystem groups --shortname=publishing
1352
1466
  ---
1353
- ---
1354
1467
  _links:
1355
1468
  self:
1356
1469
  href: https://api.w3.org/ecosystems/publishing/groups?page=1&items=100
@@ -1368,9 +1481,6 @@ _links:
1368
1481
  - href: https://api.w3.org/groups/cg/a11y-discov-vocab
1369
1482
  title: Accessibility Discoverability Vocabulary for Schema.org Community Group
1370
1483
  type: Group
1371
- - href: https://api.w3.org/groups/cg/epub3
1372
- title: EPUB 3 Community Group
1373
- type: Group
1374
1484
  - href: https://api.w3.org/groups/bg/publishingbg
1375
1485
  title: Publishing Business Group
1376
1486
  type: Group
@@ -1380,6 +1490,10 @@ _links:
1380
1490
  - href: https://api.w3.org/groups/wg/pm
1381
1491
  title: Publishing Maintenance Working Group
1382
1492
  type: Group
1493
+ page: 1
1494
+ limit: 100
1495
+ pages: 1
1496
+ total: 4
1383
1497
  ----
1384
1498
  ====
1385
1499
 
@@ -1425,6 +1539,9 @@ _links:
1425
1539
  - href: https://api.w3.org/affiliations/43420
1426
1540
  title: Apache Software Foundation
1427
1541
  type: Affiliation
1542
+ - href: https://api.w3.org/affiliations/1202
1543
+ title: Apple Inc.
1544
+ type: Affiliation
1428
1545
  ...
1429
1546
  ----
1430
1547
  ====
@@ -1521,6 +1638,10 @@ _links:
1521
1638
  - href: https://api.w3.org/users/j2d10std2l4ck448woccowg8cg8g8go
1522
1639
  title: Jean-Luc Chevillard
1523
1640
  type: User
1641
+ page: 1
1642
+ limit: 100
1643
+ pages: 1
1644
+ total: 1
1524
1645
  ----
1525
1646
  ====
1526
1647
 
@@ -1558,6 +1679,10 @@ _links:
1558
1679
  - href: https://api.w3.org/participations/32932
1559
1680
  title: XQuery and XSLT Extensions Community Group
1560
1681
  type: Participation
1682
+ page: 1
1683
+ limit: 100
1684
+ pages: 1
1685
+ total: 1
1561
1686
  ----
1562
1687
  ====
1563
1688
 
@@ -1633,6 +1758,10 @@ _links:
1633
1758
  - href: https://api.w3.org/users/j2d10std2l4ck448woccowg8cg8g8go
1634
1759
  title: Jean-Luc Chevillard
1635
1760
  type: User
1761
+ page: 1
1762
+ limit: 100
1763
+ pages: 1
1764
+ total: 1
1636
1765
  ----
1637
1766
  ====
1638
1767
 
data/Rakefile CHANGED
@@ -1,8 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- task default: :spec
8
+ require 'rubocop/rake_task'
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/lib/w3c_api/cli.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'thor'
4
4
  require_relative 'commands/specification'
5
+ require_relative 'commands/specification_version'
5
6
  require_relative 'commands/group'
6
7
  require_relative 'commands/user'
7
8
  require_relative 'commands/translation'
@@ -17,6 +18,9 @@ module W3cApi
17
18
  desc 'specification SUBCOMMAND ...ARGS', 'Work with W3C specifications'
18
19
  subcommand 'specification', Commands::Specification
19
20
 
21
+ desc 'specification_version SUBCOMMAND ...ARGS', 'Work with W3C specification versions'
22
+ subcommand 'specification_version', Commands::SpecificationVersion
23
+
20
24
  desc 'group SUBCOMMAND ...ARGS', 'Work with W3C groups'
21
25
  subcommand 'group', Commands::Group
22
26