sbfaulkner-sequel_cascading 1.0.0 → 1.0.2

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/README.markdown CHANGED
@@ -33,6 +33,12 @@ Install the gem(s):
33
33
  is :cascading, :destroy => :comments
34
34
  end
35
35
 
36
+ ## TODO
37
+
38
+ - add tests
39
+ - add :null and :deny support?
40
+ - publish in sequel www/pages/plugins
41
+
36
42
  ## Legal
37
43
 
38
44
  **Author:** S. Brent Faulkner <brentf@unwwwired.net>
data/Rakefile CHANGED
@@ -1,10 +1,17 @@
1
1
  require 'rubygems'
2
- Gem::manage_gems
3
2
  require 'rake/gempackagetask'
3
+ require 'rake/testtask'
4
4
 
5
5
  load File.join(File.dirname(__FILE__),'sequel_cascading.gemspec')
6
6
 
7
7
  Rake::GemPackageTask.new(SPEC) do |pkg|
8
8
  end
9
9
 
10
- task :default => :package
10
+ Rake::TestTask.new(:test) do |t|
11
+ t.pattern = 'test/*_test.rb'
12
+ t.verbose = true
13
+ end
14
+
15
+ Rake::Task[:test].comment = "Run the tests"
16
+
17
+ task :default => :test
@@ -1,7 +1,7 @@
1
1
  SPEC = Gem::Specification.new do |s|
2
2
  # identify the gem
3
3
  s.name = "sequel_cascading"
4
- s.version = "1.0.0"
4
+ s.version = "1.0.2"
5
5
  s.author = "S. Brent Faulkner"
6
6
  s.email = "brentf@unwwwired.net"
7
7
  s.homepage = "http://github.com/sbfaulkner/sequel_cascading"
@@ -9,9 +9,9 @@ SPEC = Gem::Specification.new do |s|
9
9
  s.platform = Gem::Platform::RUBY
10
10
  # description of gem
11
11
  s.summary = "my take on cascading deletes via a plugin for sequel"
12
- s.files = %w(lib/sequel_cascading.rb MIT-LICENSE Rakefile README.markdown sequel_cascading.gemspec)
12
+ s.files = %w(lib/sequel_cascading.rb MIT-LICENSE Rakefile README.markdown sequel_cascading.gemspec test/sequel_cascading_test.rb)
13
13
  s.require_path = "lib"
14
- # s.test_file = "test/sequel_cascading.rb"
14
+ s.test_file = "test/sequel_cascading_test.rb"
15
15
  s.has_rdoc = true
16
16
  s.extra_rdoc_files = ["README.markdown"]
17
17
  s.add_dependency "sequel"
@@ -0,0 +1,52 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'sequel'
4
+
5
+ DB = Sequel.connect('sqlite:/')
6
+ # DB.execute("SET client_min_messages TO 'WARNING'")
7
+
8
+ class Author < Sequel::Model
9
+ set_schema do
10
+ primary_key :id
11
+ end
12
+ create_table!
13
+ one_to_many :posts
14
+ end
15
+
16
+ class Post < Sequel::Model
17
+ set_schema do
18
+ primary_key :id
19
+ foreign_key :author_id, :authors
20
+ end
21
+ create_table!
22
+ many_to_one :author
23
+ one_to_many :comments
24
+ is :cascading, :destroy => :comments
25
+ end
26
+
27
+ class Comment < Sequel::Model
28
+ set_schema do
29
+ primary_key :id
30
+ foreign_key :post_id, :posts
31
+ end
32
+ create_table!
33
+ many_to_one :post
34
+ end
35
+
36
+ class SequelCascadingTest < Test::Unit::TestCase
37
+ def test_should_leave_orphans_when_destroyed
38
+ author = Author.create
39
+ post = author.add_post(Post.new)
40
+ author.destroy
41
+ assert !author.exists?
42
+ assert post.exists?
43
+ end
44
+
45
+ def test_should_destroy_children_when_destroyed
46
+ post = Post.create
47
+ comment = post.add_comment(Comment.new)
48
+ post.destroy
49
+ assert !post.exists?
50
+ assert !comment.exists?
51
+ end
52
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sbfaulkner-sequel_cascading
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - S. Brent Faulkner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-22 00:00:00 -08:00
12
+ date: 2009-01-11 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -35,6 +35,7 @@ files:
35
35
  - Rakefile
36
36
  - README.markdown
37
37
  - sequel_cascading.gemspec
38
+ - test/sequel_cascading_test.rb
38
39
  has_rdoc: true
39
40
  homepage: http://github.com/sbfaulkner/sequel_cascading
40
41
  post_install_message:
@@ -61,5 +62,5 @@ rubygems_version: 1.2.0
61
62
  signing_key:
62
63
  specification_version: 2
63
64
  summary: my take on cascading deletes via a plugin for sequel
64
- test_files: []
65
-
65
+ test_files:
66
+ - test/sequel_cascading_test.rb