Class: GenericID
- Inherits:
-
Object
show all
- Defined in:
- lib/brid/generic_id.rb
Instance Method Summary
collapse
Constructor Details
#initialize(number) ⇒ GenericID
Returns a new instance of GenericID.
5
6
7
8
9
10
11
|
# File 'lib/brid/generic_id.rb', line 5
def initialize number
@number = clear_number(number)
if number_length > 0
raise ArgumentError.new "invalid number" if @number.length != number_length
end
end
|
Instance Method Details
#check_digits ⇒ Object
13
14
15
16
17
|
# File 'lib/brid/generic_id.rb', line 13
def check_digits
@check_digits ||= begin
@number[-check_digits_length, check_digits_length]
end
end
|
#check_digits_length ⇒ Object
3
|
# File 'lib/brid/generic_id.rb', line 3
def check_digits_length; 1; end
|
#invalid_sequential? ⇒ Boolean
33
34
35
36
37
|
# File 'lib/brid/generic_id.rb', line 33
def invalid_sequential?
@invalid_sequential ||=begin
sequential.chars.to_a.uniq.count.eql? 1
end
end
|
#number_length ⇒ Object
2
|
# File 'lib/brid/generic_id.rb', line 2
def number_length; 0; end
|
#sequential ⇒ Object
19
20
21
22
23
|
# File 'lib/brid/generic_id.rb', line 19
def sequential
@sequential ||= begin
@number[0, @number.length - check_digits_length]
end
end
|
#to_s ⇒ Object
39
40
41
|
# File 'lib/brid/generic_id.rb', line 39
def to_s
"#{sequential}-#{check_digits}"
end
|
#valid? ⇒ Boolean
25
26
27
28
29
30
31
|
# File 'lib/brid/generic_id.rb', line 25
def valid?
@valid ||= begin
valid_number == @number and not invalid_sequential?
rescue TypeError
false
end
end
|