Cthulhu 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Cthulhu.gemspec +5 -5
- data/README.md +9 -5
- data/lib/{cthulhu.rb → Cthulhu.rb} +0 -0
- data/lib/cthulhu/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad4ee3f934818f5b5f53595ad13043f026e8f6b8
|
4
|
+
data.tar.gz: e18578a7faf11e2ae1ad48ce0271f79bae6f4638
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4f4dad17d864a8730a184951d7987d749799bbcc1bdf06bb070b27d533ac64fb99fa3a35b3762035d1c51ca5ed7b5fb7f9fadf821ac720105b365d77ed45314
|
7
|
+
data.tar.gz: ab948e9b897926df54f611fbce2940b2aa4b9a8f9aa639a097e4ef3ce8ef37dcb95bf9605dcfa6d8af1cb00d13f4a8f130a71369331de55006eed85ce584eee9
|
data/Cthulhu.gemspec
CHANGED
@@ -22,11 +22,11 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.11"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
spec.add_development_dependency "minitest", "~> 5.0"
|
25
|
-
spec.add_development_dependency "pg", '~> 0'
|
26
|
-
spec.add_development_dependency "schema_dev", '~>
|
27
|
-
spec.add_development_dependency "pry", '~> 0'
|
28
|
-
spec.add_development_dependency "factory_girl", '~>
|
29
|
-
spec.add_development_dependency "database_cleaner", '~>
|
25
|
+
spec.add_development_dependency "pg", '~> 0.18'
|
26
|
+
spec.add_development_dependency "schema_dev", '~> 3.7'
|
27
|
+
spec.add_development_dependency "pry", '~> 0.10'
|
28
|
+
spec.add_development_dependency "factory_girl", '~> 4.7'
|
29
|
+
spec.add_development_dependency "database_cleaner", '~> 1.5'
|
30
30
|
|
31
31
|
spec.add_dependency "activerecord", "~> 4.2"
|
32
32
|
end
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
[![Build Status](https://travis-ci.org/bookingexperts/cthulhu.svg?branch=master)](https://travis-ci.org/bookingexperts/cthulhu)
|
2
|
+
|
1
3
|
# Cthulhu
|
2
4
|
|
3
|
-
![Cthulhu, the destroyer of
|
5
|
+
![Cthulhu, the destroyer of worlds](Cthulhu.jpg?raw=true "Cthulhu")
|
4
6
|
|
5
7
|
By using this gem, you will be able to destroy objects and all of their associated children without fetching them from database or using cascade.
|
6
8
|
|
@@ -9,9 +11,11 @@ This is useful for big applications that:
|
|
9
11
|
* have foreign keys but you do not want to setup cascades to protect users from removing stuff that they do not mean.
|
10
12
|
* Database is too big and you do not want to use ActiveRecord's `dependant: :destroy` for performance reasons.
|
11
13
|
|
12
|
-
So as foreign keys are setup, you can not accidentally destroy a record
|
14
|
+
So as foreign keys are setup, you can not accidentally destroy a record:
|
13
15
|
|
14
16
|
```ruby
|
17
|
+
# will raise ActiveRecord::InvalidForeignKey if other tables are referencing to
|
18
|
+
# this row.
|
15
19
|
User.destroy 1
|
16
20
|
```
|
17
21
|
|
@@ -23,7 +27,7 @@ Cthulhu.destroy! User.find(1)
|
|
23
27
|
|
24
28
|
## Transaction
|
25
29
|
|
26
|
-
Keep in mind that Cthulhu is destroyer, therefore, it is not wrapped in any transaction. To be safe, you need to call it within a transaction like
|
30
|
+
Keep in mind that Cthulhu is a destroyer, therefore, it is not wrapped in any transaction. To be safe, you need to call it within a transaction like this:
|
27
31
|
|
28
32
|
```ruby
|
29
33
|
user = User.find 1
|
@@ -67,7 +71,7 @@ posts | \
|
|
67
71
|
images
|
68
72
|
|
69
73
|
```
|
70
|
-
(see test/models.rb)
|
74
|
+
(see [test/models.rb](test/models.rb))
|
71
75
|
|
72
76
|
You can expect the following queries to be executed if you do `Cthulhu.destroy! User.find(5)`
|
73
77
|
|
@@ -137,7 +141,7 @@ DELETE FROM "users"
|
|
137
141
|
WHERE "users"."id" = 5;
|
138
142
|
```
|
139
143
|
|
140
|
-
In above scenario, it is
|
144
|
+
In above scenario, it is possible to nullify the comments and images of user instead of removing them completely without changing anything in actual association:
|
141
145
|
|
142
146
|
```ruby
|
143
147
|
Cthulhu.destroy! User.find(5),
|
File without changes
|
data/lib/cthulhu/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Cthulhu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- |
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-06-
|
12
|
+
date: 2016-06-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -59,70 +59,70 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
62
|
+
version: '0.18'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
69
|
+
version: '0.18'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: schema_dev
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '3.7'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '3.7'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: pry
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
90
|
+
version: '0.10'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
97
|
+
version: '0.10'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: factory_girl
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
104
|
+
version: '4.7'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '4.7'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: database_cleaner
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: '
|
118
|
+
version: '1.5'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
125
|
+
version: '1.5'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: activerecord
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,7 +153,7 @@ files:
|
|
153
153
|
- LICENSE.txt
|
154
154
|
- README.md
|
155
155
|
- Rakefile
|
156
|
-
- lib/
|
156
|
+
- lib/Cthulhu.rb
|
157
157
|
- lib/cthulhu/destroyer.rb
|
158
158
|
- lib/cthulhu/scopper.rb
|
159
159
|
- lib/cthulhu/uncrawlable_hierarchy.rb
|