delete_soft 0.0.1 → 0.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/delete_soft.gemspec CHANGED
@@ -13,8 +13,6 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.rubyforge_project = "delete_soft"
15
15
 
16
- s.add_dependency('squeel', '>= 0.9.3')
17
-
18
16
  s.add_development_dependency('sqlite3', ['>= 1.3.4'])
19
17
  s.add_development_dependency('activerecord', ['>= 3.1.0'])
20
18
  s.add_development_dependency('rake', ['0.9.2'])
data/lib/class_methods.rb CHANGED
@@ -9,8 +9,13 @@ module DeleteSoftly
9
9
  # Will result in:
10
10
  # Item.at_time(DateTime.parse('2010-01-01')) #=> (SELECT "items".* FROM "items" WHERE (((("items"."deleted_at" > '2010-01-01 00:00:00') OR ("items"."deleted_at" IS NULL)) AND ("items"."created_at" < '2010-01-01 00:00:00')))
11
11
  def at_time(date = Time.now.utc)
12
- with_deleted.where{ (deleted_at > date || deleted_at != nil) && created_at < date }
12
+ with_deleted do
13
+ where('(deleted_at > :date OR deleted_at IS NULL) AND created_at < :date', {:date => date})
14
+ end
13
15
  end
16
+
17
+ "created_at >= :start_date AND created_at <= :end_date"
18
+
14
19
  alias_method :at_date, :at_time
15
20
 
16
21
  # Give the currently active items. When delete_soflty is added this is invoked by default
@@ -26,13 +31,13 @@ module DeleteSoftly
26
31
  # Item.all #=> SELECT "items".* FROM "items"
27
32
  # Item.active #=> SELECT "items".* FROM "items" WHERE ("items"."deleted_at" IS NULL)
28
33
  def active
29
- where{deleted_at == nil}
34
+ where('deleted_at IS NULL')
30
35
  end
31
36
 
32
37
  # Same as active, but not to be overwritten. Active might become with disabled => false
33
38
  # or something like that. Without deleted should remain intact
34
39
  def without_deleted
35
- where{deleted_at.nil?}
40
+ where('deleted_at IS NULL')
36
41
  end
37
42
 
38
43
  # Include deleted items when performing queries
@@ -50,11 +55,13 @@ module DeleteSoftly
50
55
  # IHaveManyItems.first.items #=> SELECT "items".* FROM "items" WHERE ("items"."deleted_at" IS NULL) AND ("items".i_have_many_items_id = 1) ORDER BY "items"."content"
51
56
  # IHaveManyItems.first.items.with_deleted #=> SELECT "items".* FROM "items" WHERE ("items".i_have_many_items_id = 1) ORDER BY "items"."content"
52
57
  def with_deleted(&block)
53
- unscoped
58
+ unscoped(&block)
54
59
  end
55
-
60
+
56
61
  def deleted
57
- with_deleted.where{deleted_at != nil}
62
+ with_deleted do
63
+ where( "deleted_at NOT NULL" )
64
+ end
58
65
  end
59
66
 
60
67
  # Support for paper_trail if it is installed as well. Then you can use:
@@ -1,3 +1,3 @@
1
1
  module DeleteSoft
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -18,7 +18,6 @@ module DeleteSoftly
18
18
  end
19
19
 
20
20
  @destroyed = true
21
- freeze
22
21
  end
23
22
 
24
23
  # Revive a destroyed item. For a model like:
data/test/db.sqlite3 CHANGED
Binary file
@@ -17,10 +17,11 @@ class DeleteSoftlyTest < ActiveSupport::TestCase
17
17
  @post2_id = @post2.id
18
18
 
19
19
  end
20
+
20
21
  test "two records available" do
21
22
  assert_equal 2, Post.count
22
23
  end
23
-
24
+
24
25
  test "destroy count test" do
25
26
  @post1.destroy
26
27
  assert_equal 1, Post.count
@@ -47,10 +48,19 @@ class DeleteSoftlyTest < ActiveSupport::TestCase
47
48
  assert_equal [@post2], Post.without_deleted
48
49
  assert_equal [@post1, @post2], Post.at_time(t)
49
50
  end
50
-
51
+
51
52
  test "other default scopes" do
52
53
  assert_equal 2, Comment.count
53
54
  @comment2_1.destroy
54
55
  assert_equal 1, Comment.count
55
56
  end
57
+
58
+ test "revive" do
59
+ assert_equal 2, Post.without_deleted.count
60
+ @post1.destroy
61
+ assert_equal 1, Post.without_deleted.count
62
+ @post1.revive
63
+ assert_equal 2, Post.without_deleted.count
64
+ end
65
+
56
66
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delete_soft
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Orban Botond
@@ -21,22 +21,6 @@ dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 61
29
- segments:
30
- - 0
31
- - 9
32
- - 3
33
- version: 0.9.3
34
- type: :runtime
35
- name: squeel
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
24
  none: false
41
25
  requirements:
42
26
  - - ">="
@@ -49,10 +33,10 @@ dependencies:
49
33
  version: 1.3.4
50
34
  type: :development
51
35
  name: sqlite3
52
- version_requirements: *id002
36
+ version_requirements: *id001
53
37
  - !ruby/object:Gem::Dependency
54
38
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
56
40
  none: false
57
41
  requirements:
58
42
  - - ">="
@@ -65,10 +49,10 @@ dependencies:
65
49
  version: 3.1.0
66
50
  type: :development
67
51
  name: activerecord
68
- version_requirements: *id003
52
+ version_requirements: *id002
69
53
  - !ruby/object:Gem::Dependency
70
54
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
72
56
  none: false
73
57
  requirements:
74
58
  - - "="
@@ -81,7 +65,7 @@ dependencies:
81
65
  version: 0.9.2
82
66
  type: :development
83
67
  name: rake
84
- version_requirements: *id004
68
+ version_requirements: *id003
85
69
  description: A gem which adds soft delete functionality
86
70
  email:
87
71
  - orbanbotond@gmail.com