acts_as_lockable 0.2.1 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/acts_as_lockable.rb +3 -3
- data/lib/acts_as_lockable/lockable.rb +21 -0
- data/lib/acts_as_lockable/locker.rb +2 -17
- data/lib/acts_as_lockable/version.rb +1 -1
- data/lib/generators/acts_as_lockable/migration/templates/active_record/migration.rb +2 -2
- metadata +3 -3
- data/lib/acts_as_lockable/lock.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35f47df66132b6b7d6dc165a9251c53f6f8c32dd
|
4
|
+
data.tar.gz: f27f49e9f25301be423e085553b3354142c30645
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f41f82194011e66535f40edaaa024e3661c96a15f20138541109c2409fdcbbcc8a950696bd454538539de04320adf2ac6900f0a82eff4d4f12232d7cc2d055
|
7
|
+
data.tar.gz: 70edf41e073598d8b7c92b2ad90b6311d4e348bd44e99a0409606bf5fddc939e5e7981bcf142b8d712dd9c1f92cb406fc062ecb7510b368369f5a02556304e8b
|
data/lib/acts_as_lockable.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require "acts_as_lockable/version"
|
2
|
-
require "acts_as_lockable/lock"
|
3
2
|
require "acts_as_lockable/locker"
|
3
|
+
require "acts_as_lockable/lockable"
|
4
4
|
|
5
5
|
class ActiveRecord::Base
|
6
6
|
def self.acts_as_lockable(options={})
|
7
7
|
|
8
|
-
|
8
|
+
has_one :locker, as: :locked
|
9
9
|
before_validation :check_locked
|
10
10
|
|
11
|
-
include ActsAsLockable::
|
11
|
+
include ActsAsLockable::Lockable
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module ActsAsLockable
|
2
|
+
module Lockable
|
3
|
+
def is_locked?
|
4
|
+
!self.locker.nil?
|
5
|
+
end
|
6
|
+
|
7
|
+
def lock
|
8
|
+
self.create_locker(locked_type: self.model_name.name) if self.locker.nil?
|
9
|
+
return true
|
10
|
+
end
|
11
|
+
|
12
|
+
def unlock
|
13
|
+
self.locker.destroy
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def check_locked
|
18
|
+
return false if self.is_locked?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,20 +1,5 @@
|
|
1
|
-
|
2
|
-
module Locker
|
3
|
-
def is_locked?
|
4
|
-
self.locks.size > 0
|
5
|
-
end
|
1
|
+
class Locker < ActiveRecord::Base
|
6
2
|
|
7
|
-
|
8
|
-
self.locks.create
|
9
|
-
end
|
3
|
+
belongs_to :locked, polymorphic: true
|
10
4
|
|
11
|
-
def unlock
|
12
|
-
self.locks.clear
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
def check_locked
|
17
|
-
return false if self.is_locked?
|
18
|
-
end
|
19
|
-
end
|
20
5
|
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.2.
|
4
|
+
version: 0.2.5
|
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-
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -99,7 +99,7 @@ files:
|
|
99
99
|
- bin/console
|
100
100
|
- bin/setup
|
101
101
|
- lib/acts_as_lockable.rb
|
102
|
-
- lib/acts_as_lockable/
|
102
|
+
- lib/acts_as_lockable/lockable.rb
|
103
103
|
- lib/acts_as_lockable/locker.rb
|
104
104
|
- lib/acts_as_lockable/version.rb
|
105
105
|
- lib/generators/acts_as_lockable/migration/migration_generator.rb
|