Class: Pesel

Inherits:
Object
  • Object
show all
Defined in:
lib/pesel.rb,
lib/version.rb

Defined Under Namespace

Classes: NumberInvalid

Constant Summary collapse

VERSION =
"0.9.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#numberObject (readonly)

Returns the value of attribute number.



4
5
6
# File 'lib/pesel.rb', line 4

def number
  @number
end

Instance Method Details

#birth_dateObject

Raises:



20
21
22
23
# File 'lib/pesel.rb', line 20

def birth_date
  raise NumberInvalid unless valid?
  @birth_date
end

#female?Boolean

Returns:

  • (Boolean)

Raises:



25
26
27
28
# File 'lib/pesel.rb', line 25

def female?
  raise NumberInvalid unless valid?
  @digits[9].to_i % 2 == 0
end

#genderObject

Raises:



35
36
37
38
# File 'lib/pesel.rb', line 35

def gender
  raise NumberInvalid unless valid?
  female? ? :female : :male
end

#male?Boolean

Returns:

  • (Boolean)

Raises:



30
31
32
33
# File 'lib/pesel.rb', line 30

def male?
  raise NumberInvalid unless valid?
  @digits[9].to_i % 2 != 0
end

#to_sObject



12
13
14
# File 'lib/pesel.rb', line 12

def to_s
  number
end

#valid?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/pesel.rb', line 16

def valid?
  @valid
end