Class: EsiForRack::Node::Include

Inherits:
EsiForRack::Node show all
Defined in:
lib/esi_for_rack/node.rb

Constant Summary

Constants inherited from EsiForRack::Node

IncludeFailedError

Instance Attribute Summary

Attributes inherited from EsiForRack::Node

#context, #node

Instance Method Summary collapse

Methods inherited from EsiForRack::Node

#execute_in_place!, #init

Instance Method Details

#executeObject



22
23
24
25
26
27
28
29
30
# File 'lib/esi_for_rack/node.rb', line 22

def execute
  @resolved_src = EsiAttributeLanguage::SimpleGrammar.parse(@node['src']).execute(context.resolver)
  @resolved_alt = EsiAttributeLanguage::SimpleGrammar.parse(@node['alt']).execute(context.resolver) if @node['alt']
  @continue_on_error = node['onerror'] == 'continue'

  context.lookup[@resolved_src] ||
  (@resolved_alt && context.lookup[@resolved_alt]) || 
  (!@continue_on_error && raise(IncludeFailedError.new)) || nil
end