Module: Padlock
- Defined in:
- lib/padlock.rb,
lib/padlock/user.rb,
lib/padlock/version.rb,
lib/padlock/instance.rb,
lib/padlock/lockable.rb,
lib/generators/padlock_generator.rb,
lib/padlock/integrations/active_record.rb
Defined Under Namespace
Modules: ActiveRecord, Generators, Lockable, User
Classes: Instance
Constant Summary
collapse
- VERSION =
"0.1.3"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/padlock.rb', line 6
def config
@config ||= OpenStruct.new(
table_name: "padlocks",
user_foreign_key: "user_id",
user_class_name: "User",
timeout: 1.day
)
end
|
.lock(user, *objects) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/padlock.rb', line 15
def lock(user, *objects)
objects.each do |object|
unlock!(object)
user.padlocks.create(lockable: object)
object.reload
end
end
|
.locked?(object) ⇒ Boolean
23
24
25
|
# File 'lib/padlock.rb', line 23
def locked? object
object.locked?
end
|
.touch(*objects) ⇒ Object
39
40
41
42
43
|
# File 'lib/padlock.rb', line 39
def touch *objects
objects.select(&:locked?).each do |object|
object.update_attribute(:updated_at, Time.zone.now)
end
end
|
.unlock!(*objects) ⇒ Object
27
28
29
|
# File 'lib/padlock.rb', line 27
def unlock! *objects
objects.each(&:unlock!)
end
|
.unlock_stale ⇒ Object
35
36
37
|
# File 'lib/padlock.rb', line 35
def unlock_stale
stale_locks.destroy_all
end
|
.unlocked?(object) ⇒ Boolean
31
32
33
|
# File 'lib/padlock.rb', line 31
def unlocked? object
object.unlocked?
end
|