Guest User

Untitled

a guest
May 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. class Object
  2. def abstract
  3. raise NotImplementedError.new("#{self.class.name} subclass responsibility")
  4. end
  5. end
  6.  
  7. class Reiseangebot
  8. def initialize(name)
  9. @name = name
  10. end
  11.  
  12. attr_reader :name
  13.  
  14. def flug?
  15. false
  16. end
  17.  
  18. def hotel?
  19. false
  20. end
  21.  
  22. def mit_flug?
  23. false
  24. end
  25.  
  26. def mit_hotel?
  27. false
  28. end
  29.  
  30. def kein_flug?
  31. !flug?
  32. end
  33.  
  34. def kein_hotel?
  35. !hotel?
  36. end
  37.  
  38. def ohne_flug?
  39. !mit_flug?
  40. end
  41.  
  42. def ohne_hotel?
  43. !ohne_hotel?
  44. end
  45.  
  46. def einfach?
  47. true
  48. end
  49.  
  50. def kombination?
  51. false
  52. end
  53.  
  54. def to_s
  55. "#{self.class.name} - #{name}"
  56. end
  57. end
  58.  
  59. class Reisebaustein < Reiseangebot
  60. def initialize(name, dauer, preis)
  61. super(name)
  62.  
  63. @dauer = dauer
  64. @preis = preis
  65. end
  66.  
  67. attr_reader :dauer, :preis
  68.  
  69. def preis_pro_tag
  70. preis / dauer
  71. end
  72. end
  73.  
  74. class Flug < Reisebaustein
  75. def flug?
  76. true
  77. end
  78.  
  79. def mit_flug?
  80. true
  81. end
  82. end
  83.  
  84. class Hotel < Reisebaustein
  85. def hotel?
  86. true
  87. end
  88.  
  89. def mit_hotel?
  90. true
  91. end
  92. end
  93.  
  94. class Reisekombination < Reiseangebot
  95. def initialize(name, hinflug, hotel, rueckflug)
  96. @name = name
  97. @hinflug = hinflug
  98. @hotel = hotel
  99. @rueckflug = rueckflug
  100. end
  101.  
  102. def kombination?
  103. true
  104. end
  105.  
  106. def mit_flug?
  107. true
  108. end
  109.  
  110. def mit_hotel?
  111. true
  112. end
  113. end
  114.  
  115. hinflug = Flug.new("HH-PMI", 1, 120)
  116. hotel = Hotel.new("Hilton-Palma", 14, 700)
  117. rueckflug = Flug.new("PMI-HAM", 1, 120)
  118. x = Reisekombination.new("Baden-auf-Mallorca", hinflug, hotel, rueckflug)
  119. puts x
Add Comment
Please, Sign In to add comment