class Liquid::Unless

Unless is a conditional just like 'if' but works on the inverse logic.

{% unless x < 0 %} x is greater than zero {% endunless %}

Public Instance Methods

render_to_output_buffer(context, output) click to toggle source
# File lib/liquid/tags/unless.rb, line 11
def render_to_output_buffer(context, output)
  # First condition is interpreted backwards ( if not )
  first_block = @blocks.first
  result = Liquid::Utils.to_liquid_value(
    first_block.evaluate(context)
  )

  unless result
    return first_block.attachment.render_to_output_buffer(context, output)
  end

  # After the first condition unless works just like if
  @blocks[1..-1].each do |block|
    result = Liquid::Utils.to_liquid_value(
      block.evaluate(context)
    )

    if result
      return block.attachment.render_to_output_buffer(context, output)
    end
  end

  output
end