schild 0.3.4 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/lib/schild/version.rb +1 -1
- data/lib/schild.rb +113 -26
- data/specs/schueler_spec.rb +44 -0
- data/specs/spec_helper.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1061506b5c9dd404b7d55a8bc288b122ae84615f
|
4
|
+
data.tar.gz: 5eb3178ddf29a7d1d04a5a73254999efd38c5503
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fb3c939ffd7798ec9db6ba5dbf65610d5bc6680c6258e71a70ca5320ce81197e2ec47330cb2162e1269ee5884a51bd99d0754e67da0e40ee52fac486be17103
|
7
|
+
data.tar.gz: ff70e93dcb964fd75c1d4c6efbf26b5363162303d62bb7a41a27c6d58e12256a461ec0b34bf6fcc38cf50cd2ec96c887f73cff6ff3632abf3eef8c4d7245a991
|
data/README.md
CHANGED
@@ -62,6 +62,14 @@ require 'schild'
|
|
62
62
|
include Schild
|
63
63
|
```
|
64
64
|
|
65
|
+
Um jedoch alle Hilfsmethoden nutzen zu können, die das `schild`-Gem zur
|
66
|
+
Verfügung stellt, noch besser folgenden Befehl verwenden, der seit
|
67
|
+
Version 0.4.0 zur Verfügung steht:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
include SchildErweitert
|
71
|
+
```
|
72
|
+
|
65
73
|
Jetzt können praktisch alle Tabellen abgerufen und Daten ausgelesen werden. Dabei ist das DB-Objekt die Datenbank:
|
66
74
|
|
67
75
|
```ruby
|
data/lib/schild/version.rb
CHANGED
data/lib/schild.rb
CHANGED
@@ -67,10 +67,60 @@ module Schild
|
|
67
67
|
|
68
68
|
# Stellt die Schüler-Tabelle samt Assoziationen bereit.
|
69
69
|
class Schueler < Sequel::Model(:schueler)
|
70
|
-
include SchildTypeSaver
|
71
|
-
|
72
70
|
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
73
71
|
one_to_many :abschnitte, :class => :Abschnitt
|
72
|
+
one_to_one :bk_abschluss, :class => :BKAbschluss
|
73
|
+
one_to_many :bk_abschluss_leistungen, :class => :BKAbschlussFaecher
|
74
|
+
end
|
75
|
+
|
76
|
+
# Dient als Assoziation für Schüler und deren Klassenbezeichnung etc.
|
77
|
+
class Fachklasse < Sequel::Model(:eigeneschule_fachklassen)
|
78
|
+
one_to_many :schueler
|
79
|
+
end
|
80
|
+
|
81
|
+
# Assoziation für Lehrer, hauptsächlich für Klassenlehrer
|
82
|
+
class Klassenlehrer < Sequel::Model(:k_lehrer)
|
83
|
+
one_to_one :abschnitt, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
84
|
+
end
|
85
|
+
|
86
|
+
# Ist die Assoziation, die Halbjahre, sog. Abschnitte zurückgibt.
|
87
|
+
class Abschnitt < Sequel::Model(:schuelerlernabschnittsdaten)
|
88
|
+
many_to_one :schueler, :class => :Schueler, :key => :Schueler_ID
|
89
|
+
one_to_many :noten, :class => :Noten
|
90
|
+
many_to_one :klassenlehrer, :class => :Klassenlehrer, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
91
|
+
end
|
92
|
+
|
93
|
+
# Assoziation für Noten
|
94
|
+
class Noten < Sequel::Model(:schuelerleistungsdaten)
|
95
|
+
many_to_one :abschnitt, :class => :Abschnitt, :key => :Abschnitt_ID
|
96
|
+
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
97
|
+
end
|
98
|
+
|
99
|
+
# Assoziation für Fächer
|
100
|
+
class Faecher < Sequel::Model(:eigeneschule_faecher)
|
101
|
+
one_to_one :noten
|
102
|
+
end
|
103
|
+
|
104
|
+
# Assoziation für BK-Abschluss des Schülers
|
105
|
+
class BKAbschluss < Sequel::Model(:schuelerbkabschluss)
|
106
|
+
one_to_one :schueler
|
107
|
+
end
|
108
|
+
|
109
|
+
# Assoziation für die Prüfungsfächer des Schülers
|
110
|
+
class BKAbschlussFaecher < Sequel::Model(:schuelerbkfaecher)
|
111
|
+
many_to_one :schueler
|
112
|
+
end
|
113
|
+
|
114
|
+
# Schul-Tabelle
|
115
|
+
class Schule < Sequel::Model(:eigeneschule)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
module SchildErweitert
|
120
|
+
include Schild
|
121
|
+
# Stellt die Schüler-Tabelle samt Assoziationen bereit.
|
122
|
+
class Schueler < Schild::Schueler
|
123
|
+
include SchildTypeSaver
|
74
124
|
|
75
125
|
# gibt das z.Zt. aktuelle Halbjahr zurück.
|
76
126
|
def akt_halbjahr
|
@@ -94,11 +144,7 @@ module Schild
|
|
94
144
|
|
95
145
|
# gibt +Herr+ oder +Frau+ als Anrede für Schüler zurück.
|
96
146
|
def anrede
|
97
|
-
|
98
|
-
return "Herr"
|
99
|
-
elsif self.geschlecht == 4
|
100
|
-
return "Frau"
|
101
|
-
end
|
147
|
+
self.geschlecht == 3 ? "Herr" : "Frau"
|
102
148
|
end
|
103
149
|
|
104
150
|
# gibt die passende Bezeichnung zurück Schüler
|
@@ -129,27 +175,19 @@ module Schild
|
|
129
175
|
end
|
130
176
|
|
131
177
|
# Dient als Assoziation für Schüler und deren Klassenbezeichnung etc.
|
132
|
-
class Fachklasse <
|
178
|
+
class Fachklasse < Schild::Fachklasse
|
133
179
|
include SchildTypeSaver
|
134
|
-
|
135
|
-
one_to_many :schueler
|
136
180
|
end
|
137
181
|
|
138
182
|
# Assoziation für Lehrer, hauptsächlich für Klassenlehrer
|
139
|
-
class Klassenlehrer <
|
183
|
+
class Klassenlehrer < Schild::Klassenlehrer
|
140
184
|
include SchildTypeSaver
|
141
|
-
|
142
|
-
one_to_one :abschnitt, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
143
185
|
end
|
144
186
|
|
145
187
|
# Ist die Assoziation, die Halbjahre, sog. Abschnitte zurückgibt.
|
146
|
-
class Abschnitt <
|
188
|
+
class Abschnitt < Schild::Abschnitt
|
147
189
|
include SchildTypeSaver
|
148
190
|
|
149
|
-
many_to_one :schueler, :class => :Schueler, :key => :Schueler_ID
|
150
|
-
one_to_many :noten, :class => :Noten
|
151
|
-
many_to_one :klassenlehrer, :class => :Klassenlehrer, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
152
|
-
|
153
191
|
dataset_module do
|
154
192
|
# filtert den Datensatz nach Jahr
|
155
193
|
def jahr(i)
|
@@ -212,12 +250,9 @@ module Schild
|
|
212
250
|
end
|
213
251
|
|
214
252
|
# Assoziation für Noten
|
215
|
-
class Noten <
|
253
|
+
class Noten < Schild::Noten
|
216
254
|
include SchildTypeSaver
|
217
255
|
|
218
|
-
many_to_one :abschnitt, :class => :Abschnitt, :key => :Abschnitt_ID
|
219
|
-
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
220
|
-
|
221
256
|
# Notenbezeichnung als String
|
222
257
|
def note
|
223
258
|
case self.noten_krz
|
@@ -256,14 +291,67 @@ module Schild
|
|
256
291
|
end
|
257
292
|
|
258
293
|
# Assoziation für Fächer
|
259
|
-
class Faecher <
|
294
|
+
class Faecher < Schild::Faecher
|
260
295
|
include SchildTypeSaver
|
296
|
+
end
|
261
297
|
|
262
|
-
|
298
|
+
# Assoziation für BK-Abschlussdaten
|
299
|
+
class BKAbschluss < Schild::BKAbschluss
|
300
|
+
include SchildTypeSaver
|
301
|
+
|
302
|
+
# Ist der Schüler zugelassen?
|
303
|
+
def zulassung?
|
304
|
+
self.Zulassung == "+"
|
305
|
+
end
|
306
|
+
|
307
|
+
# Ist der Schüler für den Berufsabschluss zugelassen?
|
308
|
+
def zulassung_ba?
|
309
|
+
self.ZulassungBA == "+"
|
310
|
+
end
|
311
|
+
|
312
|
+
# Hat der Schüler den Berufsabschluss bestanden?
|
313
|
+
def bestanden_ba?
|
314
|
+
self.BestandenBA == "+"
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
# Assoziation für die jeweiligen BK-Prüfungsfächer
|
319
|
+
class BKAbschlussFaecher < Schild::BKAbschlussFaecher
|
320
|
+
include SchildTypeSaver
|
321
|
+
|
322
|
+
# Vornote des Prüfungsfachs
|
323
|
+
def vornote
|
324
|
+
self.Vornote.to_i
|
325
|
+
end
|
326
|
+
|
327
|
+
# Wurde das Fach schriftlich geprüft?
|
328
|
+
def fach_schriftlich?
|
329
|
+
self.FachSchriftlich == "+"
|
330
|
+
end
|
331
|
+
|
332
|
+
# Wurde das Fach mündlich geprüft?
|
333
|
+
def fach_muendlich?
|
334
|
+
self.MdlPruefung == "+"
|
335
|
+
end
|
336
|
+
|
337
|
+
# die schriftliche Note des Fachs
|
338
|
+
def note_schriftlich
|
339
|
+
self.NoteSchriftlich.to_i
|
340
|
+
end
|
341
|
+
|
342
|
+
# Die mündliche Note des Fachs
|
343
|
+
def note_muendlich
|
344
|
+
self.NoteMuendlich.to_i
|
345
|
+
end
|
346
|
+
|
347
|
+
# Die berechnete/festgelegte Abschlussnote für das Fach
|
348
|
+
def note_abschluss
|
349
|
+
self.NoteAbschluss.to_i
|
350
|
+
end
|
263
351
|
end
|
264
352
|
|
265
353
|
# Schul-Tabelle mit vereinfachtem Zugriff auf Datenfelder.
|
266
|
-
class Schule <
|
354
|
+
class Schule < Schild::Schule
|
267
355
|
include SchildTypeSaver
|
268
356
|
|
269
357
|
# gibt die Schulnummer zurück
|
@@ -284,4 +372,3 @@ module Schild
|
|
284
372
|
end
|
285
373
|
end
|
286
374
|
end
|
287
|
-
|
data/specs/schueler_spec.rb
CHANGED
@@ -43,6 +43,50 @@ describe Schueler do
|
|
43
43
|
fg = @sm.zweites_halbjahr(2013).faechergruppen.flatten.count
|
44
44
|
fg.must_equal (@sm.zweites_halbjahr(2013).noten.select{|n|n.AufZeugnis == '+'}).count
|
45
45
|
end
|
46
|
+
|
47
|
+
it 'gibt Zulassung zurück' do
|
48
|
+
Schueler[166].bk_abschluss.zulassung?.must_equal true
|
49
|
+
Schueler[19].bk_abschluss.zulassung?.must_equal false
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'gibt Zulassung Berufsabschluss zurück' do
|
53
|
+
Schueler[166].bk_abschluss.zulassung_ba?.must_equal true
|
54
|
+
Schueler[19].bk_abschluss.zulassung_ba?.must_equal false
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'gibt Berufsabschluss bestanden zurück' do
|
58
|
+
Schueler[166].bk_abschluss.bestanden_ba?.must_equal true
|
59
|
+
Schueler[19].bk_abschluss.bestanden_ba?.must_equal false
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'gibt zurück, ob Fach schriftlich' do
|
63
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSTE"}.fach_schriftlich?.must_equal true
|
64
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSFK"}.fach_schriftlich?.must_equal false
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'gibt zurück, ob Fach mündlich' do
|
68
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "M"}.fach_muendlich?.must_equal true
|
69
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSFK"}.fach_muendlich?.must_equal false
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'gibt Note schriftlich zurück' do
|
73
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSTE"}.note_schriftlich.must_equal 3
|
74
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSFK"}.note_schriftlich.must_equal 0
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'gibt Note mündlich zurück' do
|
78
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "M"}.note_muendlich.must_equal 6
|
79
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSFK"}.note_muendlich.must_equal 0
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'gibt Abschlussnote zurück' do
|
83
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "M"}.note_abschluss.must_equal 5
|
84
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSFK"}.note_abschluss.must_equal 3
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'gibt Abschlussfächer zurück' do
|
88
|
+
Schueler[145].bk_abschluss_leistungen.find{|l|l.fach_krz == "GSTE"}.vornote.must_equal 4
|
89
|
+
end
|
46
90
|
end
|
47
91
|
|
48
92
|
describe 'gibt die korrekte Anzahl von Schülern über Klasse zurück' do
|
data/specs/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HMT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|