2008-10-13 09:49:35 -07:00
|
|
|
require 'sass/tree/node'
|
|
|
|
|
|
|
|
module Sass::Tree
|
|
|
|
class IfNode < Node
|
2008-10-14 23:10:41 -07:00
|
|
|
attr_accessor :else
|
|
|
|
|
2008-10-13 09:49:35 -07:00
|
|
|
def initialize(expr, options)
|
|
|
|
@expr = expr
|
2008-10-14 23:10:41 -07:00
|
|
|
@last_else = self
|
2008-10-13 09:49:35 -07:00
|
|
|
super(options)
|
|
|
|
end
|
|
|
|
|
2008-10-14 23:10:41 -07:00
|
|
|
def add_else(node)
|
|
|
|
@last_else.else = node
|
|
|
|
@last_else = node
|
|
|
|
end
|
|
|
|
|
2008-10-13 09:49:35 -07:00
|
|
|
protected
|
|
|
|
|
|
|
|
def _perform(environment)
|
2008-10-15 20:00:28 -07:00
|
|
|
environment = Sass::Environment.new(environment)
|
2008-10-14 23:10:41 -07:00
|
|
|
return perform_children(environment) if @expr.nil? || @expr.perform(environment).to_bool
|
|
|
|
return @else.perform(environment) if @else
|
|
|
|
[]
|
2008-10-13 09:49:35 -07:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|