undestroyable 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +77 -12
  2. data/lib/undestroyable/version.rb +1 -1
  3. metadata +10 -21
data/README.md CHANGED
@@ -1,23 +1,88 @@
1
- # Strategies
1
+ # General [![Build Status](https://secure.travis-ci.org/kot-begemot/undestroyable.png?branch=master)](http://travis-ci.org/kot-begemot/undestroyable)
2
2
 
3
- * none
4
- Deletes record, as with usual destroy method.
5
- * column
6
- Updates deleted_at column of the record. This is default strategy,
7
- if undestroyable is activated for model.
8
- * table
9
- Move table into separate column
10
- * database
11
- Move table into separate database
3
+ An aim for this gem is to provide an agile and comfortable way for Ruby developers to get rid of unnecessary data within their project databases.
4
+ Weather I succeed with it or not is up to you. I will appreciate any advice or help.
5
+
6
+ # System Configuration
7
+
8
+ In order to setup system configuration add somewhere in project following code
9
+
10
+ require 'undestroyable'
11
+
12
+ Undestroyable.config.setup do
13
+ orm :active_record
14
+ end
15
+
16
+ After that you may activate undestroyable for specific model
17
+
18
+ class Country < ActiveRecord::Base
19
+ undestroyable
20
+ end
21
+
22
+ Default strategy is: :column. You may overwrite system strategy by providing a block to `undestroyable`
23
+
24
+ class Country < ActiveRecord::Base
25
+ undestroyable do
26
+ strategy :dump
27
+ end
28
+ end
29
+
30
+ That will save objects dump into 'dump' table.
31
+ There is also a possibility for setting default system starategy:
32
+
33
+ Undestroyable.config.setup do
34
+ orm :active_record
35
+ strategy :table
36
+ table_suffix :old
37
+ end
38
+
39
+ class Country < ActiveRecord::Base
40
+ undestroyable
41
+ end
42
+
43
+ That will move deleted record from 'countries' table into 'countries_deleted'. In case 'countries_deleted' contains 'deleted_at' filed it will be updated.
44
+ If, due to some reason, a different table name is required it can also be provided:
45
+
46
+ Undestroyable.config.setup do
47
+ orm :active_record
48
+ strategy :table
49
+ table_suffix :old
50
+ end
51
+
52
+ class Country < ActiveRecord::Base
53
+ undestroyable do
54
+ table_name :scrap
55
+ end
56
+ end
57
+
58
+ In that case, the record will be moved from 'countries' table into 'scrap_deleted'.
12
59
 
13
60
  # Options:
14
61
 
62
+ * orm (*ONLY FOR SYSTEM CONFIG*)
63
+ Specifies which orm is used by project
64
+ * strategy
65
+ Specifies which strategy should be used
15
66
  * table_name
16
67
  Same as model table.
17
68
  * table_suffix
18
69
  Default prefix is: deleted
19
70
  * full_table_name
20
71
  table_prefix + table_name + table_suffix.
72
+ * connection
73
+ Keeps connection information. _NB!_ Compulsary for :database startegy.
74
+
75
+ # Strategies
76
+
77
+ * none
78
+ Deletes record, as with usual destroy method.
79
+ * column
80
+ Updates deleted_at column of the record. This is default strategy,
81
+ if undestroyable is activated for model.
82
+ * table
83
+ Move record into separate table
84
+ * database
85
+ Move record into separate table in remote database
21
86
 
22
87
  # Simple usage example:
23
88
 
@@ -27,11 +92,11 @@
27
92
 
28
93
  # Complicated usage example:
29
94
 
30
- class ConceptCat < ActiveRecord::Base
95
+ class ConceptCat < Vehicle
31
96
  undstroyable do
32
97
  startegy :database
33
98
  connection { adapter: "sqlite3", dbfile: ":memory:"}
34
99
  table_name :scrap
35
100
  table_suffix :metalic
36
101
  end
37
- end
102
+ end
@@ -1,3 +1,3 @@
1
1
  module Undestroyable
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: undestroyable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-02 00:00:00.000000000Z
12
+ date: 2012-05-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &78020570 !ruby/object:Gem::Requirement
16
+ requirement: &80073320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *78020570
24
+ version_requirements: *80073320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
27
- requirement: &78020340 !ruby/object:Gem::Requirement
27
+ requirement: &80073080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *78020340
35
+ version_requirements: *80073080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &78020140 !ruby/object:Gem::Requirement
38
+ requirement: &80072870 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *78020140
46
+ version_requirements: *80072870
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: database_cleaner
49
- requirement: &78019870 !ruby/object:Gem::Requirement
49
+ requirement: &80072600 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,18 +54,7 @@ dependencies:
54
54
  version: 0.7.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *78019870
58
- - !ruby/object:Gem::Dependency
59
- name: ruby-debug19
60
- requirement: &78019660 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
66
- type: :development
67
- prerelease: false
68
- version_requirements: *78019660
57
+ version_requirements: *80072600
69
58
  description: An aim or this gem is to provide an agile and comfortable way for Ruby
70
59
  developers to get rid of unnecessary data within their project databases.
71
60
  email: