Class: Foobara::Callback::Registry::MultipleAction

Inherits:
Base
  • Object
show all
Defined in:
foobara-0.0.110/projects/callback/src/registry/multiple_action.rb

Direct Known Subclasses

ChainedMultipleAction

Defined Under Namespace

Classes: InvalidAction

Instance Attribute Summary collapse

Attributes inherited from Base

#allowed_types

Instance Method Summary collapse

Methods inherited from Base

#has_after_callbacks?, #has_around_callbacks?, #has_before_callbacks?, #has_callbacks?, #has_error_callbacks?, #register_callback

Constructor Details

#initialize(*possible_actions) ⇒ MultipleAction

Returns a new instance of MultipleAction.



11
12
13
14
15
16
17
18
19
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 11

def initialize(*possible_actions)
  super()

  self.callback_sets = {}

  possible_actions = normalize_actions(possible_actions, false)

  self.possible_actions = possible_actions.map(&:to_s).sort.map(&:to_sym)
end

Instance Attribute Details

#callback_setsObject

Returns the value of attribute callback_sets.



7
8
9
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 7

def callback_sets
  @callback_sets
end

#possible_actionsObject

Returns the value of attribute possible_actions.



7
8
9
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 7

def possible_actions
  @possible_actions
end

Instance Method Details

#after(*actions) ⇒ Object



29
30
31
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 29

def after(*actions, &)
  super(*normalize_actions(actions), &)
end

#around(*actions) ⇒ Object



33
34
35
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 33

def around(*actions, &)
  super(*normalize_actions(actions), &)
end

#before(*actions) ⇒ Object



25
26
27
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 25

def before(*actions, &)
  super(*normalize_actions(actions), &)
end

#error(*actions) ⇒ Object



37
38
39
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 37

def error(*actions, &)
  super(*normalize_actions(actions), &)
end

#runner(*actions) ⇒ Object



21
22
23
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 21

def runner(*actions)
  super(*normalize_actions(actions))
end

#specific_callback_set_for(*actions) ⇒ Object



41
42
43
44
45
46
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 41

def specific_callback_set_for(*actions)
  action = normalize_action(actions)

  validate_action!(action)
  callback_sets[action] ||= Callback::Set.new
end

#unioned_callback_set_for(*actions) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'foobara-0.0.110/projects/callback/src/registry/multiple_action.rb', line 48

def unioned_callback_set_for(*actions)
  action = normalize_action(actions)

  if action.nil?
    callback_sets.values.reduce(:|) || Callback::Set.new
  else
    specific_callback_set_for(nil) | specific_callback_set_for(action)
  end
end