[Ruby] Von Blödheit geschlagen oder wenn man den Bug vor lauter Käfern nicht sieht

DeusExMachina

Lieutenant
Registriert
Jan. 2008
Beiträge
609
Die Aufgabe ist folgende:

Eine Verpackung ist entweder eine leere Verpackung, eine Verpackung mit Ware oder eine geordnete Menge von Verpackungen.
1. Schreiben Sie ein Programm, das entscheidet, ob eine Verpackung eine Ware enthält.
2. Schreiben Sie ein Programm, das die Waren in einer Verpackung zählt.
Identifizieren Sie zunächst die Klassen und erstellen (modellieren und implementieren) Sie eine geeignete Klassenhierarchie nach der Methode der Vorlesung.


Gelöst habe ich des mit:

Code:
verpackung = ["b1","b2","b3","b4",nil,nil,nil,nil]
  
  if verpackung.empty? then puts "Dieses Paket ist leer" 
  else if verpackung.nitems == 0 then puts "Dieses Paket ist leer" 
  else  puts "Dieses Paket enthaelt Waren"
  end
  end

puts "Dies Paket enthaelt " + verpackung.nitems.to_s + " Objekte"

Das Funzt auch ohne Probleme.

Packe ich das ganze in eine Klasse und versuche via Methoden aufruf zu starten crash das ganze ich bin nur grad nicht in der Lage den Fehler zu sehen.


Code:
class Warentest
  
  def initialize 
  
  end
    
  def create_verpackung 

    verpackung = ["b1","b2","b3","b4",nil,nil,nil,nil]
        
  end
  
  
  def check_verpackung (verpackung)
   
    if verpackung.empty? then puts "Dieses Paket ist leer" 
    else if verpackung.nitems == 0 then puts "Dieses Paket ist leer" 
    else  puts "Dieses Paket enthaelt Waren"
    end
    end

   end



 def count_objects (verpackung)
      
   puts "Dies Paket enthält" + verpackung.nitems.to_s + "Objekte"
    
 end  
 

# Methodenaufruf

new.create_verpackung
new.check_verpackung(verpackung)
new.count_objects(verpackung)
 
end

Der Fehlercode selbst ist:

Warentest.rb:34: undefined local variable or method `verpackung' for Warentest:Class (NameError)

ich werd mich wahrscheinlich gleich selber Schlagen aber naja das macht wo die Vorfreude auf die Prüfungen.
Ergänzung ()

fehler gefunden lag wie befürchtet im Methoden aufruf

mit
Code:
v1 = new.create_verpackung() 
 
new.check_verpackung( v1 ) 
new.count_objects( v1 )

gehts
 
Zurück
Oben