abbish_sequel_plugins 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ee09a952841117aad025b955e74db5ce3f0c407
4
- data.tar.gz: 8295bb4936daca837c4cafcb7d941b7999665176
3
+ metadata.gz: 580ac883ae97f021d83d52ead882bf56c87b5799
4
+ data.tar.gz: ae6beb3dd7bbbb7b195c003405f70bf240409ecb
5
5
  SHA512:
6
- metadata.gz: 037cadecd214d0a08126dafa9deb1dac237b219791763ba396d47577d16b6d4e3fd1c65b61dcb93a80432997a69f81119e619a1b91aa1939b806781f0dbb5fb3
7
- data.tar.gz: 968a490e455c62705595ebd370955fa0c5481184d7e1e4fe49fe3f137fb5065b2ccb856125d18ff9deb3dd367580936a3ccef79a21306bd51e0ce27d7f1103b5
6
+ metadata.gz: 468fba6946320e87f12a2cfe75ae2aefea9c71ea5fe1dc333b2819ae8dc3248a1ff29b0f57c0e5a160f35c3d1946378575585379f706a814fa9b3b62325c9a50
7
+ data.tar.gz: cbed3294755cefe5b584574d4778270a5f35b8cbb61a9a8fade5453b6ee48468cbe94ab48c2987dec72946df8e7f610b488c39554136eb9468bda20747e48e2e
@@ -1,4 +1,4 @@
1
- ### Release 0.0.5
1
+ ### Release 0.0.6
2
2
  1. Complete document
3
- 2. Add record feature column check for all plugins before using
4
- 3. Rename :column_xxx to :feature_column_xxx in plugin options
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
- Usage
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
- or use ```set_record_protected``` and ```save``` to set record being protected
42
+ use ```set_record_protected``` and ```save``` to set record being protected
46
43
  ```ruby
47
- model.set_record_protected
48
- model.save
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
  ======
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/model/super_record'
4
4
  module Abbish
5
5
  module Sequel
6
6
  module Plugins
7
- Version = '0.0.5'
7
+ Version = '0.0.6'
8
8
  end
9
9
  end
10
10
  end
@@ -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
@@ -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'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abbish_sequel_plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - abbish