Module: Aquarium::Aspects::Advice

Included in:
Aspect
Defined in:
lib/aquarium/aspects/advice.rb

Constant Summary collapse

UNKNOWN_ADVICE_KIND =
"unknown"
KINDS_IN_PRIORITY_ORDER =
[:around, :before, :after, :after_returning, :after_raising]

Class Method Summary collapse

Class Method Details

.compare_advice_kinds(kind1, kind2) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/aquarium/aspects/advice.rb', line 27

def self.compare_advice_kinds kind1, kind2
  if kind1.nil?
    return kind2.nil? ? 0 : -1
  end
  return 1 if kind2.nil?
  if kind1.eql?(UNKNOWN_ADVICE_KIND)
    return kind2.eql?(UNKNOWN_ADVICE_KIND) ? 0 : -1
  else
    return kind2.eql?(UNKNOWN_ADVICE_KIND) ? 1 : KINDS_IN_PRIORITY_ORDER.index(kind1) <=> KINDS_IN_PRIORITY_ORDER.index(kind2)
  end
end

.debug_backtracesObject



16
# File 'lib/aquarium/aspects/advice.rb', line 16

def self.debug_backtraces; @DEBUG_BACKTRACES; end

.debug_backtraces=(val) ⇒ Object



17
# File 'lib/aquarium/aspects/advice.rb', line 17

def self.debug_backtraces=( val ); @DEBUG_BACKTRACES = val; end

.kindsObject



19
# File 'lib/aquarium/aspects/advice.rb', line 19

def self.kinds; KINDS_IN_PRIORITY_ORDER; end

.sort_by_priority_order(advice_kinds) ⇒ Object



21
22
23
24
25
# File 'lib/aquarium/aspects/advice.rb', line 21

def self.sort_by_priority_order advice_kinds
  advice_kinds.sort do |x,y| 
    KINDS_IN_PRIORITY_ORDER.index(x.to_sym) <=> KINDS_IN_PRIORITY_ORDER.index(y.to_sym)
  end.map {|x| x.to_sym}
end