Module: Charyf::Strategy::ClassMethods

Defined in:
lib/charyf/utils/strategy.rb

Instance Method Summary collapse

Instance Method Details

#_aliasesObject



26
27
28
# File 'lib/charyf/utils/strategy.rb', line 26

def _aliases
  @_aliases ||= Hash.new
end

#_subclassesObject



22
23
24
# File 'lib/charyf/utils/strategy.rb', line 22

def _subclasses
  @_subclasses ||= []
end

#baseObject



38
39
40
# File 'lib/charyf/utils/strategy.rb', line 38

def base
  raise Charyf::Utils::NotImplemented.new("No base class found for #{self}")
end

#inherited(subclass) ⇒ Object



9
10
11
# File 'lib/charyf/utils/strategy.rb', line 9

def inherited(subclass)
  base._subclasses << subclass
end

#knownObject



30
31
32
# File 'lib/charyf/utils/strategy.rb', line 30

def known
  base._subclasses
end

#listObject



34
35
36
# File 'lib/charyf/utils/strategy.rb', line 34

def list
  base._aliases
end

#strategy_name(name = nil) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/charyf/utils/strategy.rb', line 13

def strategy_name(name = nil)
  if name
    @_strategy_name = name
    base._aliases[name] = self
  end

  @_strategy_name
end