Преглед на файлове

legacy methoden und neue methoden erkennen und behandeln

hmt преди 9 години
родител
ревизия
d9c67df121
променени са 3 файла, в които са добавени 33 реда и са изтрити 2 реда
  1. 16 0
      lib/schild.rb
  2. 11 2
      specs/fachklasse_spec.rb
  3. 6 0
      specs/schueler_spec.rb

+ 16 - 0
lib/schild.rb

@@ -118,6 +118,19 @@ module SchildErweitert
         to_s.snake_case
       end
     end
+
+    module Schueler
+      def entlassart
+        return self.entlass_art if self.respond_to?(:entlass_art)
+      end
+    end
+
+    module Fachklasse
+      def dqr_niveau
+        return self.DQR_Niveau if self.respond_to?(:DQR_Niveau)
+        "Alte Schild-Version ohne DQR-Niveau"
+      end
+    end
   end
 
   # Schild hat teilweise nil in DB-Feldern. SchildTypeSaver gibt entweder einen
@@ -224,6 +237,9 @@ module SchildErweitert
     name = const_set(name, klass)
   end
 
+  Fachklasse.include CoreExtensions::Fachklasse
+  Schueler.include CoreExtensions::Schueler
+
   # Stellt die Schüler-Tabelle samt Assoziationen bereit.
   class Schueler
     # gibt das z.Zt. aktuelle Halbjahr zurück.

+ 11 - 2
specs/fachklasse_spec.rb

@@ -1,10 +1,19 @@
 require "#{File.dirname(__FILE__)}/spec_helper"
 
 describe Fachklasse do
+  before do
+    @f = Fachklasse.first
+  end
   describe 'Assoziation' do
     it 'gibt ein Array von Schülern zurück' do
-      Fachklasse.first.schueler.must_be_instance_of Array
+      @f.schueler.must_be_instance_of Array
+    end
+  end
+
+  describe 'Legacy-Methoden funktionieren' do
+    it 'kennt dqr_niveau' do
+      @f.dqr_niveau.must_equal "Alte Schild-Version ohne DQR-Niveau"
     end
   end
-end
 
+end

+ 6 - 0
specs/schueler_spec.rb

@@ -12,6 +12,12 @@ describe Schueler do
     end
   end
 
+  describe 'Legacy-Methoden funktionieren' do
+    it 'kennt entlass_art' do
+      @sm.entlassart.must_equal @sm.entlass_art
+    end
+  end
+
   describe 'Associations funktionieren Erwartungsgemäß' do
     it 'geben Fachklassenbezeichnung zurück (eigeneschule_fachklassen:Fachklassen)' do
       @sm.fachklasse.Bezeichnung.must_equal "Friseur"