Module: Polist::Builder::ClassMethods
- Defined in:
- lib/polist/builder.rb
Instance Method Summary collapse
- #build(*args, **kwargs) ⇒ Object
-
#build_klass(*args, **kwargs) ⇒ Object
Recursively runs class builders on class until no builders on that class found or some builder returns the class itself.
- #builders ⇒ Object
- #builds(proc = nil, &block) ⇒ Object
Instance Method Details
#build(*args, **kwargs) ⇒ Object
35 36 37 |
# File 'lib/polist/builder.rb', line 35 def build(*args, **kwargs) build_klass(*args, **kwargs).new(*args, **kwargs) end |
#build_klass(*args, **kwargs) ⇒ Object
Recursively runs class builders on class until no builders on that class found or some builder returns the class itself
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/polist/builder.rb', line 41 def build_klass(*args, **kwargs) klass = self loop do new_klass = klass.builders.call(klass, *args, **kwargs) break if new_klass == klass klass = new_klass end klass end |
#builders ⇒ Object
27 28 29 |
# File 'lib/polist/builder.rb', line 27 def builders @builders ||= Builders.new end |
#builds(proc = nil, &block) ⇒ Object
31 32 33 |
# File 'lib/polist/builder.rb', line 31 def builds(proc = nil, &block) builders << (proc || block) end |