sec_id 6.1.0 → 7.0.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.
@@ -0,0 +1,6 @@
1
+ module SecID
2
+ # Emits standardized, silenceable deprecation warnings for the v7 → v8 rename bridge.
3
+ module Deprecation
4
+ def self.warn: (old: String, new: String, ?removed_in: String) -> void
5
+ end
6
+ end
data/sig/sec_id/dti.rbs CHANGED
@@ -15,13 +15,18 @@ module SecID
15
15
  GRANDFATHERED_CODES: Hash[String, String]
16
16
 
17
17
  def initialize: (SecID::input dti) -> void
18
+ def calculate_checksum: () -> String
19
+ def self.checksum: (SecID::input id) -> String
20
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
18
21
  def calculate_check_digit: () -> String
22
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
23
+ def self.check_digit: (SecID::input id) -> String
19
24
  private def self.generate_body: (Random random) -> String
20
25
 
21
26
  private
22
27
 
23
28
  def components: () -> Hash[Symbol, untyped]
24
- def grandfathered_check_digit: (untyped base) -> String?
29
+ def grandfathered_checksum: (untyped base) -> String?
25
30
  def iso7064_mod31_30_check_char: (untyped base) -> String
26
31
  end
27
32
  end
data/sig/sec_id/figi.rbs CHANGED
@@ -17,7 +17,11 @@ module SecID
17
17
 
18
18
  def initialize: (SecID::input figi) -> void
19
19
  def to_pretty_s: () -> String?
20
+ def calculate_checksum: () -> Integer
21
+ def self.checksum: (SecID::input id) -> Integer
22
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
20
23
  def calculate_check_digit: () -> Integer
24
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
21
25
  def self.check_digit: (SecID::input id) -> Integer
22
26
  private def self.generate_body: (Random random) -> String
23
27
 
data/sig/sec_id/iban.rbs CHANGED
@@ -26,7 +26,11 @@ module SecID
26
26
 
27
27
  def initialize: (SecID::input iban) -> void
28
28
  def restore: () -> String
29
+ def calculate_checksum: () -> Integer
30
+ def self.checksum: (SecID::input id) -> Integer
31
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
29
32
  def calculate_check_digit: () -> Integer
33
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
30
34
  def self.check_digit: (SecID::input id) -> Integer
31
35
  private def self.generate_body: (Random random) -> String
32
36
  def valid_bban_format?: () -> bool
@@ -38,13 +42,13 @@ module SecID
38
42
  private
39
43
 
40
44
  def components: () -> Hash[Symbol, untyped]
41
- def check_digit_width: () -> Integer
45
+ def checksum_width: () -> Integer
42
46
  def valid_format?: () -> bool
43
47
  def detect_errors: () -> Array[Symbol]
44
48
  def validation_message: (Symbol code) -> String?
45
- def extract_check_digit_and_bban: (String rest) -> void
49
+ def extract_checksum_and_bban: (String rest) -> void
46
50
  def expected_bban_length_for_country: () -> Integer?
47
- def check_digits?: (untyped rest, Integer? expected_bban_length) -> bool
51
+ def checksum?: (untyped rest, Integer? expected_bban_length) -> bool
48
52
  def extract_bban_components: () -> void
49
53
  def valid_bban_length_only?: () -> bool
50
54
  def numeric_string_for_check: () -> String
data/sig/sec_id/isin.rbs CHANGED
@@ -19,7 +19,11 @@ module SecID
19
19
 
20
20
  def initialize: (SecID::input isin) -> void
21
21
  def to_pretty_s: () -> String?
22
+ def calculate_checksum: () -> Integer
23
+ def self.checksum: (SecID::input id) -> Integer
24
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
22
25
  def calculate_check_digit: () -> Integer
26
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
23
27
  def self.check_digit: (SecID::input id) -> Integer
24
28
  private def self.generate_body: (Random random) -> String
25
29
  def to_cusip: () -> CUSIP
data/sig/sec_id/lei.rbs CHANGED
@@ -20,14 +20,18 @@ module SecID
20
20
 
21
21
  def initialize: (SecID::input lei) -> void
22
22
  def to_pretty_s: () -> String?
23
+ def calculate_checksum: () -> Integer
24
+ def self.checksum: (SecID::input id) -> Integer
25
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
23
26
  def calculate_check_digit: () -> Integer
27
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
24
28
  def self.check_digit: (SecID::input id) -> Integer
25
29
  private def self.generate_body: (Random random) -> String
26
30
 
27
31
  private
28
32
 
29
33
  def components: () -> Hash[Symbol, untyped]
30
- def check_digit_width: () -> Integer
34
+ def checksum_width: () -> Integer
31
35
  def numeric_identifier: () -> String
32
36
  end
33
37
  end
data/sig/sec_id/sedol.rbs CHANGED
@@ -19,7 +19,11 @@ module SecID
19
19
 
20
20
  def initialize: (SecID::input sedol) -> void
21
21
  def to_isin: (?String country_code) -> ISIN
22
+ def calculate_checksum: () -> Integer
23
+ def self.checksum: (SecID::input id) -> Integer
24
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
22
25
  def calculate_check_digit: () -> Integer
26
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
23
27
  def self.check_digit: (SecID::input id) -> Integer
24
28
  private def self.generate_body: (Random random) -> String
25
29
 
@@ -0,0 +1,29 @@
1
+ module SecID
2
+ # Unique Product Identifier (UPI, ISO 4914).
3
+ class UPI < Base
4
+ include Checkable
5
+ extend Checkable::ClassMethods
6
+
7
+ FULL_NAME: String
8
+ ID_LENGTH: Integer
9
+ EXAMPLE: String
10
+ VALID_CHARS_REGEX: ::Regexp
11
+ ID_REGEX: ::Regexp
12
+ ALPHABET: Array[String]
13
+ ALPHABET_VALUE: Hash[String, Integer]
14
+ GENERATE_CHARSET: Array[String]
15
+
16
+ def initialize: (SecID::input upi) -> void
17
+ def calculate_checksum: () -> String
18
+ def self.checksum: (SecID::input id) -> String
19
+ # @deprecated v7 bridge alias for `calculate_checksum`; removed in v8.
20
+ def calculate_check_digit: () -> String
21
+ # @deprecated v7 bridge alias for `checksum`; removed in v8.
22
+ def self.check_digit: (SecID::input id) -> String
23
+ private def self.generate_body: (Random random) -> String
24
+
25
+ private
26
+
27
+ def components: () -> Hash[Symbol, untyped]
28
+ end
29
+ end
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 check digit does not match the calculated value.
11
- class InvalidCheckDigitError < Error
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
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: 6.1.0
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonid Svyatov
@@ -11,10 +11,10 @@ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Validate, normalize, parse, convert, generate, and classify securities
13
13
  identifiers. Auto-detect identifier type from any string. Calculate and restore
14
- check digits. Generate format-valid identifiers as test fixtures. Decode CFI codes
14
+ checksums. Generate format-valid identifiers as test fixtures. Decode CFI codes
15
15
  to full ISO 10962:2021 classifications. Includes an opt-in ActiveModel/Rails validator
16
16
  that adds no runtime dependency. Supports ISIN, CUSIP, CEI, SEDOL, FIGI, LEI, IBAN,
17
- CIK, OCC, WKN, Valoren, CFI, FISN, BIC, and DTI.
17
+ CIK, OCC, WKN, Valoren, CFI, FISN, BIC, DTI, and UPI.
18
18
  email:
19
19
  - leonid@svyatov.ru
20
20
  executables: []
@@ -44,6 +44,7 @@ files:
44
44
  - lib/sec_id/concerns/validatable.rb
45
45
  - lib/sec_id/cusip.rb
46
46
  - lib/sec_id/deep_freeze.rb
47
+ - lib/sec_id/deprecation.rb
47
48
  - lib/sec_id/detector.rb
48
49
  - lib/sec_id/dti.rb
49
50
  - lib/sec_id/errors.rb
@@ -57,6 +58,7 @@ files:
57
58
  - lib/sec_id/railtie.rb
58
59
  - lib/sec_id/scanner.rb
59
60
  - lib/sec_id/sedol.rb
61
+ - lib/sec_id/upi.rb
60
62
  - lib/sec_id/valoren.rb
61
63
  - lib/sec_id/version.rb
62
64
  - lib/sec_id/wkn.rb
@@ -79,6 +81,7 @@ files:
79
81
  - sig/sec_id/concerns/validatable.rbs
80
82
  - sig/sec_id/cusip.rbs
81
83
  - sig/sec_id/deep_freeze.rbs
84
+ - sig/sec_id/deprecation.rbs
82
85
  - sig/sec_id/detector.rbs
83
86
  - sig/sec_id/dti.rbs
84
87
  - sig/sec_id/errors.rbs
@@ -91,6 +94,7 @@ files:
91
94
  - sig/sec_id/occ.rbs
92
95
  - sig/sec_id/scanner.rbs
93
96
  - sig/sec_id/sedol.rbs
97
+ - sig/sec_id/upi.rbs
94
98
  - sig/sec_id/valoren.rbs
95
99
  - sig/sec_id/version.rbs
96
100
  - sig/sec_id/wkn.rbs