Merge branch 'master' of github.com:couchrest/couchrest_model
Conflicts: lib/couchrest/model/callbacks.rb
This commit is contained in:
commit
7875113d95
|
@ -21,6 +21,7 @@ module CouchRest
|
||||||
include CouchRest::Model::Designs
|
include CouchRest::Model::Designs
|
||||||
include CouchRest::Model::CastedBy
|
include CouchRest::Model::CastedBy
|
||||||
include CouchRest::Model::Dirty
|
include CouchRest::Model::Dirty
|
||||||
|
include CouchRest::Model::Callbacks
|
||||||
|
|
||||||
def self.subclasses
|
def self.subclasses
|
||||||
@subclasses ||= []
|
@subclasses ||= []
|
||||||
|
|
|
@ -12,6 +12,8 @@ module CouchRest::Model
|
||||||
include CouchRest::Model::Callbacks
|
include CouchRest::Model::Callbacks
|
||||||
include CouchRest::Model::CastedBy
|
include CouchRest::Model::CastedBy
|
||||||
include CouchRest::Model::Dirty
|
include CouchRest::Model::Dirty
|
||||||
|
include CouchRest::Model::Callbacks
|
||||||
|
|
||||||
class_eval do
|
class_eval do
|
||||||
# Override CastedBy's base_doc?
|
# Override CastedBy's base_doc?
|
||||||
def base_doc?
|
def base_doc?
|
||||||
|
|
11
spec/fixtures/models/base.rb
vendored
11
spec/fixtures/models/base.rb
vendored
|
@ -83,6 +83,17 @@ class WithCallBacks < CouchRest::Model::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Following two fixture classes have __intentionally__ diffent syntax for setting the validation context
|
||||||
|
class WithContextualValidationOnCreate < CouchRest::Model::Base
|
||||||
|
property(:name, String)
|
||||||
|
validates(:name, :presence => {:on => :create})
|
||||||
|
end
|
||||||
|
|
||||||
|
class WithContextualValidationOnUpdate < CouchRest::Model::Base
|
||||||
|
property(:name, String)
|
||||||
|
validates(:name, :presence => true, :on => :update)
|
||||||
|
end
|
||||||
|
|
||||||
class WithTemplateAndUniqueID < CouchRest::Model::Base
|
class WithTemplateAndUniqueID < CouchRest::Model::Base
|
||||||
use_database TEST_SERVER.default_database
|
use_database TEST_SERVER.default_database
|
||||||
unique_id do |model|
|
unique_id do |model|
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
||||||
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
||||||
|
|
||||||
MODELS = File.join(File.dirname(__FILE__), "fixtures", "models")
|
|
||||||
$LOAD_PATH.unshift(MODELS)
|
|
||||||
|
|
||||||
require "bundler/setup"
|
require "bundler/setup"
|
||||||
require "rubygems"
|
require "rubygems"
|
||||||
require "rspec"
|
require "rspec"
|
||||||
|
@ -11,6 +8,9 @@ require "rspec"
|
||||||
require 'couchrest_model'
|
require 'couchrest_model'
|
||||||
|
|
||||||
unless defined?(FIXTURE_PATH)
|
unless defined?(FIXTURE_PATH)
|
||||||
|
MODEL_PATH = File.join(File.dirname(__FILE__), "fixtures", "models")
|
||||||
|
$LOAD_PATH.unshift(MODEL_PATH)
|
||||||
|
|
||||||
FIXTURE_PATH = File.join(File.dirname(__FILE__), '/fixtures')
|
FIXTURE_PATH = File.join(File.dirname(__FILE__), '/fixtures')
|
||||||
SCRATCH_PATH = File.join(File.dirname(__FILE__), '/tmp')
|
SCRATCH_PATH = File.join(File.dirname(__FILE__), '/tmp')
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ RSpec.configure do |config|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Require each of the fixture models
|
# Require each of the fixture models
|
||||||
Dir[ File.join(MODELS, "*.rb") ].sort.each { |file| require File.basename(file) }
|
Dir[ File.join(MODEL_PATH, "*.rb") ].sort.each { |file| require File.basename(file) }
|
||||||
|
|
||||||
class Basic < CouchRest::Model::Base
|
class Basic < CouchRest::Model::Base
|
||||||
use_database TEST_SERVER.default_database
|
use_database TEST_SERVER.default_database
|
||||||
|
|
|
@ -356,6 +356,27 @@ describe CouchRest::Model::Persistence do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "with contextual validation on ”create”" do
|
||||||
|
it "should validate only within ”create” context" do
|
||||||
|
doc = WithContextualValidationOnCreate.new
|
||||||
|
doc.save.should be_false
|
||||||
|
doc.name = "Alice"
|
||||||
|
doc.save.should be_true
|
||||||
|
|
||||||
|
doc.update_attributes(:name => nil).should be_true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "with contextual validation on ”update”" do
|
||||||
|
it "should validate only within ”update” context" do
|
||||||
|
doc = WithContextualValidationOnUpdate.new
|
||||||
|
doc.save.should be_true
|
||||||
|
|
||||||
|
doc.update_attributes(:name => nil).should be_false
|
||||||
|
doc.update_attributes(:name => "Bob").should be_true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "save" do
|
describe "save" do
|
||||||
it "should run the after filter after saving" do
|
it "should run the after filter after saving" do
|
||||||
@doc.run_after_save.should be_nil
|
@doc.run_after_save.should be_nil
|
||||||
|
|
Loading…
Reference in a new issue