module Card::Director::ClassMethods
Card::Director
class methods
Attributes
act[RW]
act_card[RW]
Public Instance Methods
act_director()
click to toggle source
# File lib/card/director/class_methods.rb, line 9 def act_director act_card&.director end
add(director)
click to toggle source
# File lib/card/director/class_methods.rb, line 75 def add director # Rails.logger.debug "added: #{director.card.name}".green directors[director.card] = director end
card(name)
click to toggle source
# File lib/card/director/class_methods.rb, line 69 def card name directors.values.find do |dir| dir.card.name == name end&.card end
card_changed(old_card)
click to toggle source
# File lib/card/director/class_methods.rb, line 80 def card_changed old_card return unless (director = @directors.delete old_card) add director end
clear()
click to toggle source
# File lib/card/director/class_methods.rb, line 31 def clear self.act_card = nil self.act = nil directors.each_pair do |card, _dir| card.expire card.director = nil card.clear_action_specific_attributes end expire @directors = nil end
deep_delete(director)
click to toggle source
# File lib/card/director/class_methods.rb, line 94 def deep_delete director director.subdirectors.each do |subdir| deep_delete subdir end delete director end
delete(director)
click to toggle source
# File lib/card/director/class_methods.rb, line 86 def delete director return unless @directors # normal delete was sometimes failing here (eg. when aborting in finalize stage) @directors.delete_if { |k, _v| k == director.card } director.delete end
directors()
click to toggle source
# File lib/card/director/class_methods.rb, line 13 def directors @directors ||= {} end
expire()
click to toggle source
# File lib/card/director/class_methods.rb, line 43 def expire expirees.each { |expiree| Card.expire expiree } @expirees = [] end
expirees()
click to toggle source
# File lib/card/director/class_methods.rb, line 48 def expirees @expirees ||= [] end
fetch(card, parent=nil)
click to toggle source
# File lib/card/director/class_methods.rb, line 52 def fetch card, parent=nil return directors[card] if directors[card] directors.each_key do |dir_card| return dir_card.director if dir_card.name == card.name && dir_card.director end add new_director(card, parent) end
include?(name)
click to toggle source
# File lib/card/director/class_methods.rb, line 61 def include? name directors.keys.any? { |card| card.key == name.to_name.key } end
include_id?(id)
click to toggle source
# File lib/card/director/class_methods.rb, line 65 def include_id? id directors.keys.any? { |card| card.id == id } end
need_act()
click to toggle source
# File lib/card/director/class_methods.rb, line 27 def need_act self.act ||= Card::Act.new ip_address: Env.ip end
run_act(card) { || ... }
click to toggle source
# File lib/card/director/class_methods.rb, line 17 def run_act card Lexicon.rescuing do self.act_card = card # add new_director(card) yield end ensure clear end
to_s()
click to toggle source
# File lib/card/director/class_methods.rb, line 101 def to_s act_director.to_s end
Private Instance Methods
delete_card(card)
click to toggle source
# File lib/card/director/class_methods.rb, line 119 def delete_card card card_key = @directors.keys.find { |key| key == card } @directors.delete card_key if card_key end
new_director(card, parent)
click to toggle source
# File lib/card/director/class_methods.rb, line 107 def new_director card, parent if !parent && act_card && act_card != card && running_act? act_card.director.subdirectors.add card else Director.new card, parent end end
running_act?()
click to toggle source
# File lib/card/director/class_methods.rb, line 115 def running_act? act_director&.running? end