Commit 5e1cfd09 by curtis

Implement persisted? method. Closes #17

parent f05f83dc
pkg/*
*.gem
.bundle
tmp
#!/usr/bin/env bash
# This is an RVM Project .rvmrc file, used to automatically load the ruby
# development environment upon cd'ing into the directory
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
environment_id="ruby-1.9.2@paranoia"
#
# First we attempt to load the desired environment directly from the environment
# file. This is very fast and efficicent compared to running through the entire
# CLI and selector. If you want feedback on which environment was used then
# insert the word 'use' after --create as this triggers verbose mode.
#
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] ; then
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
[[ -s ".rvm/hooks/after_use" ]] && . ".rvm/hooks/after_use"
else
# If the environment file has not yet been created, use the RVM CLI to select.
rvm --create use "$environment_id"
fi
#
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
# it be automatically loaded. Uncomment the following and adjust the filename if
# necessary.
#
# filename=".gems"
# if [[ -s "$filename" ]] ; then
# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
# fi
#
# If you use bundler and would like to run bundle each time you enter the
# directory, you can uncomment the following code.
#
# Ensure that Bundler is installed. Install it if it is not.
if ! command -v bundle >/dev/null; then
printf "The rubygem 'bundler' is not installed. Installing it now.\n"
gem install bundler
fi
# Bundle while reducing excess noise.
printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
bundle | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
......@@ -7,22 +7,24 @@ PATH
GEM
remote: http://rubygems.org/
specs:
activemodel (3.0.8)
activesupport (= 3.0.8)
builder (~> 2.1.2)
i18n (~> 0.5.0)
activerecord (3.0.8)
activemodel (= 3.0.8)
activesupport (= 3.0.8)
arel (~> 2.0.10)
tzinfo (~> 0.3.23)
activesupport (3.0.8)
arel (2.0.10)
builder (2.1.2)
i18n (0.5.0)
activemodel (3.2.0)
activesupport (= 3.2.0)
builder (~> 3.0.0)
activerecord (3.2.0)
activemodel (= 3.2.0)
activesupport (= 3.2.0)
arel (~> 3.0.0)
tzinfo (~> 0.3.29)
activesupport (3.2.0)
i18n (~> 0.6)
multi_json (~> 1.0)
arel (3.0.0)
builder (3.0.0)
i18n (0.6.0)
multi_json (1.0.4)
rake (0.8.7)
sqlite3 (1.3.3)
tzinfo (0.3.28)
sqlite3 (1.3.5)
tzinfo (0.3.31)
PLATFORMS
ruby
......
......@@ -42,4 +42,11 @@ class ActiveRecord::Base
def self.paranoid? ; false ; end
def paranoid? ; self.class.paranoid? ; end
# Override the persisted method to allow for the paranoia gem.
# If a paranoid record is selected, then we only want to check
# if it's a new record, not if it is "destroyed".
def persisted?
paranoid? ? !new_record? : super
end
end
......@@ -30,6 +30,17 @@ class ParanoiaTest < Test::Unit::TestCase
assert_equal true, ParanoidModel.new.paranoid?
end
def test_paranoid_models_to_param
model = ParanoidModel.new
model.save
to_param = model.to_param
model.destroy
assert_not_equal nil, model.to_param
assert_equal to_param, model.to_param
end
def test_destroy_behavior_for_plain_models
model = PlainModel.new
assert_equal 0, model.class.count
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment