polymorphic_model 0.0.3 → 0.0.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 CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -16,8 +16,12 @@ module PolymorphicModel
16
16
 
17
17
  def validates_type
18
18
  validates_each @_polymorphic_column, {:on => :save} do |record, attr_name, value|
19
- unless self.types.include?(value.to_sym)
20
- record.errors.add_to_base("is undefined type (#{value.to_s}), correct types are: [#{self.types.map(&:to_s).join(', ')}]")
19
+ unless value.nil? || value == ""
20
+ unless self.types.include?(value.to_sym)
21
+ record.errors.add_to_base("is undefined type (#{value.to_s}), correct types are: [#{self.types.map(&:to_s).join(', ')}]")
22
+ end
23
+ else
24
+ record.errors.add_to_base("is not any type, correct types are: [#{self.types.map(&:to_s).join(', ')}]")
21
25
  end
22
26
  end
23
27
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{polymorphic_model}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Artur Roszczyk"]
12
- s.date = %q{2009-11-23}
12
+ s.date = %q{2009-11-24}
13
13
  s.description = %q{Alternative for ActiveRecord's Single Table Inheritance}
14
14
  s.email = %q{artur.roszczyk@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -35,8 +35,8 @@ describe "When normal collection types are defined" do
35
35
  define_type :internal
36
36
  define_type :external
37
37
  end
38
- 2.times { @external = Job.create(:job_type => "external") }
39
- 3.times { @internal = Job.create(:job_type => "internal") }
38
+ 2.times { @external = Job.create!(:job_type => "external") }
39
+ 3.times { @internal = Job.create!(:job_type => "internal") }
40
40
  end
41
41
 
42
42
  describe "check methods" do
@@ -56,9 +56,17 @@ describe "When normal collection types are defined" do
56
56
  end
57
57
 
58
58
  it "should allow only defined types" do
59
- Job.new(:job_type => "other").should_not be_valid
59
+ @job = Job.new(:job_type => "other")
60
+ @job.should_not be_valid
60
61
  end
61
-
62
+
63
+ it "should require any type" do
64
+ @job = Job.new
65
+ @job.should_not be_valid
66
+ @job.job_type = ""
67
+ @job.should_not be_valid
68
+ end
69
+
62
70
  it "should provide list of defined types" do
63
71
  Job.types.should include(:internal, :external)
64
72
  end
@@ -108,11 +116,10 @@ describe "When singleton type is defined" do
108
116
  before do
109
117
  Job.destroy_all
110
118
  end
111
- it "should not create object" do
112
- Job.basic.should_not be_instance_of(Job)
113
- end
119
+
114
120
  it "should return empty scope" do
115
121
  Job.basic.class.should == ActiveRecord::NamedScope::Scope
122
+ Job.basic.should be_empty
116
123
  end
117
124
  end
118
125
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polymorphic_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artur Roszczyk
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-23 00:00:00 +01:00
12
+ date: 2009-11-24 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency