undestroyable 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.
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: