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 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