people_compatible 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/people_compatible.rb +6 -7
- data/lib/people_compatible/man.rb +17 -0
- data/lib/people_compatible/person.rb +68 -0
- data/lib/people_compatible/version.rb +3 -0
- data/lib/people_compatible/woman.rb +15 -0
- metadata +6 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 401a551f5f50b0e9142c76fbf824532ab9d595f3
|
4
|
+
data.tar.gz: a8fa85b27f17dd546033cfa645ff97564be4498e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79e0365b85160cb9c1b90e840bdb318d75d411678be18da521b8ab01c08df5fcda7fc1dfc02d7ba6b741c79eb542ab6785d7b8aabcd0b5f6cf9b400c95c7aadf
|
7
|
+
data.tar.gz: c03275b3062fa60d8494a44b614c0834d21abef3c8c5287b077023541aa1c1f8ddee401f0651d356ff1c5a342c522ea2317fcde38e136a2f59c54cf87f3470fc
|
data/lib/people_compatible.rb
CHANGED
@@ -3,11 +3,10 @@ require_relative 'people_compatible/person'
|
|
3
3
|
require_relative 'people_compatible/woman'
|
4
4
|
|
5
5
|
module PeopleCompatible
|
6
|
-
|
7
|
-
|
6
|
+
def self.print
|
7
|
+
women = PeopleCompatible::Woman.new('Oksana', '03-12-2010')
|
8
|
+
man = PeopleCompatible::Man.new('Petya', '03-12-1990')
|
8
9
|
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
# require 'people_compatible'
|
13
|
-
# PeopleCompatiblesssss
|
10
|
+
man.can_marry? women
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
=begin
|
2
|
+
|
3
|
+
Создать класс Person, который можно проинициализировать таким образом:
|
4
|
+
|
5
|
+
person = Person.new('Oksana', '03-12-1991')
|
6
|
+
|
7
|
+
Конструктор принимает 2 параметра: name, birthday в формате, указанном выше.
|
8
|
+
Для того, чтоб привести данную строку к дате, используем метод Date.parse(birthday).
|
9
|
+
|
10
|
+
Задание № 1. Написать метод age, который определяет возраст человека.
|
11
|
+
|
12
|
+
Задание № 2. Создать классы Woman и Man - наследники класса Person. Для каждого класса
|
13
|
+
определить среднюю продолжительность жизни в методе avg_life( Person: 68, Woman: 74, Man: 62).
|
14
|
+
Написать метод older_than_avg?, который возвращает true или false в зависимости от того, больше
|
15
|
+
ли возраст данного объекта чем средняя продолжительность жизни для этого класса.
|
16
|
+
|
17
|
+
person.older_than_avg?
|
18
|
+
|
19
|
+
Задание № 3. Написать метод can_marry?(person), который будет возвращать true или false в
|
20
|
+
зависимости от того, может ли данный человек вступить в брак с тем, который передается
|
21
|
+
параметром. При этом:
|
22
|
+
- мужчина может жениться с 18 лет
|
23
|
+
- женщина может выйти замуж с 17 лет
|
24
|
+
- однополые браки не разрешены
|
25
|
+
- если один из брачующихся - объект класса Person, нужно raise TypeError
|
26
|
+
|
27
|
+
woman = Woman.new('Alina', '03-12-1990')
|
28
|
+
man = Man.new('Ivan', '03-12-1985')
|
29
|
+
man.can_marry?(woman) #=> true
|
30
|
+
=end
|
31
|
+
|
32
|
+
require 'date'
|
33
|
+
|
34
|
+
#TODO здесь должен быть ваш код
|
35
|
+
|
36
|
+
module PeopleCompatible
|
37
|
+
class Person
|
38
|
+
|
39
|
+
def initialize(name, birthday)
|
40
|
+
@name = name
|
41
|
+
@birthday = Date.parse(birthday)
|
42
|
+
end
|
43
|
+
|
44
|
+
def age
|
45
|
+
((DateTime.now - @birthday) / 365.25).to_i
|
46
|
+
end
|
47
|
+
|
48
|
+
def avg_life
|
49
|
+
68
|
50
|
+
end
|
51
|
+
|
52
|
+
def older_than_avg?
|
53
|
+
age > avg_life
|
54
|
+
end
|
55
|
+
|
56
|
+
def can_marry?(person)
|
57
|
+
@can_marry = nil
|
58
|
+
|
59
|
+
if person.class == Person || self.class == Person
|
60
|
+
raise TypeError, 'Объект Person'
|
61
|
+
end
|
62
|
+
|
63
|
+
if person.class == self.class
|
64
|
+
@can_marry = false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: people_compatible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Smith
|
@@ -9,21 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-09-24 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rails
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 4.1.6
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 4.1.6
|
12
|
+
dependencies: []
|
27
13
|
description: Compatible peoples
|
28
14
|
email: im@demetrodon.com
|
29
15
|
executables: []
|
@@ -31,6 +17,10 @@ extensions: []
|
|
31
17
|
extra_rdoc_files: []
|
32
18
|
files:
|
33
19
|
- lib/people_compatible.rb
|
20
|
+
- lib/people_compatible/man.rb
|
21
|
+
- lib/people_compatible/person.rb
|
22
|
+
- lib/people_compatible/version.rb
|
23
|
+
- lib/people_compatible/woman.rb
|
34
24
|
homepage: http://demetrodon.com
|
35
25
|
licenses:
|
36
26
|
- MIT
|