couch_potato 0.2.31 → 0.2.32
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/CHANGES.md +6 -0
- data/README.md +4 -0
- data/VERSION.yml +1 -1
- data/lib/couch_potato/persistence/active_model_compliance.rb +8 -0
- data/lib/couch_potato/persistence/magic_timestamps.rb +9 -2
- data/lib/couch_potato/persistence.rb +2 -1
- data/spec/create_spec.rb +12 -0
- data/spec/unit/active_model_compliance_spec.rb +26 -1
- data/spec/update_spec.rb +1 -1
- metadata +3 -3
data/CHANGES.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## Changes
|
|
2
2
|
|
|
3
|
+
### 0.2.32
|
|
4
|
+
* added persisted? and to_key for proper ActiveModel compliance (thilo)
|
|
5
|
+
* id setter (jhohertz-work)
|
|
6
|
+
* load document ids if include\_documents is false (jweiss)
|
|
7
|
+
* persist given created\_at/updated\_at instead of Time.now (langalex)
|
|
8
|
+
|
|
3
9
|
### 0.2.31
|
|
4
10
|
* Removed requirement for validatable gem. Allows for using more uptodate versions of the library, or doesn't install it when you're using ActiveModel. (mattmatt)
|
|
5
11
|
* fixed callbacks of super classes were not run (langalex)
|
data/README.md
CHANGED
|
@@ -36,6 +36,10 @@ After that you configure the name of the database:
|
|
|
36
36
|
The server URL will default to http://localhost:5984/ unless specified:
|
|
37
37
|
|
|
38
38
|
CouchPotato::Config.database_name = "http://example.com:5984/name_of_the_db"
|
|
39
|
+
|
|
40
|
+
Or with authentication
|
|
41
|
+
|
|
42
|
+
CouchPotato::Config.database_name = "http://username:password@example.com:5984/name_of_the_db"
|
|
39
43
|
|
|
40
44
|
Optionally you can configure which framework you want to use for validations (either validatable or ActiveModel)
|
|
41
45
|
|
data/VERSION.yml
CHANGED
|
@@ -5,8 +5,15 @@ module CouchPotato
|
|
|
5
5
|
property :created_at, :type => Time
|
|
6
6
|
property :updated_at, :type => Time
|
|
7
7
|
|
|
8
|
-
before_create lambda {|model|
|
|
9
|
-
|
|
8
|
+
before_create lambda {|model|
|
|
9
|
+
model.created_at ||= Time.now
|
|
10
|
+
model.created_at_not_changed
|
|
11
|
+
model.updated_at ||= Time.now
|
|
12
|
+
model.updated_at_not_changed
|
|
13
|
+
}
|
|
14
|
+
before_update lambda {|model|
|
|
15
|
+
model.updated_at = Time.now
|
|
16
|
+
model.updated_at_not_changed}
|
|
10
17
|
end
|
|
11
18
|
end
|
|
12
19
|
end
|
|
@@ -23,6 +23,7 @@ module CouchPotato
|
|
|
23
23
|
base.class_eval do
|
|
24
24
|
attr_accessor :_id, :_rev, :_deleted, :database
|
|
25
25
|
alias_method :id, :_id
|
|
26
|
+
alias_method :id=, :_id=
|
|
26
27
|
end
|
|
27
28
|
end
|
|
28
29
|
|
|
@@ -100,4 +101,4 @@ module CouchPotato
|
|
|
100
101
|
%Q{#<#{self.class} _id: "#{_id}", _rev: "#{_rev}", #{attributes_as_string}>}
|
|
101
102
|
end
|
|
102
103
|
end
|
|
103
|
-
end
|
|
104
|
+
end
|
data/spec/create_spec.rb
CHANGED
|
@@ -10,6 +10,18 @@ describe "create" do
|
|
|
10
10
|
CouchPotato.database.save_document! @comment
|
|
11
11
|
CouchPotato.couchrest_database.get(@comment.id).send(JSON.create_id).should == 'Comment'
|
|
12
12
|
end
|
|
13
|
+
|
|
14
|
+
it "should persist a given created_at" do
|
|
15
|
+
@comment = Comment.new :created_at => Time.parse('2010-01-02 12:34:48 +0000'), :title => '-'
|
|
16
|
+
CouchPotato.database.save_document! @comment
|
|
17
|
+
CouchPotato.couchrest_database.get(@comment.id).created_at.should == Time.parse('2010-01-02 12:34:48 +0000')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should persist a given updated_at" do
|
|
21
|
+
@comment = Comment.new :updated_at => Time.parse('2010-01-02 12:34:48 +0000'), :title => '-'
|
|
22
|
+
CouchPotato.database.save_document! @comment
|
|
23
|
+
CouchPotato.couchrest_database.get(@comment.id).updated_at.should == Time.parse('2010-01-02 12:34:48 +0000')
|
|
24
|
+
end
|
|
13
25
|
end
|
|
14
26
|
describe "fails" do
|
|
15
27
|
it "should not store anything" do
|
|
@@ -24,6 +24,31 @@ begin
|
|
|
24
24
|
@model = ActiveComment.new
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
describe "#persisted?" do
|
|
28
|
+
it "should return false if it is a new document " do
|
|
29
|
+
@model.should_not be_persisted
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should be true if it was saved" do
|
|
33
|
+
@comment = ActiveComment.new(:name => 'Thilo', :email => 'test@local.host')
|
|
34
|
+
CouchPotato.database.save_document! @comment
|
|
35
|
+
@comment.should be_persisted
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe "#to_key" do
|
|
40
|
+
it "should return nil if the document was not persisted" do
|
|
41
|
+
@model.to_key.should be_nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "should return the id of the document if it was persisted" do
|
|
45
|
+
@comment = ActiveComment.new(:name => 'Thilo', :email => 'test@local.host')
|
|
46
|
+
CouchPotato.database.save_document! @comment
|
|
47
|
+
@comment.to_key.should == [@comment.id]
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
27
52
|
describe "#errors" do
|
|
28
53
|
it "should return a single error as array" do
|
|
29
54
|
@model.valid?
|
|
@@ -55,7 +80,7 @@ begin
|
|
|
55
80
|
end
|
|
56
81
|
end
|
|
57
82
|
|
|
58
|
-
def assert(boolean, message)
|
|
83
|
+
def assert(boolean, message = '')
|
|
59
84
|
boolean || raise(message)
|
|
60
85
|
end
|
|
61
86
|
|
data/spec/update_spec.rb
CHANGED
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 2
|
|
8
|
-
-
|
|
9
|
-
version: 0.2.
|
|
8
|
+
- 32
|
|
9
|
+
version: 0.2.32
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Alexander Lang
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-
|
|
17
|
+
date: 2010-07-13 00:00:00 +02:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|