schild 0.7.2 → 0.7.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -0
- data/lib/schild/version.rb +1 -1
- data/lib/schild.rb +82 -37
- data/schild.gemspec +3 -3
- data/specs/fachklasse_spec.rb +0 -7
- data/specs/schueler_spec.rb +0 -6
- metadata +8 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0d91a0265e7e938de619b3664e9e9274194ca9a
|
4
|
+
data.tar.gz: aae8a07d105d176e16f196b3634acb2d9b52e630
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3c15299a6631eb4366a24945e1e23c3e62fa7fb7de02d5cb33f8b77e789cc2ec21170aee8a1eda1b8e4cc4e4e3ffcb586d44b5cb12de2c6dd4ec12922cb168e
|
7
|
+
data.tar.gz: cb492beaaaf87cf6a89f3f0bed8ca8edaec148e591dc93bacc1dc550a5b2e6a43d2330f5788ada0b99fd189633c61569334c855d2ca55c2424790a06e93afd96
|
data/Rakefile
CHANGED
data/lib/schild/version.rb
CHANGED
data/lib/schild.rb
CHANGED
@@ -4,7 +4,16 @@ require 'sequel'
|
|
4
4
|
# Das Schild Modul, das alle Klassen für die Datenbankanbindung bereitstellt
|
5
5
|
module Schild
|
6
6
|
# ist die Datenbank-Verbindung. Alle Daten können über diese Konstante abgerufen werden
|
7
|
-
|
7
|
+
|
8
|
+
@db = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}&zeroDateTimeBehavior=convertToNull")
|
9
|
+
|
10
|
+
def self.connect
|
11
|
+
@db = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}&zeroDateTimeBehavior=convertToNull")
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.db
|
15
|
+
@db
|
16
|
+
end
|
8
17
|
|
9
18
|
# Stellt die Schüler-Tabelle samt Assoziationen bereit.
|
10
19
|
class Schueler < Sequel::Model(:schueler)
|
@@ -14,8 +23,11 @@ module Schild
|
|
14
23
|
one_to_many :bk_abschluss_leistungen, :class => :BKAbschlussFaecher
|
15
24
|
one_to_one :abi_abschluss, :class => :AbiAbschluss
|
16
25
|
one_to_many :abi_abschluss_leistungen, :class => :AbiAbschlussFaecher
|
26
|
+
one_to_one :fhr_abschluss, :class => :FHRAbschluss
|
27
|
+
one_to_many :fhr_abschluss_leistungen, :class => :FHRAbschlussFaecher
|
17
28
|
one_to_many :vermerke, :class => :Vermerke
|
18
29
|
one_to_one :schuelerfoto, :class => :Schuelerfotos
|
30
|
+
one_to_many :sprachenfolge, :class => :Sprachenfolge
|
19
31
|
end
|
20
32
|
|
21
33
|
# Dient als Assoziation für Schüler und deren Klassenbezeichnung etc.
|
@@ -33,6 +45,7 @@ module Schild
|
|
33
45
|
many_to_one :schueler, :class => :Schueler, :key => :Schueler_ID
|
34
46
|
one_to_many :noten, :class => :Noten
|
35
47
|
many_to_one :klassenlehrer, :class => :Klassenlehrer, :primary_key=>:Kuerzel, :key=>:KlassenLehrer
|
48
|
+
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
36
49
|
end
|
37
50
|
|
38
51
|
# Assoziation für Noten
|
@@ -47,6 +60,7 @@ module Schild
|
|
47
60
|
one_to_one :noten
|
48
61
|
one_to_many :abi_abschluss_leistungen
|
49
62
|
one_to_one :sprachenfolge, :class => :Sprachenfolge, :key => :Fach_ID
|
63
|
+
one_to_many :gliederungen, :class => :Fach_Gliederung, :key => :Fach_ID
|
50
64
|
end
|
51
65
|
|
52
66
|
# Assoziation für BK-Abschluss des Schülers
|
@@ -70,9 +84,26 @@ module Schild
|
|
70
84
|
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
71
85
|
end
|
72
86
|
|
87
|
+
# Assoziation für FHR-Abschluss des Schülers
|
88
|
+
class FHRAbschluss < Sequel::Model(:schuelerfhr)
|
89
|
+
one_to_one :schueler
|
90
|
+
end
|
91
|
+
|
92
|
+
# Assoziation für die FHR-fächer des Schülers
|
93
|
+
class FHRAbschlussFaecher < Sequel::Model(:schuelerfhrfaecher)
|
94
|
+
many_to_one :schueler
|
95
|
+
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
96
|
+
end
|
97
|
+
|
73
98
|
# Assoziation für die bisher erreichten Sprachniveaus
|
74
99
|
class Sprachenfolge < Sequel::Model(:schuelersprachenfolge)
|
75
|
-
|
100
|
+
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
101
|
+
end
|
102
|
+
|
103
|
+
# Assoziation für die bisher erreichten Sprachniveaus
|
104
|
+
class Fach_Gliederung < Sequel::Model(:fach_gliederungen)
|
105
|
+
many_to_one :fach, :class => :Faecher, :key => :Fach_ID
|
106
|
+
many_to_one :fachklasse, :class => :Fachklasse, :key => :Fachklasse_ID
|
76
107
|
end
|
77
108
|
|
78
109
|
# Vermerke von Schülern
|
@@ -119,19 +150,6 @@ module SchildErweitert
|
|
119
150
|
to_s.snake_case
|
120
151
|
end
|
121
152
|
end
|
122
|
-
|
123
|
-
module Schueler
|
124
|
-
def entlassart
|
125
|
-
return self.entlass_art if self.respond_to?(:entlass_art)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
module Fachklasse
|
130
|
-
def dqr_niveau
|
131
|
-
return self.DQR_Niveau if self.respond_to?(:DQR_Niveau)
|
132
|
-
"Alte Schild-Version ohne DQR-Niveau"
|
133
|
-
end
|
134
|
-
end
|
135
153
|
end
|
136
154
|
|
137
155
|
# Schild hat teilweise nil in DB-Feldern. SchildTypeSaver gibt entweder einen
|
@@ -161,7 +179,7 @@ module SchildErweitert
|
|
161
179
|
end
|
162
180
|
|
163
181
|
def create_null_object(klass, column)
|
164
|
-
k = Schild
|
182
|
+
k = Schild.db.schema_type_class(klass.db_schema[column][:type])
|
165
183
|
if k.class == Array
|
166
184
|
# Sequel stellt :datetime als [Time, DateTime] dar, deswegen die Abfrage nach Array
|
167
185
|
# Schild verwendet Time Objekte, wir machen das auch
|
@@ -208,6 +226,7 @@ module SchildErweitert
|
|
208
226
|
|
209
227
|
def self.note_aus_punkten(punkte)
|
210
228
|
return unless punkte && punkte.to_i.between?(1,15) || punkte == "0"
|
229
|
+
return punkte if ((punkte.to_i == 0) && (punkte.size > 1))
|
211
230
|
return if (punkte.class == String) && punkte.empty?
|
212
231
|
@note[punkte.to_i]
|
213
232
|
end
|
@@ -254,9 +273,6 @@ module SchildErweitert
|
|
254
273
|
name = const_set(name, klass)
|
255
274
|
end
|
256
275
|
|
257
|
-
Fachklasse.include CoreExtensions::Fachklasse
|
258
|
-
Schueler.include CoreExtensions::Schueler
|
259
|
-
|
260
276
|
# Stellt die Schüler-Tabelle samt Assoziationen bereit.
|
261
277
|
class Schueler
|
262
278
|
# gibt das z.Zt. aktuelle Halbjahr zurück.
|
@@ -304,12 +320,12 @@ module SchildErweitert
|
|
304
320
|
|
305
321
|
# fragt ab, ob in Schild ein Foto als hinterlegt eingetragen ist.
|
306
322
|
def foto_vorhanden?
|
307
|
-
self.
|
323
|
+
!!(self.schuelerfoto && self.schuelerfoto.foto)
|
308
324
|
end
|
309
325
|
|
310
326
|
# gibt, wenn vorhanden, ein Foto als jpg-String zurück, ansonsten nil.
|
311
327
|
def foto
|
312
|
-
self.
|
328
|
+
self.schuelerfoto.foto if self.foto_vorhanden?
|
313
329
|
end
|
314
330
|
end
|
315
331
|
|
@@ -392,7 +408,7 @@ module SchildErweitert
|
|
392
408
|
fach.bezeichnung
|
393
409
|
end
|
394
410
|
|
395
|
-
# Die Fachgruppen
|
411
|
+
# Die Fachgruppen-ID des Fachs
|
396
412
|
def fachgruppe_ID
|
397
413
|
fach.fachgruppe_id
|
398
414
|
end
|
@@ -436,6 +452,37 @@ module SchildErweitert
|
|
436
452
|
end
|
437
453
|
end
|
438
454
|
|
455
|
+
# Assoziation für Abi-Abschlussdaten
|
456
|
+
class AbiAbschluss
|
457
|
+
# Ist der Schüler zugelassen?
|
458
|
+
def zulassung?
|
459
|
+
self.Zugelassen == "+"
|
460
|
+
end
|
461
|
+
alias_method :zugelassen?, :zulassung?
|
462
|
+
|
463
|
+
# Hat der Schüler die Abi-Prüfung bestanden?
|
464
|
+
def bestanden_abi?
|
465
|
+
self.PruefungBestanden == "+"
|
466
|
+
end
|
467
|
+
alias_method :pruefung_bestanden?, :bestanden_abi?
|
468
|
+
|
469
|
+
def latinum?
|
470
|
+
self.Latinum == "+"
|
471
|
+
end
|
472
|
+
|
473
|
+
def kl_latinum?
|
474
|
+
self.KlLatinum == "+"
|
475
|
+
end
|
476
|
+
|
477
|
+
def graecum?
|
478
|
+
self.Graecum == "+"
|
479
|
+
end
|
480
|
+
|
481
|
+
def hebraicum?
|
482
|
+
self.Hebraicum == "+"
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
439
486
|
# Assoziation für die jeweiligen Abi-Prüfungsfächer
|
440
487
|
class AbiAbschlussFaecher
|
441
488
|
include NotenHelfer
|
@@ -445,6 +492,15 @@ module SchildErweitert
|
|
445
492
|
end
|
446
493
|
end
|
447
494
|
|
495
|
+
# Assoziation für die jeweiligen FHR-Prüfungsfächer
|
496
|
+
class FHRAbschlussFaecher
|
497
|
+
include NotenHelfer
|
498
|
+
|
499
|
+
def note(notenart)
|
500
|
+
note_s send(notenart)
|
501
|
+
end
|
502
|
+
end
|
503
|
+
|
448
504
|
# Schul-Tabelle mit vereinfachtem Zugriff auf Datenfelder mittel class-Methoden
|
449
505
|
class Schule
|
450
506
|
# gibt die Schulnummer zurück
|
@@ -470,21 +526,9 @@ module SchildErweitert
|
|
470
526
|
|
471
527
|
# Tabelle der Schuld-Benutzer zum Abgleichen der Daten
|
472
528
|
class Nutzer
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
self.us_name
|
477
|
-
end
|
478
|
-
|
479
|
-
# der Login-Name des Nutzers
|
480
|
-
def login
|
481
|
-
self.us_login_name
|
482
|
-
end
|
483
|
-
|
484
|
-
# das Passwort des Nutzers
|
485
|
-
def passwort
|
486
|
-
self.us_password
|
487
|
-
end
|
529
|
+
alias :name :us_name
|
530
|
+
alias :login :us_login_name
|
531
|
+
alias :passwort :us_password
|
488
532
|
alias :password :passwort
|
489
533
|
|
490
534
|
# prüft, ob das angegebene Passwort mit dem gespeicherten Passwort übereinstimmt
|
@@ -499,3 +543,4 @@ module SchildErweitert
|
|
499
543
|
end
|
500
544
|
end
|
501
545
|
end
|
546
|
+
|
data/schild.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = %q{Schild-API}
|
12
12
|
spec.description = %q{schild bietet eine Ruby-Schnittstelle zu SchilD-NRW-Datenbanken.}
|
13
13
|
spec.homepage = "https://github.com/hmt/schild"
|
14
|
-
spec.licenses = ["
|
14
|
+
spec.licenses = ["MIT"]
|
15
15
|
spec.required_ruby_version = ">= 2.0"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -20,11 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1"
|
23
|
-
spec.add_development_dependency "rake", "~>
|
23
|
+
spec.add_development_dependency "rake", "~> 11"
|
24
24
|
spec.add_development_dependency "minitest", "~> 5"
|
25
25
|
spec.add_development_dependency "minitest-rg", "~> 5"
|
26
26
|
spec.add_development_dependency "mysql2", "~> 0.4"
|
27
|
-
spec.add_development_dependency "envyable", "~>
|
27
|
+
spec.add_development_dependency "envyable", "~> 1"
|
28
28
|
|
29
29
|
spec.add_runtime_dependency "sequel", "~> 4"
|
30
30
|
end
|
data/specs/fachklasse_spec.rb
CHANGED
data/specs/schueler_spec.rb
CHANGED
@@ -12,12 +12,6 @@ describe Schueler do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
describe 'Legacy-Methoden funktionieren' do
|
16
|
-
it 'kennt entlass_art' do
|
17
|
-
@sm.entlassart.must_equal @sm.entlass_art
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
15
|
describe 'Associations funktionieren Erwartungsgemäß' do
|
22
16
|
it 'geben Fachklassenbezeichnung zurück (eigeneschule_fachklassen:Fachklassen)' do
|
23
17
|
@sm.fachklasse.Bezeichnung.must_equal "Friseur"
|
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.7.
|
4
|
+
version: 0.7.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HMT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '11'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '11'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '1'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '1'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: sequel
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,8 +132,7 @@ files:
|
|
132
132
|
- specs/type_safe_spec.rb
|
133
133
|
homepage: https://github.com/hmt/schild
|
134
134
|
licenses:
|
135
|
-
-
|
136
|
-
- MIT License
|
135
|
+
- MIT
|
137
136
|
metadata: {}
|
138
137
|
post_install_message:
|
139
138
|
rdoc_options: []
|
@@ -151,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
150
|
version: '0'
|
152
151
|
requirements: []
|
153
152
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.5.1
|
155
154
|
signing_key:
|
156
155
|
specification_version: 4
|
157
156
|
summary: Schild-API
|