schild 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|