rsmp_schemer 0.2.1 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f413dd61c3d8c86ab1455ac02b175b9791bb958dba827301e80b9070da4d334
4
- data.tar.gz: 99af9cbaac9dc80b989a776b6fbbce5cfbbbc355e08399a3b9eff2d401cfc3ab
3
+ metadata.gz: e78a2bb9b9f856cf1d54f5fbe2671fcbb057f16535891e7b82eb03e8a64ceba6
4
+ data.tar.gz: afdf626b6a073ade8286d7b9bd48412f3c97ab6058b9c08feb9c29364e69daec
5
5
  SHA512:
6
- metadata.gz: a0656a181b391a8b4e0d56ef2d4563fdbe5fbf0331bc413436649ec76bafae2eb10cd2b04023f8013d92791e5bd251178f8878ee795fe263c1a98d50e9d8e3e8
7
- data.tar.gz: 6a5ce0d1a4ba770ae6e282b5bf2e3189cfd0fec08e81357c0436ed89d47622ec0bf44ce378c50dc1876f1bea0df08b73b3ed61594468a02484fca8b06431ed3b
6
+ metadata.gz: ca7fdfd973726b4146abed20e83bbdd97b7b7f8eed7b745c49f34d376d8b610575c402fedf0584c80fadfeebf22a63e11981333f7df5ba07dd1abed96085797c
7
+ data.tar.gz: f76cd381919d93cfda44aa6b44ba5db71bb2f04f84ab4b78538000d90844573e4a58d81efa2d9b7c11a74c945328624fec576e76a323b3d3e489bb451e8ea189
data/CHANGELOG.md CHANGED
@@ -8,3 +8,7 @@
8
8
 
9
9
  ## [0.2.1] - 2021-06-17
10
10
  - Updated schemas
11
+
12
+ ## [0.2.2] - 2021-06-18
13
+ - Option for lenient version string parsing
14
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schemer (0.2.1)
4
+ rsmp_schemer (0.3)
5
5
  json_schemer (~> 0.2.18)
6
6
 
7
7
  GEM
@@ -52,26 +52,35 @@ module RSMP::Schemer
52
52
  schemas
53
53
  end
54
54
 
55
- def self.find_schema type, version
55
+ def self.find_schema type, version, options={}
56
56
  raise ArgumentError.new("version missing") unless version
57
- schemas = find_schemas type
58
- if schemas
59
- schemas[version]
60
- else
61
- nil
57
+ version = sanitize_version version if options[:lenient]
58
+ if version
59
+ schemas = find_schemas type
60
+ return schemas[version] if schemas
62
61
  end
62
+ nil
63
63
  end
64
64
 
65
- def self.find_schema! type, version
65
+ def self.sanitize_version version
66
+ matched = /^\d+\.\d+\.\d+/.match version
67
+ matched.to_s if matched
68
+ end
69
+
70
+ def self.find_schema! type, version, options={}
71
+ schema = find_schema type, version, options
66
72
  raise ArgumentError.new("version missing") unless version
67
- schemas = find_schemas! type
68
- schema = schemas[version]
69
- raise UnknownSchemaVersionError.new("Unknown schema version #{type} #{version}") unless schema
70
- schema
73
+ version = sanitize_version version if options[:lenient]
74
+ if version
75
+ schemas = find_schemas! type
76
+ schema = schemas[version]
77
+ return schema if schema
78
+ end
79
+ raise UnknownSchemaVersionError.new("Unknown schema version #{type} #{version}")
71
80
  end
72
81
 
73
- def self.has_schema? type, version
74
- find_schema(type,version) != nil
82
+ def self.has_schema? type, version, options={}
83
+ find_schema(type,version, options) != nil
75
84
  end
76
85
 
77
86
  def self.validate message, schemas
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSMP
4
4
  module Schemer
5
- VERSION = "0.2.1"
5
+ VERSION = "0.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp_schemer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-17 00:00:00.000000000 Z
11
+ date: 2021-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_schemer