Module: ActiveCrew::Lockable

Included in:
Base
Defined in:
lib/active_crew/concerns/lockable.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



3
4
5
# File 'lib/active_crew/concerns/lockable.rb', line 3

def execute
  super unless locked?
end

#lock(model) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/active_crew/concerns/lockable.rb', line 17

def lock(model)
  return unless model

  locker_was = context[:locker]
  context[:locker] = serialize_locker model

  yield

  context[:locker] = locker_was
end

#locked?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# File 'lib/active_crew/concerns/lockable.rb', line 7

def locked?
  options = context.delete :locker
  return false if options.blank?

  model = deserialize_locker options
  return true if model.blank?

  model.locker != options[:value]
end