rsmp_schema 0.2.5 → 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/Gemfile.lock +1 -1
- data/README.md +3 -3
- data/examples/validate.rb +1 -1
- data/lib/rsmp_schema/convert/export/json_schema.rb +1 -1
- data/lib/rsmp_schema/schema.rb +32 -12
- data/lib/rsmp_schema/version.rb +1 -1
- data/schemas/tlc/1.0.10/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.13/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.14/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.15/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.7/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.8/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.0.9/{sxl.json → rsmp.json} +0 -0
- data/schemas/tlc/1.1/{sxl.json → rsmp.json} +0 -0
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 575a89e29f57a294f101abea73f59c22c43d4156ad3b700f5c71bbda7dcbe79b
|
4
|
+
data.tar.gz: 2887c0c2f4ccb51ae60f41dfd499035d136317fd5086255c14f26a255d26b365
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02b3e8b39f2eb04775a6c723bb9b6cffd5e2ab66e987ee77b16c5cfb895a47cf201c1efc557f0a2b90b7e035b8483905f08624999643bcaf823c1614dbefbceb
|
7
|
+
data.tar.gz: 99df31b79fe0b7f74f60b441d47d43ad6e8a2ca756907ec0d5f9a61783e5bb3ce4016aa448a731c5825714ea6eae4e62a0fe5e8c9cd684c1ffcce8796c4cb14a
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -13,14 +13,14 @@ The schema consists of a core schema shared by all equipment types, and an SXL s
|
|
13
13
|
|
14
14
|
Both core and SXL schemas exist in different version, for validation agaist a particular version of the spec.
|
15
15
|
|
16
|
-
For example, to validate against the SXL for Trafic Light Controllers (TLCs), version 1.0.15, use the file schemas/tcl/1.0.15/
|
16
|
+
For example, to validate against the SXL for Trafic Light Controllers (TLCs), version 1.0.15, use the file schemas/tcl/1.0.15/rsmp.json.
|
17
17
|
|
18
18
|
Depending on the message type, relevant JSON Schema elements will be included to validate the detailed parameters, arguments, etc.
|
19
19
|
|
20
20
|
For example, validating a CommandRequest M0001 message will include these parts:
|
21
21
|
|
22
22
|
```
|
23
|
-
|
23
|
+
rsmp.json
|
24
24
|
commands.json
|
25
25
|
M0001.json
|
26
26
|
```
|
@@ -52,7 +52,7 @@ message = {
|
|
52
52
|
}
|
53
53
|
|
54
54
|
# try validating a message against our schema
|
55
|
-
schema = Pathname.new('schemas/tlc/1.1/
|
55
|
+
schema = Pathname.new('schemas/tlc/1.1/rsmp.json')
|
56
56
|
schemer = JSONSchemer.schema(schema)
|
57
57
|
puts schemer.valid? message # => true
|
58
58
|
```
|
data/examples/validate.rb
CHANGED
data/lib/rsmp_schema/schema.rb
CHANGED
@@ -11,21 +11,41 @@ module RSMP::Schema
|
|
11
11
|
schemas_path = File.expand_path( File.join(__dir__,'..','..','schemas') )
|
12
12
|
Dir.glob("#{schemas_path}/*").select {|f| File.directory? f}.each do |type_path|
|
13
13
|
type = File.basename(type_path).to_sym
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
load_schema_type type, type_path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# load an schema from a folder. schemas are organized by version, and contain
|
19
|
+
# json schema files, with the entry point being rsmp.jspon, eg:
|
20
|
+
# tlc
|
21
|
+
# 1.0.7
|
22
|
+
# rsmp.json
|
23
|
+
# other jon schema files...
|
24
|
+
# 1.0.8
|
25
|
+
# ...
|
26
|
+
#
|
27
|
+
# an error is raised if the schema type already exists, and force is not set to true
|
28
|
+
def self.load_schema_type type, type_path, force:false
|
29
|
+
raise RuntimeError.new("Schema type #{type} already loaded") if @@schemas[type] && force!=true
|
30
|
+
@@schemas[type] = {}
|
31
|
+
Dir.glob("#{type_path}/*").select {|f| File.directory? f}.each do |schema_path|
|
32
|
+
version = File.basename(schema_path)
|
33
|
+
@@schemas[type][version] = JSONSchemer.schema(
|
34
|
+
Pathname.new(File.join(schema_path,'rsmp.json'))
|
35
|
+
)
|
26
36
|
end
|
27
37
|
end
|
28
38
|
|
39
|
+
# remove a schema type
|
40
|
+
def self.remove_schema_type type
|
41
|
+
schemas.delete type
|
42
|
+
end
|
43
|
+
|
44
|
+
# get schemas types
|
45
|
+
def self.schema_types
|
46
|
+
schemas.keys
|
47
|
+
end
|
48
|
+
|
29
49
|
# get all schemas, oganized by type and version
|
30
50
|
def self.schemas
|
31
51
|
raise RuntimeError.new("No schemas available, perhaps Schema.setup was never called?") unless @@schemas
|
data/lib/rsmp_schema/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsmp_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emil Tin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_schemer
|
@@ -190,6 +190,7 @@ files:
|
|
190
190
|
- schemas/tlc/1.0.10/commands/command_requests.json
|
191
191
|
- schemas/tlc/1.0.10/commands/command_responses.json
|
192
192
|
- schemas/tlc/1.0.10/commands/commands.json
|
193
|
+
- schemas/tlc/1.0.10/rsmp.json
|
193
194
|
- schemas/tlc/1.0.10/statuses/S0001.json
|
194
195
|
- schemas/tlc/1.0.10/statuses/S0002.json
|
195
196
|
- schemas/tlc/1.0.10/statuses/S0003.json
|
@@ -220,7 +221,6 @@ files:
|
|
220
221
|
- schemas/tlc/1.0.10/statuses/S0203.json
|
221
222
|
- schemas/tlc/1.0.10/statuses/S0204.json
|
222
223
|
- schemas/tlc/1.0.10/statuses/statuses.json
|
223
|
-
- schemas/tlc/1.0.10/sxl.json
|
224
224
|
- schemas/tlc/1.0.10/sxl.yaml
|
225
225
|
- schemas/tlc/1.0.13/alarms/A0001.json
|
226
226
|
- schemas/tlc/1.0.13/alarms/A0002.json
|
@@ -260,6 +260,7 @@ files:
|
|
260
260
|
- schemas/tlc/1.0.13/commands/command_requests.json
|
261
261
|
- schemas/tlc/1.0.13/commands/command_responses.json
|
262
262
|
- schemas/tlc/1.0.13/commands/commands.json
|
263
|
+
- schemas/tlc/1.0.13/rsmp.json
|
263
264
|
- schemas/tlc/1.0.13/statuses/S0001.json
|
264
265
|
- schemas/tlc/1.0.13/statuses/S0002.json
|
265
266
|
- schemas/tlc/1.0.13/statuses/S0003.json
|
@@ -298,7 +299,6 @@ files:
|
|
298
299
|
- schemas/tlc/1.0.13/statuses/S0203.json
|
299
300
|
- schemas/tlc/1.0.13/statuses/S0204.json
|
300
301
|
- schemas/tlc/1.0.13/statuses/statuses.json
|
301
|
-
- schemas/tlc/1.0.13/sxl.json
|
302
302
|
- schemas/tlc/1.0.13/sxl.yaml
|
303
303
|
- schemas/tlc/1.0.14/alarms/A0001.json
|
304
304
|
- schemas/tlc/1.0.14/alarms/A0002.json
|
@@ -338,6 +338,7 @@ files:
|
|
338
338
|
- schemas/tlc/1.0.14/commands/command_requests.json
|
339
339
|
- schemas/tlc/1.0.14/commands/command_responses.json
|
340
340
|
- schemas/tlc/1.0.14/commands/commands.json
|
341
|
+
- schemas/tlc/1.0.14/rsmp.json
|
341
342
|
- schemas/tlc/1.0.14/statuses/S0001.json
|
342
343
|
- schemas/tlc/1.0.14/statuses/S0002.json
|
343
344
|
- schemas/tlc/1.0.14/statuses/S0003.json
|
@@ -380,7 +381,6 @@ files:
|
|
380
381
|
- schemas/tlc/1.0.14/statuses/S0207.json
|
381
382
|
- schemas/tlc/1.0.14/statuses/S0208.json
|
382
383
|
- schemas/tlc/1.0.14/statuses/statuses.json
|
383
|
-
- schemas/tlc/1.0.14/sxl.json
|
384
384
|
- schemas/tlc/1.0.14/sxl.yaml
|
385
385
|
- schemas/tlc/1.0.15/alarms/A0001.json
|
386
386
|
- schemas/tlc/1.0.15/alarms/A0002.json
|
@@ -423,6 +423,7 @@ files:
|
|
423
423
|
- schemas/tlc/1.0.15/commands/command_requests.json
|
424
424
|
- schemas/tlc/1.0.15/commands/command_responses.json
|
425
425
|
- schemas/tlc/1.0.15/commands/commands.json
|
426
|
+
- schemas/tlc/1.0.15/rsmp.json
|
426
427
|
- schemas/tlc/1.0.15/statuses/S0001.json
|
427
428
|
- schemas/tlc/1.0.15/statuses/S0002.json
|
428
429
|
- schemas/tlc/1.0.15/statuses/S0003.json
|
@@ -469,7 +470,6 @@ files:
|
|
469
470
|
- schemas/tlc/1.0.15/statuses/S0207.json
|
470
471
|
- schemas/tlc/1.0.15/statuses/S0208.json
|
471
472
|
- schemas/tlc/1.0.15/statuses/statuses.json
|
472
|
-
- schemas/tlc/1.0.15/sxl.json
|
473
473
|
- schemas/tlc/1.0.15/sxl.yaml
|
474
474
|
- schemas/tlc/1.0.7/alarms/A0001.json
|
475
475
|
- schemas/tlc/1.0.7/alarms/A0002.json
|
@@ -502,6 +502,7 @@ files:
|
|
502
502
|
- schemas/tlc/1.0.7/commands/command_requests.json
|
503
503
|
- schemas/tlc/1.0.7/commands/command_responses.json
|
504
504
|
- schemas/tlc/1.0.7/commands/commands.json
|
505
|
+
- schemas/tlc/1.0.7/rsmp.json
|
505
506
|
- schemas/tlc/1.0.7/statuses/S0001.json
|
506
507
|
- schemas/tlc/1.0.7/statuses/S0002.json
|
507
508
|
- schemas/tlc/1.0.7/statuses/S0003.json
|
@@ -533,7 +534,6 @@ files:
|
|
533
534
|
- schemas/tlc/1.0.7/statuses/S0203.json
|
534
535
|
- schemas/tlc/1.0.7/statuses/S0204.json
|
535
536
|
- schemas/tlc/1.0.7/statuses/statuses.json
|
536
|
-
- schemas/tlc/1.0.7/sxl.json
|
537
537
|
- schemas/tlc/1.0.7/sxl.yaml
|
538
538
|
- schemas/tlc/1.0.8/alarms/A0001.json
|
539
539
|
- schemas/tlc/1.0.8/alarms/A0002.json
|
@@ -568,6 +568,7 @@ files:
|
|
568
568
|
- schemas/tlc/1.0.8/commands/command_requests.json
|
569
569
|
- schemas/tlc/1.0.8/commands/command_responses.json
|
570
570
|
- schemas/tlc/1.0.8/commands/commands.json
|
571
|
+
- schemas/tlc/1.0.8/rsmp.json
|
571
572
|
- schemas/tlc/1.0.8/statuses/S0001.json
|
572
573
|
- schemas/tlc/1.0.8/statuses/S0002.json
|
573
574
|
- schemas/tlc/1.0.8/statuses/S0003.json
|
@@ -599,7 +600,6 @@ files:
|
|
599
600
|
- schemas/tlc/1.0.8/statuses/S0203.json
|
600
601
|
- schemas/tlc/1.0.8/statuses/S0204.json
|
601
602
|
- schemas/tlc/1.0.8/statuses/statuses.json
|
602
|
-
- schemas/tlc/1.0.8/sxl.json
|
603
603
|
- schemas/tlc/1.0.8/sxl.yaml
|
604
604
|
- schemas/tlc/1.0.9/alarms/A0001.json
|
605
605
|
- schemas/tlc/1.0.9/alarms/A0002.json
|
@@ -634,6 +634,7 @@ files:
|
|
634
634
|
- schemas/tlc/1.0.9/commands/command_requests.json
|
635
635
|
- schemas/tlc/1.0.9/commands/command_responses.json
|
636
636
|
- schemas/tlc/1.0.9/commands/commands.json
|
637
|
+
- schemas/tlc/1.0.9/rsmp.json
|
637
638
|
- schemas/tlc/1.0.9/statuses/S0001.json
|
638
639
|
- schemas/tlc/1.0.9/statuses/S0002.json
|
639
640
|
- schemas/tlc/1.0.9/statuses/S0003.json
|
@@ -665,7 +666,6 @@ files:
|
|
665
666
|
- schemas/tlc/1.0.9/statuses/S0203.json
|
666
667
|
- schemas/tlc/1.0.9/statuses/S0204.json
|
667
668
|
- schemas/tlc/1.0.9/statuses/statuses.json
|
668
|
-
- schemas/tlc/1.0.9/sxl.json
|
669
669
|
- schemas/tlc/1.0.9/sxl.yaml
|
670
670
|
- schemas/tlc/1.1/alarms/A0001.json
|
671
671
|
- schemas/tlc/1.1/alarms/A0002.json
|
@@ -712,6 +712,7 @@ files:
|
|
712
712
|
- schemas/tlc/1.1/commands/command_requests.json
|
713
713
|
- schemas/tlc/1.1/commands/command_responses.json
|
714
714
|
- schemas/tlc/1.1/commands/commands.json
|
715
|
+
- schemas/tlc/1.1/rsmp.json
|
715
716
|
- schemas/tlc/1.1/statuses/S0001.json
|
716
717
|
- schemas/tlc/1.1/statuses/S0002.json
|
717
718
|
- schemas/tlc/1.1/statuses/S0003.json
|
@@ -761,7 +762,6 @@ files:
|
|
761
762
|
- schemas/tlc/1.1/statuses/S0207.json
|
762
763
|
- schemas/tlc/1.1/statuses/S0208.json
|
763
764
|
- schemas/tlc/1.1/statuses/statuses.json
|
764
|
-
- schemas/tlc/1.1/sxl.json
|
765
765
|
- schemas/tlc/1.1/sxl.yaml
|
766
766
|
homepage: https://github.com/rsmp-nordic/rsmp_schema
|
767
767
|
licenses:
|