abbish_sequel_plugins 0.0.5 → 0.0.6
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -3
- data/README.md +7 -8
- data/lib/abbish_sequel_plugins.rb +1 -1
- data/lib/model/super_record.rb +6 -0
- data/lib/model/super_record/protection.rb +2 -0
- data/lib/model/super_record/timestamp.rb +3 -0
- data/lib/model/super_record/version.rb +3 -0
- data/spec/record_version_spec.rb +5 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 580ac883ae97f021d83d52ead882bf56c87b5799
|
4
|
+
data.tar.gz: ae6beb3dd7bbbb7b195c003405f70bf240409ecb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 468fba6946320e87f12a2cfe75ae2aefea9c71ea5fe1dc333b2819ae8dc3248a1ff29b0f57c0e5a160f35c3d1946378575585379f706a814fa9b3b62325c9a50
|
7
|
+
data.tar.gz: cbed3294755cefe5b584574d4778270a5f35b8cbb61a9a8fade5453b6ee48468cbe94ab48c2987dec72946df8e7f610b488c39554136eb9468bda20747e48e2e
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
### Release 0.0.
|
1
|
+
### Release 0.0.6
|
2
2
|
1. Complete document
|
3
|
-
2. Add
|
4
|
-
3. Rename :column_xxx to :feature_column_xxx in
|
3
|
+
2. Add feature column check for all plugins before using
|
4
|
+
3. Rename :column_xxx to :feature_column_xxx in options
|
data/README.md
CHANGED
@@ -34,21 +34,20 @@ Default options
|
|
34
34
|
:raise_protected_message => 'Cannot destroy protected record'
|
35
35
|
}
|
36
36
|
```
|
37
|
-
|
37
|
+
use ```set_record_protected!``` to set record being protected
|
38
38
|
```ruby
|
39
39
|
model = Model.create(:table_field => 'test')
|
40
|
-
```
|
41
|
-
use ```set_record_protected!``` to set record being protected
|
42
|
-
```ruby
|
43
40
|
model.set_record_protected!
|
44
41
|
```
|
45
|
-
|
42
|
+
use ```set_record_protected``` and ```save``` to set record being protected
|
46
43
|
```ruby
|
47
|
-
|
48
|
-
|
44
|
+
model2 = Model.create(:table_field => 'test2')
|
45
|
+
model2.set_record_protected
|
46
|
+
model2.save
|
49
47
|
```
|
48
|
+
destroy protected record will raise a ProtectedError
|
49
|
+
use ```delete``` will skip record protection feature and record will be deleted
|
50
50
|
```ruby
|
51
|
-
# Destroy a protected record will raise a ProtectedError
|
52
51
|
model.destroy
|
53
52
|
```
|
54
53
|
======
|
data/lib/model/super_record.rb
CHANGED
@@ -7,6 +7,12 @@ module Abbish
|
|
7
7
|
module Plugins
|
8
8
|
module Model
|
9
9
|
module SuperRecord
|
10
|
+
FeatureColumnError = Class.new(::StandardError)
|
11
|
+
def check_feature_column(model, column)
|
12
|
+
raise FeatureColumnError, "Feature column #{column} cannot be found" if !model.columns.include? column
|
13
|
+
end
|
14
|
+
|
15
|
+
module_function :check_feature_column
|
10
16
|
end
|
11
17
|
end
|
12
18
|
end
|
@@ -12,6 +12,8 @@ module Abbish
|
|
12
12
|
:raise_protected_message => 'Cannot destroy protected record',
|
13
13
|
}.merge(options)
|
14
14
|
|
15
|
+
Abbish::Sequel::Plugins::Model::SuperRecord.check_feature_column model, options[:feature_column_protected]
|
16
|
+
|
15
17
|
model.instance_eval do
|
16
18
|
self.record_protection_options = options
|
17
19
|
end
|
@@ -11,6 +11,9 @@ module Abbish
|
|
11
11
|
:feature_column_updated_time => :record_updated_time,
|
12
12
|
}.merge(options)
|
13
13
|
|
14
|
+
Abbish::Sequel::Plugins::Model::SuperRecord.check_feature_column model, options[:feature_column_created_time]
|
15
|
+
Abbish::Sequel::Plugins::Model::SuperRecord.check_feature_column model, options[:feature_column_updated_time]
|
16
|
+
|
14
17
|
model.instance_eval do
|
15
18
|
self.record_timestamp_options = options
|
16
19
|
end
|
@@ -10,6 +10,8 @@ module Abbish
|
|
10
10
|
:feature_column_version => :record_version,
|
11
11
|
}.merge(options)
|
12
12
|
|
13
|
+
Abbish::Sequel::Plugins::Model::SuperRecord.check_feature_column model, options[:feature_column_version]
|
14
|
+
|
13
15
|
model.instance_eval do
|
14
16
|
self.record_version_options = options
|
15
17
|
end
|
@@ -28,6 +30,7 @@ module Abbish
|
|
28
30
|
module InstanceMethods
|
29
31
|
|
30
32
|
def before_create
|
33
|
+
|
31
34
|
send("#{self.class.record_version_options[:feature_column_version]}=", _get_version) if self.class.record_version_options[:enabled]
|
32
35
|
super
|
33
36
|
end
|
data/spec/record_version_spec.rb
CHANGED
@@ -12,6 +12,11 @@ describe 'RecordVersionSpec' do
|
|
12
12
|
@model.record_version.size.must_equal 32
|
13
13
|
end
|
14
14
|
|
15
|
+
it 'should has md5 format version in record_version when record created' do
|
16
|
+
@model.record_version.wont_be_nil
|
17
|
+
@model.record_version.size.must_equal 32
|
18
|
+
end
|
19
|
+
|
15
20
|
it 'should has md5 format version in record_version when record created' do
|
16
21
|
new_model = Model[@model.id]
|
17
22
|
new_model.table_field = 'updated'
|