Callbacks now take multiple callback methods
This commit is contained in:
parent
ab362cb32c
commit
db7829e996
3 changed files with 61 additions and 4 deletions
|
@ -53,6 +53,32 @@ describe "ExtendedDocument" do
|
|||
after_update do |object|
|
||||
object.run_after_update = true
|
||||
end
|
||||
|
||||
property :run_one
|
||||
property :run_two
|
||||
property :run_three
|
||||
|
||||
before_save :run_one_method, :run_two_method do |object|
|
||||
object.run_three = true
|
||||
end
|
||||
def run_one_method
|
||||
self.run_one = true
|
||||
end
|
||||
def run_two_method
|
||||
self.run_two = true
|
||||
end
|
||||
|
||||
attr_accessor :run_it
|
||||
property :conditional_one
|
||||
property :conditional_two
|
||||
|
||||
before_save :conditional_one_method, :conditional_two_method, :if => proc { self.run_it }
|
||||
def conditional_one_method
|
||||
self.conditional_one = true
|
||||
end
|
||||
def conditional_two_method
|
||||
self.conditional_two = true
|
||||
end
|
||||
end
|
||||
|
||||
class WithTemplateAndUniqueID < CouchRest::ExtendedDocument
|
||||
|
@ -532,6 +558,27 @@ describe "ExtendedDocument" do
|
|||
@doc.save.should be_true
|
||||
@doc.run_after_save.should be_true
|
||||
end
|
||||
it "should run the grouped callbacks before saving" do
|
||||
@doc.run_one.should be_nil
|
||||
@doc.run_two.should be_nil
|
||||
@doc.run_three.should be_nil
|
||||
@doc.save.should be_true
|
||||
@doc.run_one.should be_true
|
||||
@doc.run_two.should be_true
|
||||
@doc.run_three.should be_true
|
||||
end
|
||||
it "should not run conditional callbacks" do
|
||||
@doc.run_it = false
|
||||
@doc.save.should be_true
|
||||
@doc.conditional_one.should be_nil
|
||||
@doc.conditional_two.should be_nil
|
||||
end
|
||||
it "should run conditional callbacks" do
|
||||
@doc.run_it = true
|
||||
@doc.save.should be_true
|
||||
@doc.conditional_one.should be_true
|
||||
@doc.conditional_two.should be_true
|
||||
end
|
||||
end
|
||||
describe "create" do
|
||||
it "should run the before save filter when creating" do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue