acts_as_lockable 0.1.0 → 0.2.0

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: 03b827229d3605b3bdc0d54acfc20680d5b89a67
4
- data.tar.gz: 6963b09ff3610e3fd89dd7c135bf2ad29ac809f9
3
+ metadata.gz: 7a17326305d42a095c6b0107527ff232957f4996
4
+ data.tar.gz: 5f259a7639d89ad068b9e2894a8c921817a9783e
5
5
  SHA512:
6
- metadata.gz: 858bbdc8e45a8f86242074452d21866b1f967a3e3021128073f9536ddf29a6329e7f4fb6ea3d76075c5c1f29b0e1436e800839f77f5b8c4fbacc21f5856c0345
7
- data.tar.gz: 99222e712860df999fc217a77774895f5ebf4b186c75244edaea0021c4e8889b4c410ded802859bac2c2c0b22f7af587a0443fd3b1851270f031002e5b85d9c7
6
+ metadata.gz: 440c3e9c205b3196545f76f085b2baa4e3d986e0fe358f662a9879ea7ff5070f13ff25f62a1f68d2f23df616f898d09b9a49d8daaa0e5c233a03d8fb50c4fa8b
7
+ data.tar.gz: fe337f453ab40967b3306e52f16e723cc8ceb62452de396868327831c93931fc221e12cb69c944ae688f8b39a67d909e11a9b0c589a8886b455c2e907abe8a84
@@ -1,9 +1,13 @@
1
1
  require "acts_as_lockable/version"
2
+ require "acts_as_lockable/lock"
2
3
  require "acts_as_lockable/locker"
3
4
 
4
5
  class ActiveRecord::Base
5
6
  def self.acts_as_lockable(options={})
7
+
8
+ has_many :locks, as: :locked
9
+ before_validation :check_locked
10
+
6
11
  include ActsAsLockable::Locker
7
- before_validation :check_locked, unless: :is_locked?
8
12
  end
9
13
  end
@@ -0,0 +1,5 @@
1
+ class Lock < ActiveRecord::Base
2
+
3
+ belongs_to :locked, polymorphic: true
4
+
5
+ end
@@ -1,24 +1,20 @@
1
1
  module ActsAsLockable
2
2
  module Locker
3
3
  def is_locked?
4
- if self.is_locked.nil? || self.is_locked == false
5
- return false
6
- else
7
- return true
8
- end
4
+ self.locks.size > 0
9
5
  end
10
6
 
11
7
  def lock
12
- self.update_column(:is_locked, true)
8
+ self.locks.create
13
9
  end
14
10
 
15
11
  def unlock
16
- self.update_column(:is_locked, false)
12
+ self.locks.clear
17
13
  end
18
14
 
19
15
  private
20
16
  def check_locked
21
- raise false if self.is_locked?
17
+ return false if self.is_locked?
22
18
  end
23
19
  end
24
20
  end
@@ -1,3 +1,3 @@
1
1
  module ActsAsLockable
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_lockable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GIZIPP
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-07 00:00:00.000000000 Z
11
+ date: 2015-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -99,6 +99,7 @@ files:
99
99
  - bin/console
100
100
  - bin/setup
101
101
  - lib/acts_as_lockable.rb
102
+ - lib/acts_as_lockable/lock.rb
102
103
  - lib/acts_as_lockable/locker.rb
103
104
  - lib/acts_as_lockable/version.rb
104
105
  homepage: https://github.com/gizipp/acts_as_lockable