schild 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 806113777b9bbc25eb38105d179742884490e49a
4
- data.tar.gz: a0828e0a253cab9379e28c21e09635d1cfd74a46
3
+ metadata.gz: 0381923a770fa822f45306da206222eb9ed9af25
4
+ data.tar.gz: 5ee8618b12e07393300fffb246507b0f4fbebff6
5
5
  SHA512:
6
- metadata.gz: 633f4aeda86b695e08e54187ef7f0fa1eb43a4d37b68ed6244104e918471d581450c9a87797edc4eb5dd8d2a49490e443a4d68ea22d4405495c3249d8d8bf7a3
7
- data.tar.gz: f9f3ebbeb374cb3f0ebca5bd5698fb43bf3a2e55edc4eddcdbece887a4bbc333549cc4989e9786f7d1022ccf76283afbb5acf5f90112fb2c39ff1ef6969fbd5b
6
+ metadata.gz: b548ab392d843987405b4d905ba6a25349e63eeddce2f7a4cbc69203c63edd53b0a56132e5cff0e1dbf0ed6e787e3c1f156028c7475af6aadf8067d44d927ddc
7
+ data.tar.gz: c04d780af9eae74628e1b25d96b451f8f6e8e19572369f45fec2bdc51c1f18bf29c00ccc465aec1c24fbce78aa2e72056ef332e039857b1287c4dcce707d07b0
@@ -35,9 +35,16 @@ module SchildTypeSaver
35
35
  # bei include wird für jede Spalte in der Schild-Tabelle eine Ersatzmethode
36
36
  # erstellt, die bei nil ein Null-Objekt erstellt.
37
37
  def self.included(klass)
38
- klass.columns.each do |column|
38
+ klass.columns.each do |column|
39
39
  name = column.snake_case
40
- define_method(name) { public_send(column) || create_null_object(klass, column)}
40
+ define_method(name) do |allow_nil=false|
41
+ ret = public_send(column)
42
+ if allow_nil || ret
43
+ ret
44
+ else
45
+ create_null_object(klass, column)
46
+ end
47
+ end
41
48
  end
42
49
  end
43
50
 
@@ -88,7 +95,7 @@ end
88
95
  # Das Schild Modul, das alle Klassen für die Datenbankanbindung bereitstellt
89
96
  module Schild
90
97
  # ist die Datenbank-Verbindung. Alle Daten können über diese Konstante abgerufen werden
91
- DB = Sequel.connect(:adapter=>ENV['S_ADAPTER'], :host=>ENV['S_HOST'], :user=>ENV['S_USER'], :password=>ENV['S_PASSWORD'], :database=>ENV['S_DB'])
98
+ DB = Sequel.connect("#{ENV['S_ADAPTER']}://#{ENV['S_HOST']}/#{ENV['S_DB']}?user=#{ENV['S_USER']}&password=#{ENV['S_PASSWORD']}")
92
99
 
93
100
  # Stellt die Schüler-Tabelle samt Assoziationen bereit.
94
101
  class Schueler < Sequel::Model(:schueler)
@@ -1,3 +1,3 @@
1
1
  module Schild
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -19,12 +19,12 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.7"
23
- spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "bundler", "~> 1"
23
+ spec.add_development_dependency "rake", "~> 10"
24
24
  spec.add_development_dependency "minitest", "~> 5"
25
25
  spec.add_development_dependency "minitest-rg", "~> 5"
26
+ spec.add_development_dependency "mysql2", "~> 0.4"
26
27
 
27
28
  spec.add_runtime_dependency "sequel", "~> 4"
28
- spec.add_runtime_dependency "mysql2", "~> 0"
29
29
  spec.add_runtime_dependency "envyable", "~> 0"
30
30
  end
@@ -47,5 +47,21 @@ describe Schueler do
47
47
  @sm.Geburtsdatum.must_equal nil
48
48
  end
49
49
  end
50
+
51
+ describe 'allow_nil entweder true oder false' do
52
+ before do
53
+ # lade einen Standardschueler
54
+ @sm = Schueler.where(:Status => 2, :Geloescht => "-", :Gesperrt => "-").first
55
+ end
56
+
57
+ it 'gibt leer zurück, wenn default' do
58
+ @sm.bemerkungen.must_equal ''
59
+ end
60
+
61
+ it 'gibt nil zurück, wenn leer und typensicher und true bei allow_nil' do
62
+ @sm.bemerkungen(true).must_equal nil
63
+ @sm.geburtsdatum(true).must_equal nil
64
+ end
65
+ end
50
66
  end
51
67
 
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.5.0
4
+ version: 0.6.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-10-16 00:00:00.000000000 Z
11
+ date: 2015-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '10'
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: '10.0'
40
+ version: '10'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,33 +67,33 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '5'
69
69
  - !ruby/object:Gem::Dependency
70
- name: sequel
70
+ name: mysql2
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4'
76
- type: :runtime
75
+ version: '0.4'
76
+ type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4'
82
+ version: '0.4'
83
83
  - !ruby/object:Gem::Dependency
84
- name: mysql2
84
+ name: sequel
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '4'
90
90
  type: :runtime
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: '0'
96
+ version: '4'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: envyable
99
99
  requirement: !ruby/object:Gem::Requirement