sample_models 1.2.3 → 1.2.4
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.
- data/VERSION +1 -1
- data/lib/sample_models/model.rb +11 -5
- data/sample_models.gemspec +2 -2
- data/spec_or_test/setup.rb +13 -1
- data/spec_or_test/specs_or_test_cases.rb +8 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.4
|
data/lib/sample_models/model.rb
CHANGED
@@ -175,11 +175,17 @@ module SampleModels
|
|
175
175
|
class ValidatesUniquenessOfValueStream < ValueStream
|
176
176
|
def satisfying_value
|
177
177
|
value = input.satisfying_value if input
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
178
|
+
unless @config[:allow_nil] && value.nil?
|
179
|
+
unless @config[:allow_blank] && value.blank?
|
180
|
+
if !@model.unique?(@field, value)
|
181
|
+
my_input = input || ValidatesPresenceOfValueStream.new(
|
182
|
+
@model, @field, nil, @input
|
183
|
+
)
|
184
|
+
until @model.unique?(@field, value)
|
185
|
+
my_input.increment
|
186
|
+
value = my_input.satisfying_value
|
187
|
+
end
|
188
|
+
end
|
183
189
|
end
|
184
190
|
end
|
185
191
|
value
|
data/sample_models.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sample_models}
|
8
|
-
s.version = "1.2.
|
8
|
+
s.version = "1.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Francis Hwang"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-16}
|
13
13
|
s.description = %q{
|
14
14
|
A library for making it extremely fast for Rails developers to set up and save ActiveRecord instances when writing test cases. It aims to:
|
15
15
|
|
data/spec_or_test/setup.rb
CHANGED
@@ -69,6 +69,9 @@ def initialize_db
|
|
69
69
|
episode.date 'original_air_date'
|
70
70
|
end
|
71
71
|
|
72
|
+
create_table 'external_users', :force => true do |external_user|
|
73
|
+
end
|
74
|
+
|
72
75
|
create_table 'networks', :force => true do |network|
|
73
76
|
network.string 'name'
|
74
77
|
end
|
@@ -88,7 +91,7 @@ def initialize_db
|
|
88
91
|
end
|
89
92
|
|
90
93
|
create_table 'users', :force => true do |user|
|
91
|
-
user.integer 'favorite_blog_post_id'
|
94
|
+
user.integer 'favorite_blog_post_id', 'external_user_id'
|
92
95
|
user.string 'email', 'gender', 'homepage', 'login', 'password'
|
93
96
|
end
|
94
97
|
|
@@ -171,6 +174,9 @@ class Episode < ActiveRecord::Base
|
|
171
174
|
validates_presence_of :show_id, :original_air_date
|
172
175
|
end
|
173
176
|
|
177
|
+
class ExternalUser < ActiveRecord::Base
|
178
|
+
end
|
179
|
+
|
174
180
|
class Network < ActiveRecord::Base
|
175
181
|
end
|
176
182
|
|
@@ -193,10 +199,12 @@ end
|
|
193
199
|
class User < ActiveRecord::Base
|
194
200
|
belongs_to :favorite_blog_post,
|
195
201
|
:class_name => 'BlogPost', :foreign_key => 'favorite_blog_post_id'
|
202
|
+
belongs_to :external_user
|
196
203
|
|
197
204
|
validates_email_format_of :email
|
198
205
|
validates_inclusion_of :gender, :in => %w(f m)
|
199
206
|
validates_uniqueness_of :email, :login, :case_sensitive => false
|
207
|
+
validates_uniqueness_of :external_user_id, :allow_nil => true
|
200
208
|
end
|
201
209
|
|
202
210
|
class User2 < ActiveRecord::Base
|
@@ -261,6 +269,10 @@ SampleModels.configure Subscription do |sub|
|
|
261
269
|
sub.subscribable.default_class BlogPost
|
262
270
|
end
|
263
271
|
|
272
|
+
SampleModels.configure User do |user|
|
273
|
+
user.external_user_id.default nil
|
274
|
+
end
|
275
|
+
|
264
276
|
SampleModels.configure Video do |video|
|
265
277
|
video.before_save do |v, sample_attrs|
|
266
278
|
if v.episode && v.episode.show != v.show
|
@@ -576,3 +576,11 @@ describe 'Model which validates the presence and uniqueness of a string field' d
|
|
576
576
|
end
|
577
577
|
end
|
578
578
|
|
579
|
+
describe 'Model that validates uniqueness with an allow-nil constraint' do
|
580
|
+
it 'should let you configure the default to be nil' do
|
581
|
+
User.sample
|
582
|
+
user = User.create_sample
|
583
|
+
assert_nil user.external_user
|
584
|
+
assert_nil user.external_user_id
|
585
|
+
end
|
586
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sample_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 4
|
10
|
+
version: 1.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Francis Hwang
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-16 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|