Module: Tight::Engine::Defer
- Defined in:
- lib/tight-engine/defer.rb
Instance Method Summary collapse
- #defer_element(name, args, opts) ⇒ Object
- #placeholders ⇒ Object
- #process_deferred_elements(text) ⇒ Object
Instance Method Details
#defer_element(name, args, opts) ⇒ Object
8 9 10 11 12 |
# File 'lib/tight-engine/defer.rb', line 8 def defer_element( name, args, opts ) return unless settings.deferred_elements.include?(name) placeholders[name] = [ name, args, opts ] "%{placeholder[:#{name}]}" end |
#placeholders ⇒ Object
4 5 6 |
# File 'lib/tight-engine/defer.rb', line 4 def placeholders @placeholders ||= {} end |
#process_deferred_elements(text) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/tight-engine/defer.rb', line 14 def process_deferred_elements( text ) text.to_str.gsub /(\s*)\%\{placeholder\[\:([^\]]+)\]\}/ do if deferred = placeholders[$2] output = process_element *deferred if engine.pretty? $1+output.gsub(/\r|\n|\r\n/, $1)+$1 else output end else '' end end end |