schild 0.7.2 → 0.7.8
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/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
|