-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExercise8.2.rb
More file actions
53 lines (39 loc) · 762 Bytes
/
Copy pathExercise8.2.rb
File metadata and controls
53 lines (39 loc) · 762 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class Employee
def prepare(bike)
bike.prepare()
end
end
module PrepareBike
def prepare
raise NotImplementedError "#{self.class} must implement the 'prepare' method"
end
end
class BmxBike
include PrepareBike
def prepare
puts 'Cleaning...'
end
end
class RoadBike
include PrepareBike
def prepare
puts 'Lubricating gears...'
end
end
class MountainBike
include PrepareBike
def prepare
puts 'Adjusting suspension...'
end
end
class Tricycle
include PrepareBike
def prepare
puts 'Adjusting seat...'
end
end
bikes = [BmxBike.new, RoadBike.new, MountainBike.new, Tricycle.new]
employee = Employee.new
bikes.each do |bike|
employee.prepare(bike)
end