westarete-activerecord_null_object 0.0.1 → 0.1.0

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.1
1
+ 0.1.0
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{activerecord_null_object}
5
- s.version = "0.0.1"
5
+ s.version = "0.1.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Scott Woods"]
9
- s.date = %q{2009-08-15}
9
+ s.date = %q{2009-09-02}
10
10
  s.description = %q{}
11
11
  s.email = %q{info@westarete.com}
12
12
  s.extra_rdoc_files = [
data/lib/null_object.rb CHANGED
@@ -13,24 +13,8 @@ module ActiveRecordNullObject
13
13
  true
14
14
  end
15
15
 
16
- def new_record?
17
- false
18
- end
19
-
20
- def save
21
- true
22
- end
23
-
24
- def save!
25
- true
26
- end
27
-
28
- def update_attributes(attributes)
29
- true
30
- end
31
-
32
- def update_attributes!(attributes)
33
- true
16
+ def validate
17
+ errors.add_to_base("is a null object and can't be saved")
34
18
  end
35
19
 
36
20
  end
@@ -38,39 +38,56 @@ describe NullAuthor do
38
38
  end
39
39
 
40
40
  describe "#new_record?" do
41
- it "should return false" do
42
- @null_author.new_record?.should be_false
41
+ it "should return true" do
42
+ @null_author.new_record?.should be_true
43
43
  end
44
44
  end
45
45
 
46
46
  describe "#save" do
47
- it "should return true" do
48
- @null_author.save.should be_true
47
+ it "should return false" do
48
+ @null_author.save.should be_false
49
49
  end
50
50
 
51
51
  it "should not create a new record" do
52
52
  lambda { @null_author.save }.should_not change { NullAuthor.count }
53
53
  end
54
+
55
+ it "should add an error" do
56
+ @null_author.errors.on(:base).should == "is a null object and can't be saved"
57
+ end
54
58
  end
55
59
 
56
60
  describe "#save!" do
57
- it "should return true" do
58
- @null_author.save!.should be_true
61
+ it "should raise an exception" do
62
+ lambda { @null_author.save! }.should raise_error(ActiveRecord::RecordInvalid)
59
63
  end
60
64
 
61
65
  it "should not create a new record" do
62
- lambda { @null_author.save! }.should_not change { NullAuthor.count }
66
+ lambda {
67
+ begin
68
+ @null_author.save!
69
+ rescue ActiveRecord::RecordInvalid
70
+ end
71
+ }.should_not change { NullAuthor.count }
72
+ end
73
+
74
+ it "should add an error" do
75
+ @null_author.errors.on(:base).should == "is a null object and can't be saved"
63
76
  end
64
77
  end
65
78
 
66
79
  describe "#update_attributes" do
67
- it "should return true" do
68
- @null_author.update_attributes({}).should be_true
80
+ it "should return false" do
81
+ @null_author.update_attributes({}).should be_false
69
82
  end
70
83
 
71
84
  it "should not create a new record" do
72
85
  lambda { @null_author.update_attributes({}) }.should_not change { NullAuthor.count }
73
86
  end
87
+
88
+ it "should add an error" do
89
+ @null_author.errors.on(:base).should == "is a null object and can't be saved"
90
+ end
74
91
  end
75
92
 
76
93
  describe "#name" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: westarete-activerecord_null_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Woods
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-15 00:00:00 -07:00
12
+ date: 2009-09-02 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -39,7 +39,6 @@ files:
39
39
  - spec/spec_helper.rb
40
40
  has_rdoc: true
41
41
  homepage: http://github.com/westarete/activerecord_null_object/
42
- licenses:
43
42
  post_install_message:
44
43
  rdoc_options:
45
44
  - --charset=UTF-8
@@ -60,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
59
  requirements: []
61
60
 
62
61
  rubyforge_project:
63
- rubygems_version: 1.3.5
62
+ rubygems_version: 1.2.0
64
63
  signing_key:
65
64
  specification_version: 2
66
65
  summary: Implements the Null Object Pattern for nil values in ActiveRecord associations.