Class: Pesel
- Inherits:
-
Object
- Object
- Pesel
- Defined in:
- lib/pesel.rb,
lib/version.rb
Defined Under Namespace
Classes: NumberInvalid
Constant Summary collapse
- VERSION =
"0.9.0"
Instance Attribute Summary collapse
-
#number ⇒ Object
readonly
Returns the value of attribute number.
Instance Method Summary collapse
- #birth_date ⇒ Object
- #female? ⇒ Boolean
- #gender ⇒ Object
-
#initialize(number) ⇒ Pesel
constructor
A new instance of Pesel.
- #male? ⇒ Boolean
- #to_s ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(number) ⇒ Pesel
Returns a new instance of Pesel.
6 7 8 9 10 |
# File 'lib/pesel.rb', line 6 def initialize(number) @number = number.to_s @digits = @number.split('') @valid = validate end |
Instance Attribute Details
#number ⇒ Object (readonly)
Returns the value of attribute number.
4 5 6 |
# File 'lib/pesel.rb', line 4 def number @number end |
Instance Method Details
#birth_date ⇒ Object
20 21 22 23 |
# File 'lib/pesel.rb', line 20 def birth_date raise NumberInvalid unless valid? @birth_date end |
#female? ⇒ Boolean
25 26 27 28 |
# File 'lib/pesel.rb', line 25 def female? raise NumberInvalid unless valid? @digits[9].to_i % 2 == 0 end |
#gender ⇒ Object
35 36 37 38 |
# File 'lib/pesel.rb', line 35 def gender raise NumberInvalid unless valid? female? ? :female : :male end |
#male? ⇒ Boolean
30 31 32 33 |
# File 'lib/pesel.rb', line 30 def male? raise NumberInvalid unless valid? @digits[9].to_i % 2 != 0 end |
#to_s ⇒ Object
12 13 14 |
# File 'lib/pesel.rb', line 12 def to_s number end |
#valid? ⇒ Boolean
16 17 18 |
# File 'lib/pesel.rb', line 16 def valid? @valid end |