diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/nil_person.rb | 31 | ||||
| -rw-r--r-- | lib/person.rb | 32 |
2 files changed, 33 insertions, 30 deletions
diff --git a/lib/nil_person.rb b/lib/nil_person.rb new file mode 100644 index 0000000..30a175f --- /dev/null +++ b/lib/nil_person.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class NilPerson + def name + nil + end + + def father + self + end + + def mother + self + end + + def gender + nil + end + + def ==(other) + other.is_a?(NilPerson) + end + + def eql?(other) + self == other + end + + def to_s + '' + end +end diff --git a/lib/person.rb b/lib/person.rb index a40efbe..8571754 100644 --- a/lib/person.rb +++ b/lib/person.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative 'nil_person' + class Person attr_accessor :name, :gender, :spouse @@ -25,33 +27,3 @@ class Person "#{name} (#{gender})" end end - -class NilPerson - def name - nil - end - - def father - self - end - - def mother - self - end - - def gender - nil - end - - def ==(other) - other.is_a?(NilPerson) - end - - def eql?(other) - self == other - end - - def to_s - '' - end -end |
