Module: Card::Director::ActDirection
- Included in:
- Card::Director
- Defined in:
- lib/card/director/act_direction.rb
Instance Attribute Summary collapse
-
#act ⇒ Object
Returns the value of attribute act.
-
#act_card ⇒ Object
Returns the value of attribute act_card.
Instance Method Summary collapse
- #act_director ⇒ Object
- #add(director) ⇒ Object
- #card(name) ⇒ Object
- #card_changed(old_card) ⇒ Object
- #clear ⇒ Object
- #deep_delete(director) ⇒ Object
- #delete(director) ⇒ Object
- #directors ⇒ Object
- #expire ⇒ Object
- #expirees ⇒ Object
- #fetch(card, parent = nil) ⇒ Object
- #include?(name) ⇒ Boolean
- #include_id?(id) ⇒ Boolean
- #need_act ⇒ Object
- #new_director(card, parent) ⇒ Object
- #run_act(card) ⇒ Object
- #running_act? ⇒ Boolean
- #to_s ⇒ Object
Instance Attribute Details
#act ⇒ Object
Returns the value of attribute act.
4 5 6 |
# File 'lib/card/director/act_direction.rb', line 4 def act @act end |
#act_card ⇒ Object
Returns the value of attribute act_card.
4 5 6 |
# File 'lib/card/director/act_direction.rb', line 4 def act_card @act_card end |
Instance Method Details
#act_director ⇒ Object
6 7 8 9 10 |
# File 'lib/card/director/act_direction.rb', line 6 def act_director return unless act_card act_card.director end |
#add(director) ⇒ Object
83 84 85 86 |
# File 'lib/card/director/act_direction.rb', line 83 def add director # Rails.logger.debug "added: #{director.card.name}".green directors[director.card] = director end |
#card(name) ⇒ Object
77 78 79 80 81 |
# File 'lib/card/director/act_direction.rb', line 77 def card name directors.values.find do |dir| dir.card.name == name end&.card end |
#card_changed(old_card) ⇒ Object
88 89 90 91 92 |
# File 'lib/card/director/act_direction.rb', line 88 def card_changed old_card return unless (director = @directors.delete old_card) add director end |
#clear ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/card/director/act_direction.rb', line 30 def clear self.act_card = nil self.act = nil directors.each_pair do |card, _dir| card.expire card.director = nil card.action = nil card.clear_action_specific_attributes end expire @directors = nil end |
#deep_delete(director) ⇒ Object
101 102 103 104 105 106 |
# File 'lib/card/director/act_direction.rb', line 101 def deep_delete director director.subdirectors.each do |subdir| deep_delete subdir end delete director end |
#delete(director) ⇒ Object
94 95 96 97 98 99 |
# File 'lib/card/director/act_direction.rb', line 94 def delete director return unless @directors @directors.delete director.card director.delete end |
#directors ⇒ Object
12 13 14 |
# File 'lib/card/director/act_direction.rb', line 12 def directors @directors ||= {} end |
#expire ⇒ Object
43 44 45 46 |
# File 'lib/card/director/act_direction.rb', line 43 def expire expirees.each { |expiree| Card.expire expiree } @expirees = [] end |
#expirees ⇒ Object
48 49 50 |
# File 'lib/card/director/act_direction.rb', line 48 def expirees @expirees ||= [] end |
#fetch(card, parent = nil) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/card/director/act_direction.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) ⇒ Boolean
61 62 63 |
# File 'lib/card/director/act_direction.rb', line 61 def include? name directors.keys.any? { |card| card.key == name.to_name.key } end |
#include_id?(id) ⇒ Boolean
65 66 67 |
# File 'lib/card/director/act_direction.rb', line 65 def include_id? id directors.keys.any? { |card| card.id == id } end |
#need_act ⇒ Object
26 27 28 |
# File 'lib/card/director/act_direction.rb', line 26 def need_act self.act ||= Card::Act.create ip_address: Env.ip end |
#new_director(card, parent) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/card/director/act_direction.rb', line 69 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 |
#run_act(card) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/card/director/act_direction.rb', line 16 def run_act card Lexicon.rescuing do self.act_card = card # add new_director(card) yield end ensure clear end |
#running_act? ⇒ Boolean
108 109 110 |
# File 'lib/card/director/act_direction.rb', line 108 def running_act? act_director&.running? end |
#to_s ⇒ Object
112 113 114 |
# File 'lib/card/director/act_direction.rb', line 112 def to_s act_director.to_s end |