Module: Card::Set::Abstract::Lock

Extended by:
Card::Set
Defined in:
platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb

Overview

Set: Abstract (Lock)

Constant Summary

Constants included from Helpers

Helpers::SET_PATTERN_TEST_REGEXP

Constants included from Event::Api

Event::Api::OPTIONS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Card::Set

reset

Methods included from I18nScope

#mod_name, #scope

Methods included from Registrar

#extended, #finalize_load, #process_base_modules, #register_set

Methods included from Helpers

#format_module, #format_modules, #method_missing, #modules, #pattern_code, #respond_to_missing?, #set_name_parts, #shortname, #underscored_name

Methods included from Card::Set::AdvancedApi

#assign_type, #attachment, #define_set_from_error, #ensure_set, #setting_opts, #stage_method

Methods included from Format

#before, #format, layout_method_name, #view, view_method_name, view_setting_method_name, wrapper_method_name

Methods included from Inheritance

#include_set, #include_set_formats

Methods included from Trait

#card_accessor, #card_reader, #card_writer, #require_field

Methods included from Event::Api

#event

Class Method Details

.source_locationObject



7
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 7

def self.source_location; "/Users/ethan/dev/decko/gem/mod/content/set/abstract/lock.rb"; end

Instance Method Details

#lockObject



8
9
10
11
12
13
14
15
16
17
18
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 8

def lock
  was_already_locked = locked?
  return if was_already_locked

  Card::Auth.as_bot do
    lock!
    yield
  end
ensure
  unlock! unless was_already_locked
end

#lock!Object



28
29
30
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 28

def lock!
  Card.cache.write lock_cache_key, true
end

#lock_cache_keyObject



20
21
22
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 20

def lock_cache_key
  "UPDATE-LOCK:#{key}"
end

#locked?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 24

def locked?
  Card.cache.read lock_cache_key
end

#unlock!Object



32
33
34
# File 'platypus/tmp/set/gem-defaults/mod003-content/abstract/lock.rb', line 32

def unlock!
  Card.cache.write lock_cache_key, false
end