Class: Valise::Strategies::Set
- Inherits:
-
Object
- Object
- Valise::Strategies::Set
- Defined in:
- lib/valise/strategies/set.rb
Direct Known Subclasses
Class Method Summary collapse
- .[](index) ⇒ Object
- .check!(type) ⇒ Object
- .classes ⇒ Object
- .default ⇒ Object
- .instance(type, options = nil) ⇒ Object
- .instances ⇒ Object
- .register(index) ⇒ Object
- .root_class(&block) ⇒ Object
- .set_default(klass) ⇒ Object
Class Method Details
.[](index) ⇒ Object
25 26 27 |
# File 'lib/valise/strategies/set.rb', line 25 def [](index) classes[index] end |
.check!(type) ⇒ Object
41 42 43 44 45 |
# File 'lib/valise/strategies/set.rb', line 41 def check!(type) classes.fetch(type) rescue KeyError raise Errors::UnregisteredStrategy.new(self.name, type) end |
.classes ⇒ Object
17 18 19 |
# File 'lib/valise/strategies/set.rb', line 17 def classes root_class{@classes ||= {}} end |
.default ⇒ Object
37 38 39 |
# File 'lib/valise/strategies/set.rb', line 37 def default set_default(self) end |
.instance(type, options = nil) ⇒ Object
47 48 49 |
# File 'lib/valise/strategies/set.rb', line 47 def instance(type, = nil) instances[[type, ]] ||= classes[type].new() end |
.instances ⇒ Object
21 22 23 |
# File 'lib/valise/strategies/set.rb', line 21 def instances root_class{@instances ||= {}} end |
.register(index) ⇒ Object
29 30 31 |
# File 'lib/valise/strategies/set.rb', line 29 def register(index) classes[index] = self end |
.root_class(&block) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/valise/strategies/set.rb', line 7 def root_class(&block) if superclass == Valise::Strategies::Set instance_eval(&block) elsif self == Valise::Strategies::Set raise "Complete class hierarchy fail" else superclass.root_class(&block) end end |
.set_default(klass) ⇒ Object
33 34 35 |
# File 'lib/valise/strategies/set.rb', line 33 def set_default(klass) classes.default = klass end |