sec_id 6.1.0 → 7.1.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/CHANGELOG.md +20 -0
- data/MIGRATION.md +147 -0
- data/README.md +108 -45
- data/lib/sec_id/base.rb +36 -17
- data/lib/sec_id/cei.rb +8 -7
- data/lib/sec_id/cik.rb +1 -1
- data/lib/sec_id/concerns/checkable.rb +90 -46
- data/lib/sec_id/concerns/generatable.rb +5 -5
- data/lib/sec_id/concerns/normalizable.rb +4 -4
- data/lib/sec_id/concerns/suggestable.rb +168 -0
- data/lib/sec_id/concerns/validatable.rb +7 -7
- data/lib/sec_id/cusip.rb +9 -8
- data/lib/sec_id/deprecation.rb +26 -0
- data/lib/sec_id/dti.rb +9 -14
- data/lib/sec_id/figi.rb +10 -9
- data/lib/sec_id/iban.rb +21 -20
- data/lib/sec_id/isin.rb +10 -9
- data/lib/sec_id/lei.rb +11 -10
- data/lib/sec_id/occ.rb +1 -1
- data/lib/sec_id/sedol.rb +12 -11
- data/lib/sec_id/suggestion.rb +59 -0
- data/lib/sec_id/upi.rb +77 -0
- data/lib/sec_id/valoren.rb +2 -2
- data/lib/sec_id/version.rb +1 -1
- data/lib/sec_id/wkn.rb +1 -1
- data/lib/sec_id.rb +43 -3
- data/sec_id.gemspec +5 -4
- data/sig/sec_id/base.rbs +16 -5
- data/sig/sec_id/cei.rbs +4 -0
- data/sig/sec_id/concerns/checkable.rbs +18 -7
- data/sig/sec_id/concerns/generatable.rbs +1 -1
- data/sig/sec_id/concerns/suggestable.rbs +32 -0
- data/sig/sec_id/concerns/validatable.rbs +1 -1
- data/sig/sec_id/cusip.rbs +4 -0
- data/sig/sec_id/deprecation.rbs +6 -0
- data/sig/sec_id/dti.rbs +6 -1
- data/sig/sec_id/figi.rbs +4 -0
- data/sig/sec_id/iban.rbs +7 -3
- data/sig/sec_id/isin.rbs +4 -0
- data/sig/sec_id/lei.rbs +5 -1
- data/sig/sec_id/sedol.rbs +4 -0
- data/sig/sec_id/suggestion.rbs +23 -0
- data/sig/sec_id/upi.rbs +29 -0
- data/sig/sec_id.rbs +7 -2
- metadata +14 -5
data/sig/sec_id.rbs
CHANGED
|
@@ -7,10 +7,13 @@ module SecID
|
|
|
7
7
|
class InvalidFormatError < Error
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
# Raised when the
|
|
11
|
-
class
|
|
10
|
+
# Raised when the checksum does not match the calculated value.
|
|
11
|
+
class InvalidChecksumError < Error
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# @deprecated v7 bridge constant alias for `InvalidChecksumError` (same class object); removed in v8.
|
|
15
|
+
InvalidCheckDigitError: singleton(InvalidChecksumError)
|
|
16
|
+
|
|
14
17
|
# Raised for type-specific structural errors.
|
|
15
18
|
class InvalidStructureError < Error
|
|
16
19
|
end
|
|
@@ -35,9 +38,11 @@ module SecID
|
|
|
35
38
|
# against the `:first`/`:raise` arm's `Base?` and fail. Widening here keeps `result` untyped.
|
|
36
39
|
def self.parse!: (SecID::input str, ?types: Array[Symbol]?, ?on_ambiguous: Symbol) -> (Base | Array[Base])
|
|
37
40
|
def self.generate: (Symbol key, ?random: Random) -> Base
|
|
41
|
+
def self.suggest: (SecID::input str, ?types: Array[Symbol]?) -> Array[Suggestion]
|
|
38
42
|
|
|
39
43
|
# Singleton-method privacy must be declared inline (`private def self.…`); a bare
|
|
40
44
|
# `private` section only affects instance methods, leaving these public.
|
|
45
|
+
private def self.suggestable_types: (String input, Array[Symbol]? types) -> Array[singleton(Base)]
|
|
41
46
|
private def self.register_identifier: (singleton(Base) klass) -> void
|
|
42
47
|
private def self.parse_any: (SecID::input str) -> Base?
|
|
43
48
|
private def self.parse_from: (SecID::input str, Array[Symbol] types) -> Base?
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sec_id
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 7.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Leonid Svyatov
|
|
@@ -9,12 +9,13 @@ bindir: bin
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies: []
|
|
12
|
-
description: Validate, normalize, parse, convert, generate, and
|
|
12
|
+
description: Validate, normalize, parse, convert, generate, classify, and repair securities
|
|
13
13
|
identifiers. Auto-detect identifier type from any string. Calculate and restore
|
|
14
|
-
|
|
14
|
+
checksums. Suggest confidence-ranked corrections for fat-fingered or OCR-mangled
|
|
15
|
+
identifiers. Generate format-valid identifiers as test fixtures. Decode CFI codes
|
|
15
16
|
to full ISO 10962:2021 classifications. Includes an opt-in ActiveModel/Rails validator
|
|
16
17
|
that adds no runtime dependency. Supports ISIN, CUSIP, CEI, SEDOL, FIGI, LEI, IBAN,
|
|
17
|
-
CIK, OCC, WKN, Valoren, CFI, FISN, BIC, and
|
|
18
|
+
CIK, OCC, WKN, Valoren, CFI, FISN, BIC, DTI, and UPI.
|
|
18
19
|
email:
|
|
19
20
|
- leonid@svyatov.ru
|
|
20
21
|
executables: []
|
|
@@ -41,9 +42,11 @@ files:
|
|
|
41
42
|
- lib/sec_id/concerns/checkable.rb
|
|
42
43
|
- lib/sec_id/concerns/generatable.rb
|
|
43
44
|
- lib/sec_id/concerns/normalizable.rb
|
|
45
|
+
- lib/sec_id/concerns/suggestable.rb
|
|
44
46
|
- lib/sec_id/concerns/validatable.rb
|
|
45
47
|
- lib/sec_id/cusip.rb
|
|
46
48
|
- lib/sec_id/deep_freeze.rb
|
|
49
|
+
- lib/sec_id/deprecation.rb
|
|
47
50
|
- lib/sec_id/detector.rb
|
|
48
51
|
- lib/sec_id/dti.rb
|
|
49
52
|
- lib/sec_id/errors.rb
|
|
@@ -57,6 +60,8 @@ files:
|
|
|
57
60
|
- lib/sec_id/railtie.rb
|
|
58
61
|
- lib/sec_id/scanner.rb
|
|
59
62
|
- lib/sec_id/sedol.rb
|
|
63
|
+
- lib/sec_id/suggestion.rb
|
|
64
|
+
- lib/sec_id/upi.rb
|
|
60
65
|
- lib/sec_id/valoren.rb
|
|
61
66
|
- lib/sec_id/version.rb
|
|
62
67
|
- lib/sec_id/wkn.rb
|
|
@@ -76,9 +81,11 @@ files:
|
|
|
76
81
|
- sig/sec_id/concerns/checkable.rbs
|
|
77
82
|
- sig/sec_id/concerns/generatable.rbs
|
|
78
83
|
- sig/sec_id/concerns/normalizable.rbs
|
|
84
|
+
- sig/sec_id/concerns/suggestable.rbs
|
|
79
85
|
- sig/sec_id/concerns/validatable.rbs
|
|
80
86
|
- sig/sec_id/cusip.rbs
|
|
81
87
|
- sig/sec_id/deep_freeze.rbs
|
|
88
|
+
- sig/sec_id/deprecation.rbs
|
|
82
89
|
- sig/sec_id/detector.rbs
|
|
83
90
|
- sig/sec_id/dti.rbs
|
|
84
91
|
- sig/sec_id/errors.rbs
|
|
@@ -91,6 +98,8 @@ files:
|
|
|
91
98
|
- sig/sec_id/occ.rbs
|
|
92
99
|
- sig/sec_id/scanner.rbs
|
|
93
100
|
- sig/sec_id/sedol.rbs
|
|
101
|
+
- sig/sec_id/suggestion.rbs
|
|
102
|
+
- sig/sec_id/upi.rbs
|
|
94
103
|
- sig/sec_id/valoren.rbs
|
|
95
104
|
- sig/sec_id/version.rbs
|
|
96
105
|
- sig/sec_id/wkn.rbs
|
|
@@ -120,5 +129,5 @@ requirements: []
|
|
|
120
129
|
rubygems_version: 4.0.12
|
|
121
130
|
specification_version: 4
|
|
122
131
|
summary: A Ruby toolkit for securities identifiers — validate, parse, normalize, detect,
|
|
123
|
-
convert, generate, and
|
|
132
|
+
convert, generate, classify, and repair.
|
|
124
133
|
test_files: []
|